롤링 업데이트에서 Amazon ECS blue/green 배포로 배포 전략 업데이트
롤링 업데이트에서 Amazon ECS blue/green 배포로 배포 전략 업데이트
프로덕션 환경에 구현하기 전에 서비스 변경을 만들고 테스트하고 싶을 때 롤링 업데이트 배포에서 Amazon ECS blue/green 배포로 마이그레이션할 수 있어요.
출처: 문서
본문
사전 요구 사항
서비스를 롤링에서 blue/green 배포로 마이그레이션하기 전에 다음을 확인하세요:
- 현재 진행 중인 배포가 완료될 때까지 기다립니다.
- 롤링 배포 전략을 사용하는 기존 Amazon ECS 서비스.
- 여러 서비스 리비전이 트래픽을 제공한다면, Amazon ECS는 마이그레이션 중에 트래픽을 단일 리비전으로 통합하려고 시도해요. 실패하면 마이그레이션 전에 서비스를 단일 리비전을 사용하도록 수동으로 업데이트해야 할 수 있습니다.
- 적절한 권한을 구성합니다. Elastic Load Balancing 권한은 로드 밸런서용 Amazon ECS 인프라 IAM 역할(Amazon ECS infrastructure IAM role for load balancers)을, Lambda 권한은 Amazon ECS blue/green 배포의 Lambda 함수에 필요한 권한(Permissions required for Lambda functions in Amazon ECS blue/green deployments)을 참고하세요.
- 구성에 따라 다음 중 하나를 수행해야 해요:
- 서비스가 Elastic Load Balancing을 사용한다면, 새
advancedConfiguration으로 서비스를 업데이트하고 롤링 배포를 시작합니다. - 서비스가 Service Connect를 사용한다면, 서비스를 업데이트하고 롤링 배포를 시작합니다.
- 서비스가 Elastic Load Balancing과 Service Connect를 모두 사용한다면, 앞선 두 단계를 모두 수행합니다(단일
UpdateService요청으로 가능). - 서비스가 이 중 어느 것도 사용하지 않는다면 추가 작업이 필요 없습니다.
- 서비스가 Elastic Load Balancing을 사용한다면, 새
- Amazon ECS blue/green 배포는 서비스가 다음 기능 중 하나를 사용해야 합니다. 적절한 리소스를 구성합니다:
- Application Load Balancer – Application Load Balancer 리소스(blue/green, linear, canary 배포용) 참고.
- Network Load Balancer – Network Load Balancer 리소스(Amazon ECS blue/green, linear, canary 배포용) 참고.
- Service Connect – Service Connect 리소스(Amazon ECS blue/green, linear, canary 배포용) 참고.
절차
- https://console.aws.amazon.com/ecs/v2 에서 Amazon ECS 콘솔을 엽니다.
- 내비게이션 창에서 Clusters 을 선택합니다.
- Clusters 페이지에서 마이그레이션할 서비스가 포함된 클러스터를 선택합니다. Cluster details 페이지가 표시됩니다.
- Cluster details 페이지에서 Services 탭을 선택합니다.
- 서비스를 선택한 다음 Update 을 선택합니다. Update service 페이지가 표시됩니다.
- Deployment options 을 확장하고 다음을 수행합니다:
- Deployment strategy 에서 Blue/green 을 선택합니다.
- blue/green 배포 설정을 구성합니다:
- Bake time 에 blue 리비전이 종료되기 전에 blue와 green 서비스 리비전이 동시에 실행될 시간(분)을 입력합니다. 이는 검증과 테스트를 위한 시간을 제공합니다.
- (선택 사항) 배포의 특정 단계에서 실행할 Lambda 함수를 구성합니다. Deployment lifecycle hooks 아래에서 다음 단계에 대한 Lambda 함수를 구성합니다:
- Pre scale up: green 서비스 리비전을 확장하기 전에 실행
- Post scale up: green 서비스 리비전을 확장한 후 실행
- Test traffic shift: green 서비스 리비전으로의 테스트 트래픽 라우팅 중 실행
- Post test traffic shift: 테스트 트래픽이 green 서비스 리비전으로 라우팅된 후 실행
- Production traffic shift: green 서비스 리비전으로의 프로덕션 트래픽 라우팅 중 실행
- Post production traffic shift: 프로덕션 트래픽이 green 서비스 리비전으로 라우팅된 후 실행 수명 주기 훅을 추가하려면: Add 을 선택하고, Lambda function 에 함수 이름 또는 ARN을, Role 에 Lambda 함수를 호출할 권한이 있는 IAM 역할을 입력하고, Lifecycle stages 에서 Lambda 함수가 실행되어야 하는 단계를 선택합니다. 선택 사항: Hook details 에 훅에 추가 정보를 제공하는 키-값 쌍을 입력합니다.
- 로드 밸런서 설정을 구성합니다:
- Load balancing 아래에서 서비스가 로드 밸런서를 사용하도록 구성되어 있는지 확인합니다.
- Target group 에서 프로덕션(blue) 환경용 기본 대상 그룹을 선택합니다.
- Alternate target group 에서 테스트(green) 환경용 대상 그룹을 선택합니다.
- Production listener rule 에서 프로덕션 트래픽 라우팅용 리스너 규칙을 선택합니다.
- 선택 사항: Test listener rule 에서 green 환경으로 테스트 트래픽을 라우팅하기 위한 리스너 규칙을 선택합니다.
- Role 에서 Amazon ECS가 로드 밸런서를 관리하도록 허용하는 IAM 역할을 선택합니다.
- 구성 변경을 검토한 다음 Update 을 선택합니다.
다음 단계
- 배포를 시작하려면 서비스를 업데이트합니다. 자세한 내용은 Amazon ECS 서비스 업데이트(Updating an Amazon ECS service)를 참고하세요.
- 배포 프로세스가 blue/green 패턴을 따르는지 모니터링합니다:
- green 서비스 리비전이 생성되고 확장됩니다
- 테스트 트래픽이 green 리비전으로 라우팅됩니다(구성된 경우)
- 프로덕션 트래픽이 green 리비전으로 이동됩니다
- 베이크 시간 후 blue 리비전이 종료됩니다