Amazon ECS에서 AWS Fargate에 대한 태스크 사용 중지 및 유지 관리 - Amazon Elastic Container Service

Amazon ECS에서 AWS Fargate에 대한 태스크 사용 중지 및 유지 관리

AWS에서는 AWS Fargate의 기본 인프라를 유지 관리합니다. AWS에서는 플랫폼 버전 개정을 인프라의 새 개정으로 교체해야 하는 시기를 결정합니다. 이를 작업 사용 중지라고 합니다. AWS에서는 플랫폼 버전 개정이 사용 중지되면 작업 사용 중지 알림을 보냅니다. 지원되는 플랫폼 버전을 정기적으로 업데이트하여 Fargate 런타임 소프트웨어 및 운영 체제 및 컨테이너 런타임과 같은 기본 종속성에 대한 업데이트를 포함하는 새 개정을 도입합니다. 최신 개정이 사용 가능해지면 모든 고객 워크로드가 Fargate 플랫폼 버전의 최신 개정에서 실행되도록 하기 위해 이전 개정을 사용 중지합니다. 수정 버전이 사용 중지되면 해당 수정 버전에서 실행 중인 모든 작업은 중지됩니다.

Amazon ECS 작업은 서비스 작업 또는 독립 실행형 작업으로 분류할 수 있습니다. 서비스 작업은 서비스의 일부로 배포되고 Amazon ECS 일정에서 제어합니다. 자세한 내용은 Amazon ECS 서비스 단원을 참조하십시오. 독립 실행형 작업은 예약된 작업(Amazon EventBridge에서 시작), AWS Batch 또는 AWS Step Functions와 같은 외부 스케줄러에서 시작하거나 직접 Amazon ECS RunTask API에서 시작하는 작업입니다. Amazon ECS 스케줄러가 자동으로 태스크를 대체하므로 서비스 태스크에 대한 태스크 사용 중지에 대응하여 어떤 조치도 취할 필요가 없습니다.

독립 실행형 태스크의 경우 태스크 사용 중지에 대응하여 추가적인 처리를 수행해야 할 수도 있습니다. 자세한 내용은 Amazon ECS에서 독립 실행형 작업을 자동으로 처리할 수 있나요? 단원을 참조하십시오.

서비스 태스크의 경우 AWS 전에 먼저 이러한 태스크를 대체하지 않는 한, 태스크 사용 중지에 대한 어떤 조치도 취할 필요가 없습니다. Amazon ECS 스케줄러에서 태스크를 중지하는 경우 maximumPercent를 사용하며, 원하는 서비스 개수를 유지하기 위해 새 태스크를 시작합니다. AWS Fargate 태스크 사용 중지로 인한 영향을 최소화하려면 워크로드를 배포할 때 Amazon ECS 모범 사례를 따라야 합니다. REPLICA 서비스 스케줄러를 사용하는 서비스의 기본 maximumPercent 값은 200%입니다. 따라서 AWS Fargate가 태스크 사용 중지를 시작하면 Amazon ECS는 먼저 새 태스크를 예약한 다음 해당 태스크가 실행될 때까지 기다렸다가 이전 태스크를 사용 중지합니다. maximumPercent 값을 100%로 설정하면 Amazon ECS에서는 태스크를 먼저 중지한 다음에 바꿉니다.

독립 실행형 작업 사용 중지의 경우 AWS에서 작업 사용 중지 날짜 또는 이후에 작업을 중지합니다. Amazon ECS는 태스크가 중지될 때 대체 태스크를 시작하지 않습니다. 이러한 작업을 계속 실행해야 하는 경우 알림에 표시된 시간 이전에 실행 중인 작업을 중지하고 대체 작업을 시작해야 합니다. 따라서 고객은 독립 실행형 작업의 상태를 모니터링하고 필요한 경우 중지된 작업을 대체하는 로직을 구현하는 것이 좋습니다.

어떤 시나리오에서든 작업이 중지되면 describe-tasks를 실행할 수 있습니다. 응답의 stoppedReasonECS is performing maintenance on the underlying infrastructure hosting the task입니다.

새 플랫폼 버전 개정을 새 개정으로 교체해야 하는 경우 작업 유지 관리가 적용됩니다. 기본 Fargate 호스트에 문제가 있는 경우 Amazon ECS는 작업 사용 중지 통지 없이 호스트를 교체합니다.

태스크 사용 중지 공지 개요

AWS에서 플랫폼 버전 개정을 사용 중지해야 한다고 표시하면 모든 리전에서 해당 플랫폼 버전 개정에서 실행 중인 모든 태스크를 식별합니다. 그런 다음 각 리전별 계정당 하나의 알림을 보내 영향을 받는 태스크나 서비스와 사용 중지가 시작되는 날짜를 강조 표시합니다.

다음 그림은 새로운 개정 출시부터 플랫폼 개정 사용 중지까지 Fargate 플랫폼 버전 개정의 수명 주기를 보여줍니다.

Fargate 태스크 사용 중지 수명 주기를 보여주는 다이어그램.

다음 정보는 세부 사항을 제공합니다.

  • 새 플랫폼 버전 개정이 시작되면 모든 새 태스크는 이 개정에 따라 예약됩니다.

  • 예약되어 실행 중인 기존 태스크는 태스크 기간 동안 원래 적용되었던 개정에 그대로 유지되며 새 개정으로 마이그레이션되지 않습니다.

  • 예를 들어 서비스 업데이트 또는 Fargate 태스크 사용 중지와 같은 새로운 태스크는 출시 시점에 사용 가능한 최신 플랫폼 버전 개정에 따라 배치됩니다.

태스크 사용 중지 알림은 AWS Health 대시보드 및 등록된 이메일 주소로의 이메일을 통해 전송되며, 여기에는 다음 정보가 포함됩니다.

  • 작업 사용 중지 날짜 - 이 날짜 또는 이후에 작업이 중지됩니다.

  • 독립 실행형 작업의 경우 작업의 ID

  • 서비스 작업의 경우 서비스가 실행되는 클러스터의 ID와 서비스의 ID

  • 수행해야 하는 다음 단계

일반적으로 각 AWS 리전에서 서비스 및 독립 실행형 작업에 대해 각각 하나의 알림을 보냅니다. 하지만 경우에 따라 각 작업 유형에 대해 두 개 이상의 이벤트를 수신할 수 있습니다. 예를 들어 사용 중지할 작업이 너무 많아 알림 메커니즘의 한도를 초과하는 경우가 이에 해당합니다.

사용 중지가 예약된 작업은 다음과 같은 방법으로 식별할 수 있습니다.

  • AWS Health Dashboard은

    AWS Health 알림은 Amazon Storage Service와 같은 아카이브 스토리지에 대한 Amazon EventBridge, AWS Lambda 함수 실행과 같은 자동화된 작업 수행 또는 Amazon Simple Notification Service와 같은 기타 알림 시스템을 통해 전송될 수 있습니다. 자세한 내용을 알아보려면 Amazon EventBridge를 사용하여 AWS Health 이벤트 모니터링을 참조하세요. Amazon Chime, Slack 또는 Microsoft Teams에 알림을 보내기 위한 샘플 구성은 GitHub의 AWS Health Aware 리포지토리를 참조하세요.

    다음은 샘플 EventBridge 이벤트입니다.

    { "version": "0", "id": "3c268027-f43c-0171-7425-1d799EXAMPLE", "detail-type": "AWS Health Event", "source": "aws.health", "account": "123456789012", "time": "2023-08-16T23:18:51Z", "region": "us-east-1", "resources": [ "cluster|service", "cluster|service" ], "detail": { "eventArn": "arn:aws:health:us-east-1::event/ECS/AWS_ECS_TASK_PATCHING_RETIREMENT/AWS_ECS_TASK_PATCHING_RETIREMENT_test1", "service": "ECS", "eventScopeCode": "ACCOUNT_SPECIFIC", "communicationId": "7988399e2e6fb0b905ddc88e0e2de1fd17e4c9fa60349577446d95a18EXAMPLE", "lastUpdatedTime": "Wed, 16 Aug 2023 23:18:52 GMT", "eventRegion": "us-east-1", "eventTypeCode": "AWS_ECS_TASK_PATCHING_RETIREMENT", "eventTypeCategory": "scheduledChange", "startTime": "Wed, 16 Aug 2023 23:18:51 GMT", "endTime": "Fri, 18 Aug 2023 23:18:51 GMT", "eventDescription": [ { "language": "en_US", "latestDescription": "\\nA software update has been deployed to Fargate which includes CVE patches or other critical patches. No action is required on your part. All new tasks launched automatically uses the latest software version. For existing tasks, your tasks need to be restarted in order for these updates to apply. Your tasks running as part of the following ECS Services will be automatically updated beginning Wed, 16 Aug 2023 23:18:51 GMT.\\n\\nAfter Wed, 16 Aug 2023 23:18:51 GMT, the ECS scheduler will gradually replace these tasks, respecting the deployment settings for your service. Typically, services should see little to no interruption during the update and no action is required. When AWS stops tasks, AWS uses the minimum healthy percent (1) and launches a new task in an attempt to maintain the desired count for the service. By default, the minimum healthy percent of a service is 100 percent, so a new task is started first before a task is stopped. Service tasks are routinely replaced in the same way when you scale the service or deploy configuration changes or deploy task definition revisions. If you would like to control the timing of this restart you can update the service before Wed, 16 Aug 2023 23:18:51 GMT, by running the update-service command from the ECS command-line interface specifying force-new-deployment for services using Rolling update deployment type. For example:\\n\\n$ aws ecs update-service -service service_name \\\n--cluster cluster_name -force-new-deployment\\n\\nFor services using Blue/Green deployment type with AWS CodeDeploy:\\nPlease refer to create-deployment document (2) and create new deployment using same task definition revision.\\n\\nFor further details on ECS deployment types, please refer to ECS Deployment Developer Guide (1).\\nFor further details on Fargate's update process, please refer to the AWS Fargate User Guide (3).\\nIf you have any questions or concerns, please contact AWS Support (4).\\n\\n(1) https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-types.html\\n(2) https://docs.aws.amazon.com/cli/latest/reference/deploy/create-deployment.html\\n(3) https://docs.aws.amazon.com/AmazonECS/latest/userguide/task-maintenance.html\\n(4) https://aws.amazon.com/support\\n\\nA list of your affected resources(s) can be found in the 'Affected resources' tab in the 'Cluster/ Service' format in the AWS Health Dashboard. \\n\\n" } ], "affectedEntities": [ { "entityValue": "cluster|service" }, { "entityValue": "cluster|service" } ] } }
  • 이메일

    AWS 계정 ID에 대해 등록된 이메일로 이메일이 전송됩니다.

태스크 사용 중지를 준비하는 방법에 대한 자세한 내용은 Amazon ECS에서 AWS Fargate 태스크 사용 중지 준비 섹션을 참조하세요.

태스크 사용 중지를 옵트아웃할 수 있나요?

아니요. AWS 공동 책임 모델의 일부로, AWS는 AWS Fargate의 기본 인프라를 관리하고 유지 보수할 책임이 있습니다. 여기에는 보안과 안정성을 보장하기 위한 주기적인 플랫폼 업데이트 수행이 포함됩니다. 이러한 업데이트는 AWS에 의해 자동으로 적용되며 고객이 옵트아웃할 수 없습니다. 이는 EC2 인스턴스에서 워크로드를 실행할 때와 비교하여 AWS에서 기본 플랫폼 유지 관리를 처리한다는 점에서 AWS Fargate를 사용할 때의 주요 이점입니다. 이 모델을 사용하면 인프라 유지 관리가 아닌 애플리케이션에 집중할 수 있습니다. AWS는 이러한 플랫폼 업데이트를 자동으로 적용함으로써 고객이 별도의 조치를 취하지 않아도 Fargate 환경을 최신 상태로 안전하게 유지할 수 있습니다. 따라서 Fargate에서 워크로드를 실행하기 위한 안정적이고 안전한 컨테이너화된 환경을 제공하는 데 도움이 됩니다.

다른 AWS 서비스를 통해 작업 사용 중지 알림을 받을 수 있나요?

AWS에서는 AWS Health Dashboard 및 AWS 계정의 기본 이메일 연락처로 작업 사용 중지 알림을 보냅니다. AWS Health Dashboard에서는 EventBridge를 비롯한 다른 AWS 서비스와의 다양한 통합을 제공합니다. EventBridge를 사용하여 통지 가시성을 자동화할 수 있습니다(예: 메시지를 ChatOps 도구로 전달). 자세한 내용은 Solution overview: Capturing task retirement notifications를 참조하세요.

작업 사용 중지가 예약된 이후에 작업 사용 중지를 변경할 수 있나요?

아니요. 일정은 작업 사용 중지 대기 시간(기본 7일)을 기준으로 합니다. 시간이 더 필요한 경우 대기 시간을 14일로 구성할 수 있습니다. 자세한 내용은 2단계: 태스크 사용 중지 알림을 캡처하여 팀에 알리고 조치 취하기 단원을 참조하십시오. 이 구성의 변경 내용은 향후 예약된 사용 중지에 적용됩니다. 현재 예약된 사용 중지는 영향을 받지 않습니다. 추가 문의 사항이 있는 경우 AWS Support에 문의하세요.

Amazon ECS는 서비스의 일부인 작업을 어떻게 처리하나요?

서비스 태스크의 경우 AWS 전에 먼저 이러한 태스크를 대체하지 않는 한, 태스크 사용 중지에 대응하여 어떤 조치도 취할 필요가 없습니다. Amazon ECS 스케줄러에서 작업을 중지하는 경우 최소 정상 상태 백분율을 사용하며, 원하는 서비스 개수를 유지하기 위해 새 작업을 시작합니다. Fargate 사용 중지의 영향을 최소화하려면 Amazon ECS 모범 사례에 따라 워크로드를 배포해야 합니다. 예를 들어, 상태 비저장 애플리케이션을 웹 또는 API 서버와 같은 Amazon ECS 서비스로 배포하는 경우, 고객은 여러 개의 태스크 복제본을 배포하고 minimumHealthyPercent를 100%로 설정해야 합니다. 기본적으로 서비스의 최소 상태 백분율은 100%입니다. 따라서 Fargate가 태스크 사용 중지를 시작하면 Amazon ECS는 먼저 새 태스크를 예약한 다음 해당 태스크가 실행될 때까지 기다렸다가 이전 태스크를 사용 중지합니다. 태스크 사용 중지의 일환으로 서비스 태스크는 서비스 규모를 조정하거나 구성 변경 내용을 배포하거나 태스크 정의 개정을 배포할 때 동일한 방식으로 정기적으로 대체됩니다. 태스크 사용 중지 프로세스를 준비하려면 Amazon ECS에서 AWS Fargate 태스크 사용 중지 준비 섹션을 참조하세요.

Amazon ECS에서 독립 실행형 작업을 자동으로 처리할 수 있나요?

아니요. AWS에서는 RunTask, 예약된 작업(예: EventBridge 스케줄러를 통해), AWS Batch 또는 AWS Step Functions에 의해 시작된 독립 실행형 작업에 대한 대체 작업을 생성할 수 없습니다. Amazon ECS는 서비스의 일부인 작업만 관리합니다.