개요

스크린샷 2023-08-30 오전 8.37.28.png

이전 글Github Actions로 CI 구성하기 with Spring Boot, 그리고 EC2로 서버 인스턴스 구성하기 with Spring Boot, Docker를 통해 CI와 서버 인스턴스를 구성해보았다. 이제, CI-CD의 마지막인 CD, 배포 부분을 구성해보려 한다.

AWS EC2를 서버 인스턴스로서 사용하고, Github Actions에서도 사용하기 편리한 것으로 보여서 AWS의 CodeDeploy를 이용해서 CD를 구성해보고자 한다.


CodeDeploy

CodeDeployEC2 인스턴스 등 애플리케이션 배포를 자동화하는 서비스다.

CodeDeploy는 서버에서 실행되고, S3 버킷, GitHub 등에 저장되는 애플리케이션 콘텐츠를 배포할 수 있다.

CodeDeploy Agent

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의 밑바탕은 세팅한 것이다.

S3와 CodeDeploy

CodeDeploy 애플리케이션을 생성하고, 배포 그룹을 생성하여 설정했다면, 이제 S3를 이용해서 CI를 통한 배포 파일들을 관리하고, CodeDeploy를 이용해서 CD를 진행해보자.