Retirada e manutenção de tarefas para o AWS Fargate no Amazon ECS - Amazon Elastic Container Service

Retirada e manutenção de tarefas para o AWS Fargate no Amazon ECS

A AWS é responsável por manter a infraestrutura subjacente do AWS Fargate. A AWS determina quando uma revisão da versão da plataforma precisa ser substituída por uma nova revisão da infraestrutura. Isso é conhecido como retirada de tarefas. A AWS envia uma notificação de retirada da tarefa quando uma revisão da versão da plataforma é retirada. Atualizamos rotineiramente nossas versões da plataforma com suporte para introduzir uma revisão contendo atualizações do software de runtime do Fargate e dependências subjacentes, como o sistema operacional e o runtime do contêiner. Quando uma revisão mais recente é disponibilizada, retiramos a revisão mais antiga para garantir que todas as workloads do cliente sejam executadas na revisão mais atualizada da versão da plataforma do Fargate. Quando uma revisão é retirada, todas as tarefas em execução nessa revisão são interrompidas.

As tarefas do Amazon ECS podem ser categorizadas como tarefas de serviço ou tarefas autônomas. As tarefas de serviço são implantadas como parte de um serviço e controladas pela programação do Amazon ECS. Para obter mais informações, consulte Serviços do Amazon ECS. As tarefas autônomas são tarefas iniciadas pela API RunTask do Amazon ECS, diretamente ou por um agendador externo, como tarefas programadas (que são iniciadas pelo Amazon EventBridge), AWS Batch ou AWS Step Functions. Você não precisa realizar nenhuma ação em resposta à retirada de tarefas de suas tarefas de serviço porque o programador do Amazon ECS substitui automaticamente as tarefas.

Para tarefas autônomas, talvez seja necessário realizar um tratamento adicional em resposta à retirada da tarefa. Para obter mais informações, consulte O Amazon ECS pode processar automaticamente as tarefas autônomas?.

Para tarefas de serviço, você não precisa realizar nenhuma ação para a retirada da tarefa, a menos que queira substituí-las antes de a AWS fazê-lo. Quando o agendador do Amazon ECS interrompe as tarefas, ele usa maximumPercent e executa uma nova tarefa na tentativa de manter a contagem desejada do serviço. Para minimizar o impacto da retirada de tarefas do AWS Fargate, você deve seguir as práticas recomendadas do Amazon ECS ao implantar workloads. O valor padrão maximumPercent para um serviço que usa o agendador de serviço REPLICA é 200%. Portanto, quando o AWS Fargate inicia a retirada de tarefas, o Amazon ECS primeiro agenda uma nova tarefa e espera que ela seja executada, antes de retirar uma tarefa antiga. Quando o valor maximumPercent é definido como 100%, o Amazon ECS interrompe a tarefa primeiro e, em seguida, a substitui.

Para a retirada autônoma da tarefa, a AWS interrompe a tarefa na data de retirada da tarefa ou após ela. O Amazon ECS não inicia uma tarefa de substituição quando uma tarefa é interrompida. Se precisar que essas tarefas continuem em execução, é necessário interromper a execução delas e iniciar uma tarefa substituta antes da hora indicada na notificação. Portanto, recomendamos que os clientes monitorem o estado das tarefas autônomas e, se necessário, implementem a lógica para substituir as tarefas interrompidas.

Quando uma tarefa é interrompida em qualquer um dos cenários, é possível executar describe-tasks. O stoppedReason na resposta é ECS is performing maintenance on the underlying infrastructure hosting the task.

A manutenção de tarefas se aplica quando uma revisão da nova versão da plataforma precisa ser substituída por uma nova. Se houver um problema com um host subjacente do Fargate, o Amazon ECS substitui o host sem um aviso de retirada da tarefa.

Visão geral do aviso de retirada de tarefa

Quando a AWS marca uma revisão da versão da plataforma como precisando ser retirada, identificamos todas as tarefas que estão sendo executadas nessa revisão da versão da plataforma em todas as regiões. Em seguida, enviamos uma notificação por conta por região, destacando as tarefas ou serviços afetados e a data em que as retiradas começarão a ocorrer.

A ilustração a seguir mostra o ciclo de vida de uma revisão da versão da plataforma Fargate, desde o lançamento de uma nova revisão até a retirada da revisão da plataforma.

Diagrama mostrando o ciclo de vida de retirada de tarefas do Fargate.

As informações a seguir fornecem detalhes.

  • Depois que uma nova revisão da versão da plataforma é lançada, todas as novas tarefas são agendadas nessa revisão.

  • As tarefas existentes que foram agendadas e executadas permanecem na revisão em que foram originalmente colocadas durante a tarefa e não são migradas para a nova revisão.

  • Novas tarefas, por exemplo, como parte de uma atualização de um serviço ou da retirada de tarefas do Fargate, são inseridas na revisão mais recente da versão da plataforma disponível no momento do lançamento.

As notificações de retirada de tarefa são enviadas por meio do Painel do AWS Health e para o endereço de e-mail registrado e incluem as seguintes informações:

  • A data de retirada da tarefa: a tarefa é interrompida nessa data ou após essa data.

  • Para tarefas autônomas, os IDs das tarefas.

  • Para tarefas de serviço, o ID do cluster em que o serviço é executado e os IDs do serviço.

  • As próximas etapas que você precisa seguir.

Normalmente, enviamos uma notificação de serviço e tarefas autônomas em cada Região da AWS. No entanto, em alguns casos, você pode receber mais de um evento para cada tipo de tarefa, por exemplo, quando há muitas tarefas a serem retiradas que ultrapassarão os limites nos mecanismos de notificação.

É possível identificar tarefas programadas para retirada das maneiras a seguir:

  • A AWS Health Dashboard

    As notificações AWS Health podem ser enviadas por meio do Amazon EventBridge para que um armazenamento de arquivamento, como o Amazon Simple Storage Service, execute ações automatizadas, como executar uma função do AWS Lambda, ou outros sistemas de notificação, como o Amazon Simple Notification Service. Para obter mais informações, consulte Monitoramento de eventos do AWS Health com o Amazon EventBridge. Para obter um exemplo de configuração do envio de notificações para o Amazon Chime, Slack, ou Microsoft Teams, consulte o repositório AWS Health Aware no GitHub.

    Veja a seguir um exemplo de evento do 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" } ] } }
  • E-mail

    Um email é enviado para o email registrado para obter o ID Conta da AWS.

Para obter informações sobre como se preparar para a retirada de tarefas, consulte Prepare-se para a retirada de tarefas do AWS Fargate no Amazon ECS .

Posso optar pela não retirada de tarefas?

Não. Como parte do modelo de responsabilidade compartilhada da AWS, a AWS é responsável por gerenciar e manter a infraestrutura subjacente do AWS Fargate. Isso inclui a realização de atualizações periódicas da plataforma para garantir a segurança e a estabilidade. Essas atualizações são aplicadas automaticamente pela AWS e não são algo que os clientes possam optar por não aceitar. Esse é um dos principais benefícios de usar um AWS Fargate em comparação com a execução de suas workloads em instâncias do EC2, a responsabilidade pela manutenção da plataforma subjacente é assumida pela AWS. Esse modelo permite que você se concentre em suas aplicações em vez da manutenção da infraestrutura. Ao aplicar automaticamente essas atualizações da plataforma, a AWS é capaz de manter o ambiente do Fargate atualizado e seguro, sem nenhuma ação exigida de você como cliente. Isso ajuda a fornecer um ambiente em contêineres confiável e seguro para executar suas workloads no Fargate.

Posso receber notificações de retirada de tarefas por meio de outros serviços da AWS?

A AWS envia uma notificação de retirada da tarefa para o AWS Health Dashboard e para o principal contato de e-mail na Conta da AWS. O AWS Health Dashboard fornece várias integrações com outros serviços da AWS, incluindo o EventBridge. Você pode usar o EventBridge para automatizar a visibilidade dos avisos (por exemplo, encaminhar a mensagem para uma ferramenta de ChatOps). Para obter mais informações, consulte Solution overview: Capturing task retirement notifications.

Posso alterar a retirada de uma tarefa depois de programada?

Não. O cronograma é baseado no tempo de espera de retirada da tarefa, que tem um padrão de sete dias. Se precisar de mais tempo, você pode configurar o período de espera para 14 dias. Para obter mais informações, consulte Etapa 2: capturar as notificações de retiradas de tarefas para alertar as equipes e tomar medidas. A alteração nessa configuração se aplica às retiradas que serão programadas no futuro. As retiradas programadas atualmente não são afetadas. Em caso de dúvidas, entre em contato com o Suporte.

Como o Amazon ECS processa tarefas que fazem parte de um serviço?

Para tarefas de serviço, você não precisa realizar nenhuma ação em resposta à retirada de tarefas, a menos que queira substituí-las antes de a AWS fazê-lo. Quando o agendador do Amazon ECS interrompe as tarefas, ele usa a porcentagem mínima de integridade e executa uma nova tarefa na tentativa de manter a contagem desejada do serviço. Para minimizar o impacto da retirada de tarefas do Fargate, você deve seguir as práticas recomendadas do Amazon ECS ao implantar workloads. Por exemplo, ao implantar uma aplicação sem estado como um serviço do Amazon ECS, como um servidor Web ou de API, os clientes devem implantar várias réplicas de tarefas e defini-las como minimumHealthyPercent a 100%. Por padrão, a porcentagem mínima de integridade de um serviço é 100%. Portanto, quando o Fargate inicia a retirada de tarefas, o Amazon ECS primeiro agenda uma nova tarefa e espera que ela seja executada, antes de retirar uma tarefa antiga. As tarefas de serviço são substituídas rotineiramente como parte da retirada de tarefas da mesma forma quando você escala o serviço, implanta alterações de configuração ou implanta revisões de definição de tarefas. Para se preparar para o processo de retirada de tarefas, consulte Prepare-se para a retirada de tarefas do AWS Fargate no Amazon ECS .

O Amazon ECS pode processar automaticamente as tarefas autônomas?

Não. A AWS não consegue criar uma tarefa substituta para tarefas autônomas iniciadas por RunTask, tarefas programadas (por exemplo, por meio do Agendador do EventBridge), AWS Batch ou AWS Step Functions. O Amazon ECS gerencia somente tarefas que fazem parte de um serviço.