Préparez-vous à la AWS suppression 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.

Préparez-vous à la AWS suppression des tâches Fargate sur Amazon ECS

Afin d’être prêt à la mise hors service de tâche, effectuez les opérations suivantes :

  1. Définissez le délai d'attente pour la suppression des tâches ou utilisez les fenêtres EC2 d'événements Amazon.

  2. Capturez les notifications de mise hors service de tâche pour avertir les membres de l’équipe.

  3. Vous pouvez vous assurer que toutes les tâches de vos services sont exécutées sur la dernière version de la plateforme en mettant à jour le service avec l'option de déploiement forcé. Cette étape est facultative.

Étape 1 : définir le temps d'attente des tâches ou utiliser les fenêtres d' EC2 événements Amazon

Vous disposez de deux options de paramètres de compte pour configurer l'heure à laquelle Fargate commence à supprimer des tâches : et. fargateTaskRetirementWaitPeriod fargateEventWindows

Utilisation des paramètres fargateTaskRetirement WaitPeriod du compte

Vous pouvez configurer l'heure à laquelle Fargate commence le retrait des tâches. Le délai d'attente par défaut est de 7 jours. Pour les charges de travail qui nécessitent l'application immédiate des mises à jour, choisissez le paramètre immédiat (0). Si vous avez besoin de plus de temps, configurez l'7option ou 14 day.

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 racine ou utilisateur administratif. 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. Il s’agit de l’option par défaut.

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

Pour plus d'informations, consultez put-account-setting-defaultet consultez le put-account-settingmanuel Amazon Elastic Container Service API Reference.

Utilisation des paramètres fargateEventWindows du compte

Depuis le 18/12/2025, Amazon ECS vous permet de configurer les fenêtres d' EC2 événements Amazon pour vos tâches Fargate. Si vous avez besoin d'un contrôle précis sur le moment exact des interruptions de tâches, par exemple en les planifiant le week-end pour éviter toute interruption pendant les heures ouvrables, vous pouvez configurer les fenêtres d' EC2 événements Amazon pour vos tâches, services ou clusters.

Lorsque vous utilisez des fenêtres d'événements, Fargate veille à ce que vos tâches soient exécutées pendant au moins 3 jours avant d'être supprimées dans la prochaine fenêtre disponible, sauf si elles sont interrompues par des actions initiées par l'utilisateur ou par des événements de santé critiques tels que la dégradation du matériel sous-jacent.

Réglez le paramètre du compte fargateEventWindows sur enabled. Vous pouvez utiliser l'une des options suivantes APIs : put-account-setting-default ou put-account-setting en tant qu'utilisateur root ou en tant qu'utilisateur administratif.

Chaque fenêtre d' EC2 événements Amazon doit être ouverte au moins 4 heures par semaine, et chaque plage horaire doit être d'au moins 2 heures. Pour les clusters et les services de grande taille, nous recommandons de configurer des fenêtres d'événements de longue durée (8 heures ou plus) ou de plages de temps plus fréquentes qui se produisent au moins une fois tous les 3 jours. Vous pouvez consulter plus en détail les considérations relatives aux fenêtres d' EC2 événements Amazon dans le guide de l'utilisateur pour vous AWS Fargate assurer que vos tâches s'exécutent pendant au moins 3 jours avant d'être supprimées, sauf si elles sont interrompues par des actions initiées par l'utilisateur ou par des événements de santé critiques tels que la dégradation du matériel sous-jacent.

Important

Il est préférable de remplacer les tâches dans la fenêtre d'événements. Si vous remarquez que des tâches sont supprimées en dehors des fenêtres de vos événements, envisagez d'en prolonger la durée (8 heures ou plus) ou d'augmenter la fréquence (au moins une fois tous les 3 jours).

Pour appliquer les fenêtres d' EC2 événements Amazon à vos mises hors service de tâches Fargate :

  • Réglez le paramètre du compte fargateEventWindows sur enabled. Vous pouvez utiliser l'une des options suivantes APIs : put-account-setting-default ou put-account-setting en tant qu'utilisateur root ou en tant qu'utilisateur administratif. Notez qu'il s'agit d'une activation ponctuelle pour l'utilisation de la fonctionnalité Amazon EC2 Event Windows pour vos tâches Fargate.

  • Créez une fenêtre d' EC2 événements Amazon via la console AWS ou l'interface de ligne de commande AWS. Pour créer une fenêtre d'événements à l'aide de la CLI, utilisez EC2 create-instance-event-window l'API avec des plages de temps ou des expressions cron. Prenez note du contenu InstanceEventWindowId de la réponse.

    aws ec2 create-instance-event-window \ --time-range StartWeekDay=monday,StartHour=2,EndWeekDay=wednesday,EndHour=8 \ --tag-specifications "ResourceType=instance-event-window,Tags=[{Key=K1,Value=V1" \ --name myEventWindowName

    Vous pouvez également utiliser des expressions cron lors de la création de fenêtres d' EC2 événements.

    aws ec2 create-instance-event-window \ --cron-expression "* 21-23 * * 2,3" \ --tag-specifications "ResourceType=instance-event-window,Tags=[{Key=K1,Value=V1" \ --name myEventWindowName
  • You can then associate the event window with specific services, clusters or all tasks in your account using EC2associate-instance-event-window API.
    • For ECS service tasks
      aws ec2 associate-instance-event-window \ --instance-event-window-id iew-0abcdef1234567890 \ --association-target "InstanceTags=[{Key=aws:ecs:serviceArn,Value=your-service-arn}]"
    • For ECS clusters
      aws ec2 associate-instance-event-window \ --instance-event-window-id iew-0abcdef1234567890 \ --association-target "InstanceTags=[{Key=aws:ecs:clusterArn,Value=your-cluster-arn}]"
    • To associate an event window with all tasks in the account
      aws ec2 associate-instance-event-window \ --instance-event-window-id iew-0abcdef1234567890 \ --association-target "InstanceTags=[{Key=aws:ecs:fargateTask,Value=true}]"

Vous pouvez utiliser plusieurs paires clé-valeur pour associer une fenêtre d'événements à plusieurs services ou clusters.

Fargate choisira la fenêtre d'événements pour chaque tâche dans l'ordre suivant :

  • If there is an event window associated with the task's service, it will be used. This is not applicable for standalone or unmanaged tasks.
  • If there is an event window associated with the task's cluster, it will be used.
  • If there is an event window set for all Fargate tasks, it will be used.
  • The fargateTaskRetirementWaitPeriod setting will be used if none of the event windows match with the task.

Configuration des fenêtres d'événements pour la maintenance des tâches de Fargate

Prenons le cas où vous exécutez plusieurs services ECS sur Fargate avec des exigences de disponibilité différentes. Vous voulez avoir un contrôle précis sur les abandons de tâches. Vous pouvez configurer plusieurs fenêtres d'événements comme suit :

  • Maintenance par défaut pour toutes les tâches Fargate : créez une fenêtre d'événements pour la maintenance de routine pendant les heures creuses (de 12 h à 4 h du matin tous les jours) et associez-la à toutes les tâches Fargate à l'aide de la balise. aws:ecs:fargateTask

  • Maintenance du cluster de développement uniquement le week-end : pour un cluster de développement dont les services peuvent tolérer des interruptions le week-end, créez une fenêtre de week-end de 24 heures (samedi et dimanche, toute la journée) et associez-la au cluster à l'aide de la aws:ecs:clusterArn balise associée à l'ARN de votre cluster.

  • Période restreinte pour les services critiques : pour un service de traitement des paiements essentiel nécessitant une disponibilité élevée en semaine, limitez la maintenance aux heures du week-end tôt le matin (samedi et dimanche, de minuit à 4 h) et associez-le au service spécifique en utilisant le tag associé à l'ARN de votre service. aws:ecs:serviceArn

Avec cette configuration, le service de paiement utilise sa fenêtre spécifique réservée au week-end, les services et tâches du cluster de développement utilisent la fenêtre de 24 heures du week-end, et toutes les autres tâches Fargate utilisent la fenêtre de maintenance quotidienne par défaut.

Pour plus d'informations, consultez put-account-setting-defaultet consultez le put-account-settingmanuel Amazon Elastic Container Service API Reference.

Étape 2 : capturer les notifications de mise hors service de tâche pour alerter les équipes et prendre des mesures

En cas de retrait imminent d'une tâche, AWS envoie une notification de retrait de tâche au AWS Health tableau de bord et au contact e-mail principal sur le Compte AWS. Le AWS Health tableau de bord propose un certain nombre d'intégrations dans d'autres AWS services, notamment Amazon EventBridge. Vous pouvez l'utiliser EventBridge pour créer des automatisations à partir d'une notification de retrait de tâche, par exemple en augmentant la visibilité du prochain retrait en transférant le message vers un ChatOps outil. AWS Health Aware est une ressource qui montre la puissance du AWS Health tableau de bord et montre comment les notifications peuvent être distribuées au sein d'une organisation. Vous pouvez transférer une notification de mise hors service de tâche vers une application de chat, telle que Slack.

L’illustration suivante présente une vue d’ensemble de la solution.

Schéma illustrant la solution Fargate permettant de capturer les notifications de mise hors service de tâche Fargate.

Les informations suivantes fournissent des détails.

  • Fargate envoie la notification de mise hors service de la tâche au tableau de bord AWS Health .

  • Le AWS Health tableau de bord envoie un e-mail au contact e-mail principal sur le Compte AWS, et le notifie EventBridge.

  • EventBridge possède une règle qui capture la notification de départ à la retraite.

    La règle qui recherche les événements avec le type de détail de l’événement : "AWS Health Event" and the Event Detail Type Code: "AWS_ECS_TASK_PATCHING_RETIREMENT"

  • La règle déclenche une fonction Lambda qui transmet les informations à Slack à l’aide d’un Webhook entrant Slack. Pour plus d’informations, consultez la section Webhooks entrants.

Pour un exemple de code, consultez Capture des notifications de retrait de AWS Fargate tâches sur Github.

Étape 3 : contrôler le remplacement des tâches

Vous ne pouvez pas contrôler le moment exact de la mise hors service d’une tâche, mais vous pouvez définir un temps d’attente. Si vous souhaitez contrôler le remplacement des tâches selon votre propre calendrier, vous pouvez enregistrer l’avis de mise hors service d’une tâche afin de comprendre d’abord la date de mise hors service de la tâche. Vous pouvez ensuite redéployer votre service pour lancer des tâches de remplacement, ainsi que pour remplacer toutes les tâches autonomes. Pour les services utilisant un déploiement continu, vous devez mettre à jour le service à l’aide de update-service avec l’option force-deployment avant l’heure de début de la mise hors service.

L’exemple suivant update-service utilise l’option force-deployment.

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

Pour les services qui utilisent le blue/green déploiement, vous devez créer un nouveau déploiement dans AWS CodeDeploy. Pour plus d’informations sur la façon de créer le déploiement, consultez la section create-deployment dans la Référence AWS Command Line Interface .