AWS FAQ sur la maintenance des tâches Fargate sur Amazon ECS - Amazon Elastic Container Service

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

AWS FAQ sur la maintenance des tâches Fargate sur Amazon ECS

Qu'est-ce que le maintien des tâches et la mise hors service de Fargate ?

AWS est responsable de la maintenance de l'infrastructure sous-jacente de AWS Fargate. AWS détermine à quel moment une révision de version de plate-forme doit être remplacée par une nouvelle révision de l'infrastructure. C'est ce que l'on appelle la retraite des tâches. AWS envoie une notification de retrait de tâche lorsqu'une révision de version de plateforme est supprimée. Nous mettons régulièrement à jour les versions de nos plateformes prises en charge pour introduire une nouvelle révision contenant des mises à jour du logiciel d'exécution Fargate et des dépendances sous-jacentes telles que le système d'exploitation et le runtime du conteneur. Dès qu'une nouvelle révision est disponible, nous retirons l'ancienne version afin de garantir que toutes les charges de travail des clients soient exécutées sur la version la plus récente de la version de la plateforme Fargate. Lorsqu'une révision est retirée, toutes les tâches exécutées sur cette révision sont arrêtées.

Les tâches Amazon ECS peuvent être classées en tant que tâches de service ou tâches autonomes. Les tâches de service sont déployées dans le cadre d'un service et contrôlées par le calendrier Amazon ECS. Pour plus d’informations, consultez Services Amazon ECS. Les tâches autonomes sont des tâches démarrées par l'RunTaskAPI Amazon ECS, soit directement, soit par un planificateur externe, telles que les tâches planifiées (qui sont lancées par Amazon EventBridge), AWS Batch ou. AWS Step Functions

Pour les tâches de service, vous n'avez aucune action à effectuer, sauf si vous souhaitez remplacer ces tâches au AWS préalable. Lorsque le planificateur Amazon ECS arrête les tâches, il utilise le pourcentage de santé minimum et lance une nouvelle tâche afin de maintenir le nombre souhaité pour le service. Par défaut, le pourcentage minimum de fonctionnement d'un service est de 100 %, de sorte qu'une nouvelle tâche est démarrée avant d'être arrêtée. Les tâches de service sont régulièrement remplacées de la même manière lorsque vous adaptez le service, que vous déployez des modifications de configuration ou que vous déployez des révisions de définitions de tâches. Afin de vous préparer au nouveau processus de retrait de tâche, nous vous recommandons de tester le comportement de votre application en simulant ce scénario. Pour ce faire, arrêtez une tâche dans votre service pour tester sa résilience.

Pour le retrait d'une tâche autonome, AWS arrête la tâche à la date de fin de la tâche ou après cette date. Nous ne lançons pas de tâche de remplacement lorsqu'une tâche est arrêtée. Si vous souhaitez que ces tâches continuent de s'exécuter, vous devez arrêter les tâches en cours d'exécution et lancer une tâche de remplacement avant l'heure indiquée dans la notification. Nous recommandons donc aux clients de surveiller l'état des tâches autonomes et, si nécessaire, d'implémenter une logique pour remplacer les tâches interrompues.

Lorsqu'une tâche est arrêtée dans l'un des scénarios ci-dessus, vous pouvez exécuter describe-tasks. La stoppedReason de la réponse est ECS is performing maintenance on the underlying infrastructure hosting the task.

La maintenance des tâches s'applique lorsqu'une nouvelle version de la plateforme doit être remplacée par une nouvelle révision. En cas de problème avec un hôte Fargate sous-jacent, Amazon ECS remplace l'hôte sans préavis de retrait de tâche.

Que contient l'avis de cessation des tâches ?

Les notifications de retrait des tâches sont envoyées via le tableau de AWS Health bord ainsi que par e-mail à l'adresse e-mail enregistrée et incluent les informations suivantes :

  • Date de retrait de la tâche : la tâche est arrêtée à cette date ou après.

  • Pour les tâches autonomes, les ID des tâches.

  • Pour les tâches de service, l'ID du cluster sur lequel le service s'exécute et les ID du service.

  • Les prochaines étapes que vous devez suivre.

En règle générale, nous envoyons une notification pour les tâches de service et les tâches autonomes dans chaque Région AWS cas. Toutefois, dans certains cas, vous pouvez recevoir plusieurs événements pour chaque type de tâche, par exemple lorsqu'un trop grand nombre de tâches dépassent les limites fixées par nos mécanismes de notification pour être supprimées.

Vous pouvez identifier les tâches planifiées pour le retrait en procédant ainsi :

  • Le AWS Health Dashboard

    AWS Health les notifications peuvent être envoyées via Amazon EventBridge vers un système de stockage d'archives tel qu'Amazon Simple Storage Service, effectuer des actions automatisées telles que l'exécution d'une AWS Lambda fonction, ou vers d'autres systèmes de notification tels qu'Amazon Simple Notification Service. Pour plus d'informations, consultez la section Surveillance AWS Health des événements avec Amazon EventBridge. Pour un exemple de configuration permettant d'envoyer des notifications à Amazon Chime, Slack ou Microsoft Teams, consultez le référentiel AWS Health Aware sur. GitHub

    Voici un exemple d' EventBridge événement.

    { "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-mails

    Un e-mail est envoyé à l'adresse e-mail enregistrée pour l' Compte AWS identifiant.

Puis-je modifier le temps d'attente pour la retraite des tâches ?

Vous pouvez configurer l'heure à laquelle Fargate commence le retrait des tâches. Pour les charges de travail qui nécessitent l'application immédiate des mises à jour, choisissez le paramètre immédiat (0). Lorsque vous avez besoin de davantage de contrôle, par exemple lorsqu'une tâche ne peut être arrêtée que pendant une certaine période, configurez l'option 7 jours (7) ou 14 jours (14).

Nous vous recommandons de choisir une période d'attente plus courte afin de pouvoir accéder plus rapidement aux nouvelles versions de plateforme.

Configurez la période d'attente en exécutant put-account-setting-default ou put-account-setting en tant qu'utilisateur root ou administrateur. Utilisez l'option fargateTaskRetirementWaitPeriod pour le name et l'option value définie sur l'une des valeurs suivantes :

  • 0- AWS envoie la notification et commence immédiatement à supprimer les tâches concernées.

  • 7- AWS envoie la notification et attend 7 jours calendaires avant de commencer à supprimer les tâches concernées.

  • 14 : AWS envoie la notification et attend 14 jours calendaires avant de commencer à retirer les tâches concernées.

La durée par défaut est de 7 jours.

Pour plus d'informations, veuillez consulter put-account-setting-default et put-account-setting dans la Référence de l'API Amazon Elastic Container Service.

Pour plus d’informations, consultez AWS Fargate temps d'attente pour la retraite des tâches.

Puis-je recevoir des notifications de retrait de tâches par le biais d'autres AWS services ?

AWS envoie une notification de retrait de tâche au AWS Health Dashboard et au contact e-mail principal sur le Compte AWS. AWS Health Dashboard Il fournit un certain nombre d'intégrations dans d'autres AWS services, notamment EventBridge. Vous pouvez l'utiliser EventBridge pour automatiser la visibilité des notifications (par exemple, transférer le message vers un ChatOps outil). Pour plus d'informations, voir Présentation de la solution : capture des notifications de retrait de tâches.

Puis-je modifier le retrait d'une tâche une fois qu'il a été planifié ?

Non. Le calendrier est basé sur le temps d'attente pour la fin des tâches, qui est par défaut de 7 jours. Si vous avez besoin de plus de temps, vous pouvez choisir de configurer le délai d'attente à 14 jours. Pour plus d’informations, consultez Puis-je modifier le temps d'attente pour la retraite des tâches ?. La modification apportée à cette configuration s'applique aux mises à la retraite qui seront planifiées dans le futur. Les départs à la retraite prévus actuellement ne sont pas concernés. Si vous avez d'autres préoccupations, contactez AWS Support.

Puis-je contrôler le calendrier de remplacement d'une tâche ?

Pour les services qui utilisent le déploiement progressif, vous devez mettre à jour le service à l'update-serviceaide de l'force-deploymentoption avant l'heure de début de la mise hors service.

L'update-serviceexemple suivant utilise l'force-deploymentoption.

aws ecs update-service —-service service_name \ --cluster cluster_name \ --force-new-deployment

Pour les services qui utilisent le déploiement bleu/vert, vous devez créer un nouveau déploiement dans. AWS CodeDeployPour plus d'informations sur la façon de créer le déploiement, voir create-deployment dans la AWS Command Line Interface référence.

Comment Amazon ECS gère-t-il les tâches faisant partie d'un service ?

Amazon ECS remplace progressivement les tâches concernées dans votre service au début de la période de mise hors service de Fargate. Lorsqu'Amazon ECS arrête une tâche, il utilise le pourcentage de santé minimum du service et lance une nouvelle tâche afin de maintenir le nombre de tâches souhaité pour le service. Une nouvelle tâche est démarrée avant qu'une tâche ne soit arrêtée car le pourcentage de santé minimum par défaut est de 100. Les tâches de service sont régulièrement remplacées de la même manière lorsque vous adaptez le service, que vous déployez des modifications de configuration ou que vous déployez des révisions de définitions de tâches. Pour plus d'informations sur le pourcentage de santé minimal, consultezConfiguration de déploiement.

Amazon ECS peut-il gérer automatiquement des tâches autonomes ?

Non. AWS ne peut pas créer de tâche de remplacement pour les tâches autonomes démarrées par RunTask des tâches planifiées (par exemple via le EventBridge planificateur) ou. AWS Batch AWS Step Functions Amazon ECS gère uniquement les tâches faisant partie d'un service.