- AWS CodeDeploy는 Amazon ECS 서비스에 새로운 애플리케이션 버전을 자동으로 배포하는 서비스입니다.
- Blue/Green 배포 방식만을 지원하며, 무중단 배포가 가능합니다.
- 애플리케이션 로드 밸런서(ALB)와의 연동이 필수적입니다.
2 사전 요구사항
- ECS 배포를 위해서는 다음 구성 요소가 필요합니다:
- ECS 클러스터: 컨테이너를 실행할 ECS 클러스터가 구성되어 있어야 합니다.
- ECS 서비스: ALB와 연결된 ECS 서비스가 있어야 합니다.
- 태스크 정의: 새로운 버전의 컨테이너 이미지와 설정이 포함된 태스크 정의가 필요합니다.
- 로드 밸런서: Application Load Balancer가 구성되어 있어야 합니다.
- 대상 그룹: Blue/Green 환경을 위한 두 개의 대상 그룹이 필요합니다.
3 배포 프로세스
3.1 기본 워크플로우
- ECS 배포는 다음 단계로 진행됩니다:
- 개발자가 새로운 컨테이너 이미지를 ECR에 푸시합니다.
- 새로운 ECS 태스크 정의를 생성합니다.
- appspec.yml 파일에 새로운 태스크 정의를 참조합니다.
- CodeDeploy가 Blue/Green 배포를 시작합니다.
3.2 트래픽 이동 방식
- 트래픽 전환은 다음 방식 중 하나로 설정할 수 있습니다:
- Canary:
- ECSCanary10Percent5Minutes
- ECSCanary10Percent15Minutes
- Linear:
- ECSLinear10PercentEvery1Minutes
- ECSLinear10PercentEvery3Minutes
- AllAtOnce:
4 Configuration