이전 글Github Actions로 CI 구성하기 with Spring Boot , 그리고 EC2로 서버 인스턴스 구성하기 with Spring Boot, Docker 를 통해 CI와 서버 인스턴스를 구성해보았다. 이제, CI-CD의 마지막인 CD, 배포 부분을 구성해보려 한다.
AWS EC2를 서버 인스턴스로서 사용하고, Github Actions에서도 사용하기 편리한 것으로 보여서 AWS의 CodeDeploy를 이용해서 CD를 구성해보고자 한다.
CodeDeploy
는 EC2
인스턴스 등 애플리케이션 배포를 자동화하는 서비스다.
CodeDeploy
는 서버에서 실행되고, S3 버킷, GitHub 등에 저장되는 애플리케이션 콘텐츠를 배포할 수 있다.
EC2에 CodeDeploy를 이용해 배포하려면 Agent를 설치해주어야 한다.
CodeDeploy 에이전트 설치 - AWS CodeDeploy
sudo yum update
sudo yum install ruby #code deploy를 실행하기 위한 의존성.
sudo yum install wget #http로 다운로드, 상호작용하게끔 해주는 CLI Tool.
wget <https://bucket-name.s3.region-identifier.amazonaws.com/latest/install>
chmod +x ./install #실행권한 설정
sudo ./install auto #최근 버전 다운로드
sudo service codedeploy-agent start #서비스로서 EC2 실행시 실행되도록 설정
또, AWS에서 역할을 생성하고 EC2에 ROLE을 설정해주어야 한다. - RoleForCodeDeploy
상세한 CodeDeploy 구성법과 이후에 서술될 내용들은 CodeDeploy로 Spring 배포 과정이라는 글에도 잘 나타나 있다.
IAM과 role에 대해서 궁금하다면 ’IAM이 도대체 뭘까?’를 읽어보면 좋을 것 같다.
이제 Role을 설정해주었다면 CodeDeploy
의 밑바탕은 세팅한 것이다.
CodeDeploy
애플리케이션을 생성하고, 배포 그룹을 생성하여 설정했다면, 이제 S3
를 이용해서 CI
를 통한 배포 파일들을 관리하고, CodeDeploy
를 이용해서 CD
를 진행해보자.