Amazon ECS 선형 배포 - Amazon Elastic Container Service

Amazon ECS 선형 배포

선형 배포는 시간이 지남에 따라 트래픽을 이전 서비스 개정에서 새 서비스 개정으로 점진적으로 동일한 증분만큼씩 이전하므로 다음 단계로 진행하기 전에 각 단계를 모니터링할 수 있습니다. Amazon ECS 선형 배포를 사용하면 트래픽 이전 속도를 제어하고 프로덕션 트래픽의 양이 증가함에 따라 새 서비스 개정을 검증합니다. 이 접근 방식은 각 증분에서 성능을 모니터링하는 기능과 함께 변경 사항을 배포하는 제어된 방법을 제공합니다.

선형 배포와 관련된 리소스

다음은 Amazon ECS 선형 배포와 관련된 리소스입니다.

  • 트래픽 이전 - Amazon ECS가 프로덕션 트래픽을 이전하는 데 사용하는 프로세스. Amazon ECS 선형 배포의 경우 트래픽은 각 증분 간에 구성 가능한 대기 시간을 두고 동일한 비율 증분 단위로 이전됩니다.

  • 단계 백분율 - 선형 배포 중에 각 증분 단위로 이전할 트래픽의 백분율. 이 필드는 값으로 Double을 사용하며 유효한 값은 3.0~100.0입니다.

  • 단계 베이크 소요 시간 - 선형 배포 중 각 트래픽 이전 증분 사이의 대기 시간. 유효한 값은 0~1,440분입니다.

  • 배포 베이크 소요 시간 - 모든 프로덕션 트래픽을 새 서비스 개정으로 이전한 후 Amazon ECS가 이전 서비스 개정을 종료하기 전에 대기하는 시간. 프로덕션 트래픽이 이전한 후 블루 및 그린 서비스 개정이 모두 동시에 실행되는 기간입니다.

  • 수명 주기 단계 - '프로덕션 트래픽 전환 후'와 같은 배포 작업에 존재하는 일련의 이벤트.

  • 수명 주기 후크 - 특정 수명 주기 단계에서 실행되는 Lambda 함수. 배포를 확인하는 함수를 생성할 수 있습니다. PRODUCTION_TRAFFIC_SHIFT에 대해 구성된 Lambda 함수 또는 수명 주기 후크는 모든 프로덕션 트래픽 이전 단계에서 간접 호출됩니다.

  • 대상 그룹 - 요청을 하나 이상의 등록된 대상(예: EC2 인스턴스)으로 라우팅하는 데 사용되는 ELB 리소스. 리스너를 생성할 때 기본 작업에 대한 대상 그룹을 지정합니다. 트래픽은 리스너 규칙에 지정된 대상 그룹으로 전달됩니다.

  • 리스너 - 사용자가 구성한 프로토콜 및 포트를 사용하여 연결 요청을 확인하는 ELB 리소스. 리스너에 대해 사용자가 정의한 규칙에 따라 Amazon ECS가 등록된 대상으로 요청을 라우팅하는 방법이 결정됩니다.

  • 규칙 - 리스너와 연결된 ELB 리소스. 규칙은 요청이 라우팅되는 방식을 정의하며, 작업, 조건, 우선순위로 구성됩니다.

고려 사항

배포 유형을 선택할 때 다음을 고려하세요.

  • 리소스 사용량: 선형 배포는 블루 및 그린 서비스 개정을 동시에 일시적으로 실행합니다. 이 경우 배포 중에 리소스 사용량이 두 배가 될 수 있습니다.

  • 배포 모니터링: 선형 배포는 자세한 배포 상태 정보를 제공하므로 이를 통해 배포 프로세스의 각 단계와 각 트래픽 이전 증분을 모니터링할 수 있습니다.

  • 롤백: 선형 배포를 사용하면 베이크 소요 시간이 만료될 때까지 블루 개정이 계속 실행되므로 문제가 감지되면 이전 버전으로 쉽게 롤백할 수 있습니다.

  • 점진적 검증: 선형 배포를 사용하면 프로덕션 트래픽의 양이 증가함에 따라 새 개정을 검증하여 배포에 대한 신뢰도를 높일 수 있습니다.

  • 배포 기간: 증분 트래픽 이전 및 단계 사이의 대기 시간으로 인해 선형 배포가 한 번에 전체를 배포하는 방식보다 완료되는 데 시간이 더 오래 걸립니다.

선형 배포 작동 방식

Amazon ECS 선형 배포 프로세스는 안전하고 신뢰할 수 있는 애플리케이션 업데이트를 보장하는 6단계로 구성된 구조화된 접근 방식을 따릅니다. 각 단계는 애플리케이션을 검증하고 현재 버전(파란색)에서 새 버전(녹색)으로 전환하는 구체적인 목적을 지원합니다.

  1. 준비 단계: 기존 블루 환경과 함께 그린 환경을 생성합니다.

  2. 배포 단계: 그린 환경에 새 서비스 개정을 배포합니다. 블루 환경이 프로덕션 트래픽을 계속 처리하는 동안 Amazon ECS는 업데이트된 서비스 개정을 사용하여 새 태스크를 시작합니다.

  3. 테스트 단계: 테스트 트래픽 라우팅을 사용하여 그린 환경을 검증합니다. Application Load Balancer는 프로덕션 트래픽이 블루 환경에서 유지되는 동안 테스트 요청을 그린 환경으로 보냅니다.

  4. 선형 트래픽 이전 단계: 구성된 배포 전략에 따라 프로덕션 트래픽을 블루에서 그린으로 동일한 백분율 증분만큼 점진적으로 이전합니다.

  5. 모니터링 단계: 베이크 소요 시간 동안 애플리케이션 상태, 성능 지표 및 경보 상태를 모니터링합니다. 문제가 감지되면 롤백 작업이 시작됩니다.

  6. 완료 단계: 블루 환경을 종료하여 배포를 완료합니다.

선형 트래픽 이전 단계는 다음 단계를 따릅니다.

  • 초기 - 배포는 블루(현재) 서비스 개정으로 라우팅된 트래픽의 100%로 시작됩니다. 그린(신규) 서비스 개정은 테스트 트래픽을 수신하지만 처음에는 프로덕션 트래픽은 수신하지 않습니다.

  • 증분 트래픽 이전 - 트래픽은 블루에서 그린으로 동일한 백분율 증분만큼 이전됩니다. 예를 들어 10.0% 단계 구성을 사용하면 트래픽은 다음과 같이 이전됩니다.

    • 1단계: 녹색으로 10.0%, 파란색으로 90.0%

    • 2단계: 녹색으로 20.0%, 파란색으로 80.0%

    • 3단계: 녹색으로 30.0%, 파란색으로 70.0%

    • 100%가 그린에 도달할 때까지

  • 단계 베이크 소요 시간 - 트래픽 로드가 증가함에 따라 새 개정의 성능을 모니터링하고 검증할 수 있도록 각 트래픽 이전 증분 사이에 배포는 구성 가능한 기간(단계 베이크 소요 시간)을 대기합니다. 참고로 트래픽이 100.0% 이전되면 마지막 단계 베이크 소요 시간은 건너뜁니다.

  • 수명 주기 후크 - 배포 중 다양한 수명 주기 단계에서 선택적 Lambda 함수를 실행하여 자동화된 검증, 모니터링 또는 사용자 지정 로직을 수행할 수 있습니다. PRODUCTION_TRAFFIC_SHIFT에 대해 구성된 Lambda 함수 또는 수명 주기 후크는 모든 프로덕션 트래픽 이전 단계에서 간접 호출됩니다.

배포 수명 주기 단계

선형 배포 프로세스는 각각 특정 책임과 검증 체크포인트가 있는 고유한 수명 주기 단계로 진행됩니다. 이러한 단계를 이해하면 배포 진행 상황을 모니터링하고 문제를 효과적으로 해결할 수 있습니다.

각 수명 주기 단계는 최대 24시간 동안 지속될 수 있으며 PRODUCTION_TRAFFIC_SHIFT의 각 트래픽 이전 단계도 최대 24시간 동안 지속될 수 있습니다. 값을 24시간 표시 미만으로 유지하는 것이 좋습니다. 비동기 프로세스가 후크를 트리거하는 데 시간이 필요하기 때문입니다. 시스템 제한 시간이 초과되어 배포에 실패하고 하나의 단계가 24시간에 도달한 후에 롤백을 시작합니다.

CloudFormation 배포에는 추가 제한 시간의 제한 사항이 있습니다. 24시간의 단계 제한은 여전히 유효하지만 CloudFormation은 전체 배포에 대해 36시간의 제한을 적용합니다. CloudFormation에서 배포에 실패하고 프로세스가 36시간 이내에 완료되지 않으면 롤백을 시작합니다.

수명 주기 단계 설명 수명 주기 후크 지원
RECONCILE_SERVICE 이 단계는 활성 상태인 서비스 개정이 2개 이상인 새 서비스 배포를 시작하는 경우에만 나타납니다.
PRE_SCALE_UP 그린 서비스 개정이 시작되지 않았습니다. 블루 서비스 개정이 프로덕션 트래픽의 100%를 처리하는 중입니다. 테스트 트래픽이 없습니다.
SCALE_UP 그린 서비스 개정이 100%까지 스케일 업되고 새 태스크를 시작하는 시간. 그린 서비스 개정이 현재 트래픽을 처리하지 않습니다. 아니요
POST_SCALE_UP 그린 서비스 개정이 시작되었습니다. 블루 서비스 개정이 프로덕션 트래픽의 100%를 처리하는 중입니다. 테스트 트래픽이 없습니다.
TEST_TRAFFIC_SHIFT 블루 및 그린 서비스 개정이 실행 중입니다. 블루 서비스 개정이 프로덕션 트래픽의 100%를 처리합니다. 그린 서비스 개정이 테스트 트래픽의 0%~100%를 마이그레이션하고 있습니다.
POST_TEST_TRAFFIC_SHIFT 테스트 트래픽 전환이 완료되었습니다. 그린 서비스 개정이 테스트 트래픽의 100%를 처리합니다.
PRODUCTION_TRAFFIC_SHIFT 트래픽은 그린이 트래픽의 100%를 수신할 때까지 동일한 비율 증분으로 블루에서 그린으로 점진적으로 이전됩니다. 각 트래픽 이전은 24시간 제한 시간을 두고 수명 주기 후크를 간접 호출합니다.
POST_PRODUCTION_TRAFFIC_SHIFT 프로덕션 트래픽 전환이 완료되었습니다.
BAKE_TIME 블루 및 그린 서비스 개정이 동시에 실행 중인 기간. 아니요
CLEAN_UP 블루 서비스 개정이 실행 중인 태스크가 0개인 상태로 완전히 스케일 다운되었습니다. 이제 그린 서비스 개정은 이 단계 이후에 프로덕션 서비스 개정이 됩니다. 아니요