롤링 업데이트에서 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 요청으로 가능).
    • 서비스가 이 중 어느 것도 사용하지 않는다면 추가 작업이 필요 없습니다.
  • 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 배포용) 참고.

절차

  1. https://console.aws.amazon.com/ecs/v2 에서 Amazon ECS 콘솔을 엽니다.
  2. 내비게이션 창에서 Clusters 을 선택합니다.
  3. Clusters 페이지에서 마이그레이션할 서비스가 포함된 클러스터를 선택합니다. Cluster details 페이지가 표시됩니다.
  4. Cluster details 페이지에서 Services 탭을 선택합니다.
  5. 서비스를 선택한 다음 Update 을 선택합니다. Update service 페이지가 표시됩니다.
  6. 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 역할을 선택합니다.
  7. 구성 변경을 검토한 다음 Update 을 선택합니다.

다음 단계

  • 배포를 시작하려면 서비스를 업데이트합니다. 자세한 내용은 Amazon ECS 서비스 업데이트(Updating an Amazon ECS service)를 참고하세요.
  • 배포 프로세스가 blue/green 패턴을 따르는지 모니터링합니다:
    • green 서비스 리비전이 생성되고 확장됩니다
    • 테스트 트래픽이 green 리비전으로 라우팅됩니다(구성된 경우)
    • 프로덕션 트래픽이 green 리비전으로 이동됩니다
    • 베이크 시간 후 blue 리비전이 종료됩니다