태스크를 대체하여 Amazon ECS 서비스 배포 - Amazon Elastic Container Service

태스크를 대체하여 Amazon ECS 서비스 배포

롤링 업데이트(ECS) 배포 유형을 사용하는 서비스를 생성하면 Amazon ECS 서비스 스케줄러가 현재 실행 중인 태스크를 새 태스크로 대체합니다. 롤링 업데이트 중에 Amazon ECS가 서비스에 추가하거나 서비스에서 제거하는 작업의 수는 서비스 배포 구성으로 제어합니다. 배포 구성은 다음으로 구성됩니다.

  • minimumHealthyPercent는 배포 중 또는 컨테이너 인스턴스가 드레이닝 시 서비스에 대해 실행되어야 하는 작업 수에 대한 하한을 서비스에 대해 원하는 작업 수의 백분율로 나타냅니다. 이 값은 반올림됩니다. 예를 들어, 최소 정상 상태 백분율이 50이고 원하는 작업 수가 4인 경우 스케줄러는 두 개의 새 태스크를 시작하기 전에 두 개의 기존 태스크를 중지할 수 있습니다. 마찬가지로 최소 정상 상태 백분율이 75%이고 원하는 작업 수가 2이면 결과 값이 2이기 때문에 스케줄러는 태스크를 중지 할 수 없습니다.

    작업이 비정상 상태가 되면 Amazon ECS 서비스 스케줄러가 먼저 교체 작업을 시작하고 교체 작업이 정상 상태가 될 때까지 minimumHealthyPercent 작업을 유지합니다. 교체 작업이 시작되고 정상 상태가 되면 비정상 작업은 점진적으로 중지됩니다.

  • maximumPercent는 배포 중 또는 컨테이너 인스턴스가 드레이닝 시 서비스에 대해 실행되어야 하는 작업 수에 대한 상한을 서비스에 대해 원하는 작업 수의 백분율로 나타냅니다. 이 값은 내림됩니다. 예를 들어, 최대 백분율이 200이고 원하는 태스크 수가 4개인 경우 스케줄러는 4개의 기존 태스크를 중지하기 전에 4개의 새 태스크를 시작할 수 있습니다. 마찬가지로 최대 백분율이 125이고 원하는 작업 수가 3이면 결과 값이 3이기 때문에 스케줄러는 태스크를 시작할 수 없습니다.

중요

최소 정상 상태 백분율 또는 최대 백분율을 설정할 때는 배포가 시작될 때 스케줄러가 하나 이상의 작업을 중지하거나 시작할 수 있는지 확인해야 합니다. 서비스에 잘못된 배포 구성으로 인해 중단된 배포가 있는 경우 서비스 이벤트 메시지가 전송됩니다. 자세한 내용은 서비스 배포 구성으로 인해 배포 중에 서비스(service-name)에서 태스크를 중지하거나 시작할 수 없습니다. minimumHealthyPercent 또는 maximumPercent 값을 업데이트하고 다시 시도하세요. 단원을 참조하십시오.

롤링 배포에서는 배포 회로 차단기를 사용하여 작업이 안정 상태에 도달하는지 확인합니다. 배포 회로 차단기는 선택적으로 실패 시 배포를 롤백할 수 있습니다.

컨테이너 이미지 확인

서비스의 모든 작업이 동일한 컨테이너 이미지를 사용하도록 보장하기 위해 Amazon ECS에서는 태스크 정의에 지정된 컨테이너 이미지 이름과 모든 이미지 태그를 컨테이너 이미지 다이제스트로 확인합니다. 단일 작업을 실행하고 유지 관리하는 서비스를 생성하는 경우 해당 작업을 사용하여 컨테이너 이미지 다이제스트를 설정합니다. 여러 작업을 실행하고 유지 관리하는 서비스를 생성하는 경우 서비스 스케줄러는 배포 중에 하나의 작업을 먼저 시작합니다. 이 첫 번째 작업은 컨테이너 이미지 다이제스트를 설정하는 데 사용됩니다.

컨테이너 이미지 다이제스트가 설정되면 Amazon ECS는 이 다이제스트를 사용하여 필요한 모든 다른 작업을 시작하고 향후 서비스 업데이트를 진행합니다. 따라서 서비스의 모든 작업이 항상 동일한 컨테이너 이미지를 실행하게 되므로 소프트웨어의 버전 일관성이 유지됩니다.

컨테이너 이미지 다이제스트 설정 시도가 3회 이상 실패할 경우 이미지 다이제스트 확인 없이 배포가 계속됩니다. 배포 회로 차단기가 활성화된 경우 배포가 추가로 실패하고 롤백됩니다.

이미지 다이제스트 해상도의 최소 Fargate Linux 플랫폼 버전은 1.3.0입니다. 이미지 다이제스트 해상도의 최소 Fargate Windows 플랫폼 버전은 1.0.0입니다.

버전이 1.31.0보다 낮은 Amazon ECS 에이전트는 이미지 다이제스트 해상도를 지원하지 않습니다. 1.31.0~1.69.0 버전의 에이전트는 Amazon ECR 리포지토리로 푸시된 이미지에 대해서만 이미지 다이제스트 해상도를 지원합니다. 버전이 1.70.0 이상인 에이전트는 모든 이미지에 대해 이미지 다이제스트 해상도를 지원합니다.

참고
  • Amazon ECS는 Amazon GuardDuty 보안 에이전트 또는 Service Connect 프록시와 같이 Amazon ECS에서 관리하는 사이드카 컨테이너의 다이제스트는 캡처하지 않습니다.

  • 여러 작업이 포함된 서비스에서 컨테이너 이미지 확인과 관련된 잠재적 지연 시간을 줄이려면 EC2 컨테이너 인스턴스에서 Amazon ECS 에이전트 버전 1.83.0 이상을 실행하세요. 잠재적 지연 시간을 완전히 없애려면 태스크 정의에 컨테이너 이미지 다이제스트를 지정하세요.

  • 원하는 태스크 수가 0인 서비스를 생성하는 경우 원하는 태스크 수가 0보다 큰 서비스의 또 다른 배포를 트리거할 때까지 Amazon ECS에서 컨테이너 다이제스트를 설정할 수 없습니다.

  • 업데이트된 이미지 다이제스트를 설정하려면 새 배포를 강제로 수행합니다. 업데이트된 이 다이제스트는 새 태스크를 시작하는 데 사용되며 이미 실행 중인 태스크에는 영향을 주지 않습니다. 새 배포를 강제로 수행하는 방법에 대한 자세한 내용은 Amazon ECS API 참조의 ForceNewDeployment를 참조하세요.

장애 감지

배포가 언제 실패했는지 신속하게 식별한 다음 필요에 따라 작동하는 마지막 배포로 실패를 롤백하는 방법을 제공하는 두 가지 방법이 있습니다.

두 방법을 따로 또는 함께 사용할 수 있습니다. 두 방법을 모두 사용하는 경우 두 가지 실패 방법 중 하나에 대한 실패 기준이 충족되는 즉시 배포가 실패로 설정됩니다.

다음 가이드라인을 사용하면 사용할 방법을 결정하는 데 도움이 됩니다.

  • 회로 차단기 - 작업을 시작할 수 없을 때 배포를 중지하려는 경우 이 방법을 사용합니다.

  • CloudWatch 경보 - 애플리케이션 지표를 기반으로 배포를 중지하려는 경우 이 방법을 사용합니다.