AWS CodeDeploy

2021-05-21
  • DevOps
  • AWS

AWS CodeDeploy

CodeDeploy란?

Img

aws의 ec2, 온프레미스 인스턴스, 서버리스 lambda 또는 ecs 서비스로 애플리케이션 배포를 자동화하는 배포 서비스이다. 즉 CD이다.

에이전트?

ec2에 설치하는 프로그램으로, CodeDeploy에서 해당 ec2를 사용할 수 있도록 한다. ec2 이외의 배포 환경에서는 필요하지 않다

에이전트는 app 개정, 배포기록, 배포 스크립트 등을 ec2의 루트 디렉토리에 저장한다.

Amazon Linux, Ubuntu Server, RHEL 인 경우, /opt/codedeploy-agent/deployment-root 에 위치한다

과정

1. CodeDeploy용 IAM 역할 생성

역할 만들기 -> AWS 서비스

사용 사례 선택 -> CodeDeploy

권한 정책 -> AwsCodeDeployRole

2. CodeDeploy에 애플리케이션 생성 후 IAM 역할 연결

  1. 컴퓨팅 플랫폼 -> EC2/온프레미스
  2. 애플리케이션 생성 완료 후, 배포 그룹 생성
    • 배포 유형 -> 현재 위치
    • 배포할 서비스가 2대 이상이라면 블루/그린을 선택
  3. 배포 설정 -> CodeDeployDefault.AllAtOnce 한 번에 배포
  4. 로드밸런서 -> 체크 해제

3. appspec.yml

CodeDeploy는 appspec.yml을 통해서 어떤 파일을 어느 위치해 배포하고 이후 어떤 스크립트를 실행할 것인지 관리한다.

4. github action yml 수정

 - name : Code Deploy
   run : aws deploy create-deployment --region us-east-2 --application-name 'code_deploy_app_name' --deployment-config-name CodeDeployDefault.AllAtOnce --deployment-group-name 'code_deploy_group_name' --s3-location bucket='bucket-name',bundleType=zip,key=$GITHUB_SHA.zip
  • region : 대상 리전
  • application-name : CodeDeploy 애플리케이션 명칭
  • deployment-group-name : CodeDeploy 배포 그룹 명칭
  • bucket : 버킷 명칭

출처

Profile picture

2yeseul

트리플에서 백엔드 개발을 맡고 있습니다. 무한 삽질을 기록합니다. ⚒️