aws의 ec2, 온프레미스 인스턴스, 서버리스 lambda 또는 ecs 서비스로 애플리케이션 배포를 자동화하는 배포 서비스이다. 즉 CD이다.
ec2에 설치하는 프로그램으로, CodeDeploy에서 해당 ec2를 사용할 수 있도록 한다. ec2 이외의 배포 환경에서는 필요하지 않다
에이전트는 app 개정, 배포기록, 배포 스크립트 등을 ec2의 루트 디렉토리에 저장한다.
Amazon Linux
, Ubuntu Server
, RHEL
인 경우, /opt/codedeploy-agent/deployment-root
에 위치한다
역할 만들기 -> AWS 서비스
사용 사례 선택 -> CodeDeploy
권한 정책 -> AwsCodeDeployRole
- 컴퓨팅 플랫폼 -> EC2/온프레미스
- 애플리케이션 생성 완료 후, 배포 그룹 생성
- 배포 유형 -> 현재 위치
- 배포할 서비스가 2대 이상이라면 블루/그린을 선택
- 배포 설정 ->
CodeDeployDefault.AllAtOnce
한 번에 배포 - 로드밸런서 -> 체크 해제
CodeDeploy는 appspec.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 : 버킷 명칭
출처