본문 바로가기

DevOps19

Jenkins - 로컬 환경에서 구성 및 경험해보기 우선, 기본적으로 Jenkins 설정을 할 떄, 로컬환경의 경우 localhost 따라서 ngrok을 활용해서 포트포워딩 했습니다. 참고 부탁드립니다. 1. 우선 Github 계정에서 외부로부터 접근이 가능하게 해주는 Token을 생성해 줍니다. 이 Token을 통해서 Jenkins를 설정을 하게 됩니다. ​ 2. 토큰을 생성할 때 만료시간을 설정해주고, repo , admin:repo_hook 을 체크해줍니다. 성공적으로 생성을하면 아래와 같이 Secret Key가 발급됩니다. 복사를 해서 저장을 해둬야 하며, 생성했을 때 이외에는 해당 Key값을 알수 있는 방법이 없습니다. 3. 이후 Jenkins 페이지에서 로그인을 합니다. Jenkins 관리 - 시스템 설정 - Jenkins URL ( ngrok.. 2022. 4. 26.
MSA Microservice Architecture 사실 Microservice Architecture에 대한 정확한 정의는 없다고 한다.. 거의 근접하게 말하면 독립적으로 배포가 가능한 각각의 기능을 수행하는 서비스로 구성된 애플리케이션을 의미한다. 이와 반대로 이전까지 개발되어 왔던 방식인 모놀리식 아키텍처가 있다. Monolithic Architecture : 소프트웨어의 모든 구성요소가 하나의 프로젝트에 통합되어 있다. 추상적으로 말하면 Front, Back-End, DB 계층이 모두 하나의 애플리케이션에서 패키징되어 결과물로 반환되고 배포하는 형태의 구조를 말한다. 단점 1. 부분 장애가 전체의 서비스로 확대될 수 있다. 2. 부분적인 Scale-Out 이 어렵다. 3. 서비스의 변경이 어렵고, 수정.. 2022. 4. 8.
Linux) JAVA_HOME 설정 적용 최근에 프로젝트를 만들어서 연습하던 EC2 계정을 삭제했다. 진행을 하고 있지 않아서 내버려 뒀는데 엄청난 과금메세지와 함께 잠을 못이뤘다.. 그래서 S3, RDS, 인스턴스를 모조리 삭제하고 계정까지 삭제해둔상태이다. 사실 Free 티어 기간이 끝나서 더이상 사용하면 안됐던것도 있다.. 그래서 이번에 직접 Docker 를 통해서 Amazon Linux를 설치해서 서버에 대한 연습을 좀 해볼 겸 하다가 문제가 발생해서 적어본다. 기본적으로 EC2 인스턴스를 생성해서 접속했을 때 설정하고 동일한 설정을 이루어야 한다. 1. Java 설치 ( jdk ) 2. 타임존 설정 3. git 설치 일단 기억이 잘안나서 예전에 EC2 처음 설정해볼때 작성했던 노션을 확인했다. 방법은 다음과같다. 1. /etc/prof.. 2021. 8. 15.
docker ) table is not exist.. 도커를 사용할 때 RDS를 사용하고 싶다면 본인이 만든 프로젝트 + DB의 이미지까지 최소 2개의 컨테이너가 생성되어야 한다. 그리고 2개의 컨테이너는 하나의 네트워크에 의해서 결합이 되어있어야하고 서로 통신이 가능한 상태여야 한다. 이전의 포스팅에서 생각해볼 때 MySQL Server에 연결이 허용되지 않았던 이유는 솔직히 모르겠다. 그저 'docker system prune' 을 통해서 여태 있던 캐시가 사라지고 처음으로 돌려 시도하여 성공이 되었으니 말이다.. 여튼 이후에 테이블이 없다는 에러가 발생했음, 여기서 착각한 것이 존재한다 1. application.properties spring.datasource.url=jdbc:mysql://test-db:3306/exdocker?serverTime.. 2021. 7. 12.
Docker) Host 'ip' is not allowed to connect to this MySQL Server 도커 명령어와 build, run 에 익숙해진 이후에 docker-compose를 통해서 2개 이상의 이미지를 실행시켰음. 처음에는 Connection refused 에러가 발생하였고 compose 파일의 설정에 대한 미숙함 때문인지 모르겠으나 삽질을 했다. network 설정도 추가해보고 ipv4_address 또한 직접 설정해서 추가해봤으나 변하는 것은 없었다. 아래의 첫번째 사진은 같은 프로젝트에서 발생했고 그 다음 사진의 경우 새로 프로젝트를 따로 만들어서 다시 시도해봤을 때 에러로그이다. 첫번째의 경우 외부에서 접속이 불가능해서 그런것 같다는 내용의 해결책들이 많았으나 직접 MySQL에 해당 ip 주소로 직접 host를 지정해서 해도 해결되지 않앗음., 두번째의 경우에도 직접 host, user.. 2021. 7. 10.
Docker Network 명령어 도커 컨테이너는 격리된 환경에서 돌아간다 따라서 기본적으로 다른 컨테이너와 통신이 불가능하다. 하지만 여러개의 컨테이너를 하나의 Docker 네트워크에 연결시키면 서로 통신이 가능하다. 1. 네트워크 조회 docker network ls 기본적으로 bridge, host, none - 3가지는 기본값으로 생성되는 네트워크 이다. bridge 네트워크는 하나의 호스트 컴퓨터 내에서 여러 컨테이너들이 서로 소통할 수 있도록 해줍니다. host 네트워크는 컨터이너를 호스트 컴퓨터와 동일한 네트워크에서 컨테이너를 돌리기 위해서 사용됩니다. overlay 네트워크는 여러 호스트에 분산되어 돌아가는 컨테이너들 간에 네트워킹을 위해서 사용됩니다. 2. 네트워크 생성 docker network create '네트워크 .. 2021. 7. 10.