Arrêtez en toute sécurité l'exécution ECS des charges de travail Amazon sur les instances EC2 - 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.

Arrêtez en toute sécurité l'exécution ECS des charges de travail Amazon sur les instances EC2

Le drainage géré des instances facilite la résiliation progressive des instances AmazonEC2. Cela permet à vos charges de travail de s'arrêter en toute sécurité et d'être reprogrammées vers des instances non résilientes. La maintenance et les mises à jour de l'infrastructure sont effectuées sans craindre de perturber les charges de travail. En utilisant le drainage d'instance géré, vous simplifiez les flux de travail de gestion de votre infrastructure qui nécessitent le remplacement des EC2 instances Amazon, tout en garantissant la résilience et la disponibilité de vos applications.

Le drainage d'instance ECS géré par Amazon fonctionne avec les remplacements d'instances de groupe Auto Scaling. Sur la base de l'actualisation des instances et de leur durée de vie maximale, les clients peuvent s'assurer qu'ils restent conformes aux dernières réglementations en matière de système d'exploitation et de sécurité en matière de capacité.

Le drainage d'instance géré ne peut être utilisé qu'avec les fournisseurs de ECS capacité Amazon. Vous pouvez activer le drainage géré des instances lorsque vous créez ou mettez à jour les fournisseurs de capacité de votre groupe Auto Scaling à l'aide de la ECS console Amazon AWS CLI, ouSDK.

Les événements suivants sont couverts par le drainage d'instance ECS géré par Amazon.

  • Actualisation de l'instance du groupe Auto Scaling ‐ Utilisez l'actualisation des instances pour effectuer le remplacement progressif de vos EC2 instances Amazon dans votre groupe Auto Scaling au lieu de le faire manuellement par lots. Cela est utile lorsque vous devez remplacer un grand nombre d'instances. L'actualisation d'une instance est initiée via la EC2 console Amazon ou le StartInstanceRefreshAPI. Assurez-vous de sélectionner Replace la protection Scale-in lorsque vous appelez StartInstanceRefresh si vous utilisez une protection de résiliation gérée.

  • Durée de vie maximale des instances ‐ Vous pouvez définir une durée de vie maximale lorsqu'il s'agit de remplacer les instances du groupe Auto Scaling. Cela est utile pour planifier des instances de remplacement en fonction des politiques de sécurité internes ou de la conformité.

  • Mise à l'échelle du groupe Auto Scaling ‐ Sur la base des politiques de dimensionnement et des actions de dimensionnement planifiées, le groupe Auto Scaling prend en charge le dimensionnement automatique des instances. En utilisant un groupe Auto Scaling en tant que fournisseur de ECS capacité Amazon, vous pouvez intégrer des instances de groupe Auto Scaling lorsqu'aucune tâche n'y est exécutée.

  • Contrôles de santé du groupe Auto Scaling ‐ Le groupe Auto Scaling prend en charge de nombreux bilans de santé pour gérer la résiliation d'instances défectueuses.

  • AWS CloudFormation mises à jour de la pile ‐ Vous pouvez ajouter un UpdatePolicy attribut à votre AWS CloudFormation pile pour effectuer des mises à jour continues lorsque le groupe change.

  • Rééquilibrage de la capacité ponctuelle ‐ Le groupe Auto Scaling essaie de remplacer de manière proactive les instances ponctuelles présentant un risque d'interruption plus élevé sur la base de l'avis de rééquilibrage des EC2 capacités d'Amazon. Le groupe Auto Scaling met fin à l'ancienne instance lorsque la solution de remplacement est lancée et saine. Le drainage d'instance ECS géré par Amazon draine l'instance Spot de la même manière qu'une instance non Spot.

  • Interruption ponctuelle ‐ Les instances ponctuelles sont résiliées avec un préavis de deux minutes. Le drainage d'instance ECS géré par Amazon met l'instance en état de vidange en réponse.

Le cycle de vie d'Amazon EC2 Auto Scaling s'accroche à la gestion du drainage des instances

Les hooks du cycle de vie du groupe Auto Scaling permettent au client de créer des solutions déclenchées par certains événements du cycle de vie de l'instance et d'effectuer une action personnalisée lorsque cet événement se produit. Un groupe Auto Scaling autorise jusqu'à 50 hooks. Plusieurs hooks de terminaison peuvent exister et sont exécutés en parallèle, et le groupe Auto Scaling attend que tous les hooks soient terminés avant de terminer une instance.

Outre la terminaison de crochet ECS gérée par Amazon, vous pouvez également configurer vos propres crochets de terminaison de cycle de vie. Les hooks du cycle de vie ont undefault action, et nous vous recommandons de le définir continue par défaut pour garantir que les autres hooks, tels que le hook ECS géré par Amazon, ne soient pas affectés par les erreurs provenant des hooks personnalisés.

Si vous avez déjà configuré un hook de fin de cycle de vie de groupe Auto Scaling et que vous avez également activé le drainage d'instance ECS géré par Amazon, les deux hooks de cycle de vie sont exécutés. Les horaires relatifs ne sont toutefois pas garantis. Les hooks du cycle de vie disposent d'un default action paramètre qui spécifie l'action à effectuer lorsque le délai d'expiration est expiré. En cas d'échec, nous vous recommandons d'utiliser continue comme résultat par défaut votre hook personnalisé. Cela garantit que les autres hooks, en particulier les hooks ECS gérés par Amazon, ne sont pas affectés par des erreurs dans votre hook de cycle de vie personnalisé. Le résultat alternatif de abandon fait sauter tous les autres crochets et doit être évité. Pour plus d'informations sur les hooks du cycle de vie des groupes Auto Scaling, consultez les hooks du cycle de vie Amazon EC2 Auto Scaling dans le guide de l'utilisateur d'Amazon EC2 Auto Scaling.

Tâches et vidange d'instance géré

Le drainage d'instance ECS géré par Amazon utilise la fonctionnalité de drainage existante présente dans les instances de conteneur. La fonction de vidange des instances de conteneur effectue le remplacement et arrête les tâches de réplication appartenant à un ECS service Amazon. Une tâche autonome, telle qu'une tâche invoquée parRunTask, qui est à l'RUNNINGétat PENDING ou reste inchangée. Vous devez attendre qu'ils soient terminés ou qu'ils soient arrêtés manuellement. L'instance de conteneur reste dans DRAINING cet état jusqu'à ce que toutes les tâches soient arrêtées ou jusqu'à ce que 48 heures se soient écoulées. Les tâches du démon sont les dernières à s'arrêter une fois que toutes les tâches de réplication ont été arrêtées.

Drainage des instances géré et protection gérée contre les résiliations

Le drainage d'instance géré fonctionne même si la terminaison gérée est désactivée. Pour plus d'informations sur la gestion de la protection contre les licenciements, consultezContrôlez les instances auxquelles Amazon ECS met fin.

Le tableau suivant récapitule le comportement des différentes combinaisons de terminaison gérée et de drainage géré.

Résiliation gérée Drainage géré Outcome

Activées

Activées Amazon ECS protège les EC2 instances Amazon qui exécutent des tâches contre les interruptions dues à des événements de scale-in. Toutes les instances en cours de résiliation, telles que celles pour lesquelles la protection contre la résiliation n'est pas définie, celles qui ont subi une interruption ponctuelle ou qui sont forcées par une actualisation de l'instance, sont correctement drainées.

Désactivées

Activées Amazon ECS ne protège pas les EC2 instances Amazon exécutant des tâches contre l'évolutivité. Cependant, toutes les instances mises hors service sont correctement vidées.

Activé

Désactivées Amazon ECS protège les EC2 instances Amazon qui exécutent des tâches contre les interruptions dues à des événements de scale-in. Toutefois, les instances peuvent toujours être résiliées en cas d'interruption ponctuelle ou d'actualisation forcée de l'instance, ou si elles n'exécutent aucune tâche. Amazon ECS n'effectue pas de vidange progressive pour ces instances et lance des tâches de service de remplacement après leur arrêt.

Désactivées

Désactivées EC2Les instances Amazon peuvent être étendues ou résiliées à tout moment, même si elles exécutent des tâches AmazonECS. Amazon ECS lancera les tâches de service de remplacement après leur arrêt.
Drainage d'instance géré et vidange d'instance Spot

Avec le drainage d'une instance Spot, vous pouvez définir une variable d'environnement ECS_ENABLE_SPOT_INSTANCE_DRAINING sur l'ECSagent Amazon qui permet ECS à Amazon de placer une instance en état de vidange en réponse à une interruption ponctuelle de deux minutes. Le drainage des instances ECS géré par Amazon facilite l'arrêt progressif des EC2 instances Amazon en cours de résiliation pour de nombreuses raisons, et pas simplement pour une interruption ponctuelle. Par exemple, vous pouvez utiliser le rééquilibrage de capacité d'Amazon EC2 Auto Scaling pour remplacer de manière proactive une instance Spot en cas de risque élevé d'interruption, et le drainage géré des instances permet d'arrêter progressivement l'instance Spot remplacée. Lorsque vous utilisez le drainage d'instance géré, il n'est pas nécessaire d'activer le drainage d'instance Spot séparément. Par conséquent, ECS_ENABLE_SPOT_INSTANCE_DRAINING dans le groupe Auto Scaling, les données utilisateur sont redondantes. Pour plus d'informations sur le drainage des instances Spot, consultezInstances Spot.

Comment fonctionne le drainage géré des instances avec EventBridge

Les événements de vidange d'instance ECS gérés par Amazon sont publiés sur Amazon EventBridge, et Amazon ECS crée une règle EventBridge gérée dans le bus par défaut de votre compte pour prendre en charge le drainage d'instance géré. Vous pouvez filtrer ces événements vers d'autres AWS services tels que LambdaSNS, Amazon et Amazon à des fins de surveillance et SQS de résolution des problèmes.

  • Amazon EC2 Auto Scaling envoie un événement EventBridge lorsqu'un hook du cycle de vie est invoqué.

  • Les avis d'interruption ponctuelle sont publiés à EventBridge.

  • Amazon ECS génère des messages d'erreur que vous pouvez récupérer via la ECS console Amazon etAPIs.

  • EventBridge comporte des mécanismes de réessai intégrés pour atténuer les défaillances temporaires.

Résolution des problèmes liés au drainage des instances ECS géré par Amazon

Il se peut que vous deviez résoudre les problèmes liés au drainage des instances gérées. Voici un exemple de problème et de résolution que vous pourriez rencontrer lors de son utilisation.

Les instances ne s'arrêtent pas après avoir dépassé leur durée de vie maximale lors de l'utilisation de la mise à l'échelle automatique.

Si vos instances ne s'arrêtent pas même après avoir atteint ou dépassé la durée de vie maximale lors de l'utilisation d'un groupe de dimensionnement automatique, c'est peut-être parce qu'elles sont protégées contre le scale-in. Vous pouvez désactiver la gestion de la résiliation et autoriser le drainage géré pour gérer le recyclage des instances.