DevOps
-
[CI / CD] Nginx를 이용한 무중단 배포DevOps 2022. 4. 22. 10:31
이전까지 Travis CI를 이용해서 배포 자동화 환경을 구축해 보았는데, 배포하는 동안 ( 새로운 Jar가 실행되기 전까지 ) 서비스가 중단된다는 문제점이 있다. 그래서 이번에는 Nginx를 이용한 무중단 배포를 해보려고 한다. Nginx를 이용해서 무중단 배포를 하게되면 다음과 같은 시스템 구성이 될 것이다. Nginx 1대와 스프링 부트 Jar를 2대 두고 서비스하는 포트와 배포를 하는 포트를 나누어 사용하고 배포후에 바꾸어 주는 방식으로 무중단 배포를 환경을 구축할 수 있다. 1. 엔진엑스 설치와 스프링 부트 연동 가장 먼저 EC2에 엔진엑스를 설치하자. 아래와 같이 명령어를 입력해준다. amazon-linux-extras list | grep nginx // 설치할 엔진엑스 확인 sudo ama..
-
[AWS] AWS 서버 구축 및 배포 5. AWS EC2에 프로젝트 배포DevOps/AWS 2022. 4. 21. 01:42
저번 포스팅까지 따라왔다면 이제 실제로 배포를 해볼 차례이다. 바로 시작해보자. 1. EC2에 프로젝트 Clone 받기 일단 EC2로 접속해서 밑의 명령어로 git을 설치해주자. sudo yum install git // 깃 설치 git --version // 설치가 완료된 후 설치 상태 확인 git이 설치되었다면 이제 git clone으로 프로젝트를 저장할 디렉토리를 생성하고 생성한 디렉토리로 이동하자. mkdir ~/app && mkdir ~/app/step1 cd ~/app/step1 git repository의 https 주소를 복사해서 클론을 받아온다. git clone 레포지토리 주소 git clone이 끝났으면 프로젝트 디렉토리로 이동해서 파일들이 잘 복사되었는지 확인하고 코드들이 잘 수행되..
-
[AWS] AWS 서버 구축 및 배포 4. AWS RDS 접속 및 확인DevOps/AWS 2022. 4. 15. 04:12
저번 포스팅에서 RDS 인스턴스 생성하는 것까지 마쳤다. 이번에는 내 로컬 PC에서 RDS에 접속해보고, EC2에서도 접속해서 확인해보겠다. 1. 내 PC에서 RDS에 접속해보기 먼저 접근을 위해서 RDS의 보안 그룹에 본인 PC의 IP를 추가하자. RDS의 세부정보 페이지에서 보안 그룹 항목을 클릭하자. 들어가서 인바운드 규칙을 수정할 건데, EC2에 사용된 보안 그룹의 ID를 복사해서 와야 한다. 복사한 보안 그룹 ID와 본인의 IP를 RDS 보안 그룹의 인바운드로 추가하고 규칙 저장을 눌러준다. 여기까지 했다면 RDS와 로컬 PC, EC2 간의 접근이 가능해진다. 이제 실제 접속해보자. 나는 인텔리제이를 사용할 것이다. 유료버전이라 있는지는 모르겠지만 맨 오른쪽 탭에 Database라고 있다. 없다..
-
[CI / CD] Travis CI 를 이용한 배포 자동화 (5)DevOps 2022. 4. 11. 03:59
https://yanglet.tistory.com/18 [CI / CD] Travis CI 를 이용한 배포 자동화 (4) 이제 지금까지 한 것들을 다 연동해보자. 1. Travis CI, S3, CodeDeploy 연동 먼저 S3에서 넘겨줄 zip 파일을 저장할 디렉토리를 하나 생성하자. EC2 서버에 접속해서 다음과 같이 디렉토리를 생성하자. mkdi yanglet.tistory.com 바로 전 포스팅에서 해결이 되면 포스팅한다고 하고나서, 좀 더 찾아보다가 이거만 해보고 눕자 했는데 해결이 되어버려서 마저 써야겠다. s3 와 같이 맨 밑에 두 줄을 추가했더니 됐다. 이제 연동까지 구현하였고, 이것을 기반으로 실제로 Jar를 배포하여 실행까지 해보자. 1. 배포 자동화 구성 deploy.sh 파일 추가..
-
[CI / CD] Travis CI 를 이용한 배포 자동화 (4)DevOps 2022. 4. 11. 02:31
이제 지금까지 한 것들을 다 연동해보자. 1. Travis CI, S3, CodeDeploy 연동 먼저 S3에서 넘겨줄 zip 파일을 저장할 디렉토리를 하나 생성하자. EC2 서버에 접속해서 다음과 같이 디렉토리를 생성하자. mkdir ~/app/step2 && mkdir ~/app/step2/zip Travis CI의 Build 가 끝나면 S3에 zip 파일이 전송되고, 이 zip 파일은 /home/ec2-user/app/step2/zip 로 복사되어 압축을 풀 예정이다. AWS CodeDeploy의 설정을 위해 appspec.yml 을 만들고 다음과 같이 작성하자. .travis.yml 와 같은 위치에 만들면 된다. Travis CI의 설정을 위해 .travis.yml 에 다음과 같이 추가해주자. S..
-
[CI / CD] Travis CI 를 이용한 배포 자동화 (3)DevOps 2022. 4. 11. 00:43
AWS 의 배포 시스템인 CodeDeploy를 이용하기 전에 배포 대상인 EC2가 CodeDeploy를 연동 받을 수 있게 IAM 역할을 하나 생성하자. 1. EC2에 IAM 역할 추가하기 IAM을 검색하여 왼쪽 카테고리에 역할을 누르고 역할 만들기를 클릭하자. 이번에 만들 권한은 EC2에서 사용할 것이기 때문에 사용자가 아닌 역할로 처리한다. AWS 서비스를 선택하고, EC2를 선택한다. EC2RoleForA 를 검색하여 AmazonEC2RoleforAWSCodeDeploy 를 선태하고 다음을 눌러준다. 역할 이름과 태그를 추가하고 역할 생성을 해준다. 이렇게 만든 역할을 EC2 서비스에 등록하자. EC2 인스턴스 목록으로 이동한 뒤, 본인의 인스턴스를 마우스 오른쪽 버튼을 누르고 보안 -> IAM 역..
-
[CI / CD] Travis CI 를 이용한 배포 자동화 (2)DevOps 2022. 4. 10. 03:25
Travis CI와 AWS S3 연동하기 S3란 AWS에서 제공하는 일종의 파일 서버이다. S3 연동을 통해 Jar 파일을 전달해야 한다. 1. AWS Key 발급 AWS 서비스에 외부 서비스가 접근할 수 없으므로 접근 가능한 권한을 가진 Key를 생성해서 사용해야 한다. AWS 에서는 인증과 관련된 IAM 서비스를 제공한다. AWS 콘솔에 IAM 을 검색한 후 왼쪽 카테고리에 사용자를 누르고 사용자 추가를 눌러주자. 아래와 같이 설정한 후 다음을 눌러줍니다. 다음에서는 기존 정책 직접 연결을 눌러서 AmazonS3FullAccess 와 AWSCodeDeployFullAccess 두 가지를 체크하고 다음으로 넘어가자. 다음에서는 알아볼 수 있는 키를 등록하고 다음으로 넘어가자. 마지막으로 본인이 생성한 ..
-
[CI / CD] Travis CI 를 이용한 배포 자동화 (1)DevOps 2022. 4. 10. 02:05
배포를 해보았는데, 이제는 깃허브에 push를 하게 되면 자동으로 배포가 되도록 환경을 구성해보자. 1. Travis CI 와 연동하기 Travis CI 사용을 위해 https://www.travis-ci.com/ 이 사이트로 접속해서 깃을 통해 로그인하고 무료 요금제로 등록해주어야 travis ci 를 이용할 수 있다. 로그인하고 요금제 등록 후에 travis ci 를 이용할 레포지토리를 등록해준다. Settings를 클릭하자. 다음과 같은 화면에서 Activate 를 눌러주자. 여기서 사용할 레포지토리를 선택하고 Approve and install 을 눌러주면 Travis CI 와 연동이 잘 되었다. Travis CI 의 상세 설정은 프로젝트에 존재하는 ,travis.yml 파일로 할 수 있다. 로그..