IT/SpringBoot&AWS

AWS EC2 - CodeDeploy 연동 설정

_하늘여우_ 2022. 5. 14. 16:42

출처 : unsplash

 

참고 도서 : 스프링 부트와 AWS로 혼자 구현하는 웹 서비스

 

기본 흐름

- repository인 github에 소스가 커밋/푸시되면, github이 Travis CI로 트리거를 걸어 build, test, notify(slack, email, etc ..) 완료하게 된다.

- build 결과인 jar 파일은 일종의 파일 서버 역할을 하는 S3로 전달

- 이후 실제 배포를 CodeDeploy를 통해 배포 요청을 하면 S3에 저장된 jar 파일을 EC2 서버로 배포하게 된다.

출처 : 도서

 

각 시스템 간 연동이 필요한데

* github - Travis CI 간 연동

   ㄴ github 에 .travis.yml 설치하므로써 트리거를 걸어줌

* Travis CI - AWS S3 간 연동

   ㄴ .travis.yml에 빌드 후 jar 파일을 S3로 올릴 수 있도록 설정함

   ( 사전에 S3 버킷을 생성하고 .travis.yml 에는 S3에 접속하기 위한 ACCESS_KEY 및 SECRET_KEY를 등록함 )

* CodeDeploy - EC2 간 연동

   ㄴ EC2 에 CodeDeploy 가 배포를 할 수 있도록 역할 등록 (using IAM)

   ㄴ EC2 에 CodeDeploy 연동을 위한 에이전트 설치

   ㄴ CodeDeploy 생성

       앗, 그런데 에이전트 설치 시 아래와 같은 메시지가 나타난다.

[ec2-user@ip-172-31-45-74 ~]$ aws s3 cp s3://aws-codedeploy-ap-northeast-2/latest/install . --region ap-northeast-2
download: s3://aws-codedeploy-ap-northeast-2/latest/install to ./install
[ec2-user@ip-172-31-45-74 ~]$ ll
합계 20
drwxrwxr-x 3 ec2-user ec2-user    93  5월 13 21:47 app
-rw-rw-r-- 1 ec2-user ec2-user 17482  5월 15  2021 install
[ec2-user@ip-172-31-45-74 ~]$ chmod +x ./install
[ec2-user@ip-172-31-45-74 ~]$ ll
합계 20
drwxrwxr-x 3 ec2-user ec2-user    93  5월 13 21:47 app
-rwxrwxr-x 1 ec2-user ec2-user 17482  5월 15  2021 install
[ec2-user@ip-172-31-45-74 ~]$ sudo ./install auto
/usr/bin/env: ruby: No such file or directory

위 에러는 ruby 가 설치되어 있지 않아 발생한 것으로.. ruby를 설치해주면 된다.

sudo yum install ruby

 

 

 

참고 URL

- https://meorimori.tistory.com/89

- https://seongbindb.tistory.com/6

- https://coder-question-ko.com/cq-ko-blog/27700