Hooks de cycle de vie Amazon EC2 Auto Scaling - Amazon EC2 Auto Scaling

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.

Hooks de cycle de vie Amazon EC2 Auto Scaling

Amazon EC2 Auto Scaling vous permet d'ajouter des hooks de cycle de vie à vos groupes Auto Scaling. Ces hooks vous permettent de créer des solutions qui sont informées des événements du cycle de vie des instances Auto Scaling, puis d'exécuter une action personnalisée sur les instances lorsque l'événement du cycle de vie correspondant se produit. Un hook de cycle de vie fournit à l'action de cycle de vie un délai (défini par défaut sur une heure) pour attendre que l'action se termine avant que l'instance ne passe à l'état suivant.

Exemple d'utilisation de hooks de cycle de vie avec des instances Auto Scaling :

  • Lorsqu'un événement de montée en puissance se produit, l'instance nouvellement lancée termine sa séquence de démarrage et passe à un état d'attente. Pendant que l'instance est en attente, elle exécute un script pour télécharger et installer les packages logiciels nécessaires à votre application afin d'être entièrement prête pour commencer à recevoir du trafic. Au terme de l'installation du logiciel, le script envoie la commande complete-lifecycle-action pour poursuivre le processus.

  • Lorsqu'un événement de scale-in se produit, un hook du cycle de vie suspend l'instance avant qu'elle ne soit résiliée et vous envoie une notification via Amazon. EventBridge Lorsque l'instance est en état d'attente, vous pouvez appeler une AWS Lambda fonction ou vous connecter à l'instance pour télécharger des journaux ou d'autres données avant que l'instance ne soit complètement arrêtée.

Les hooks de cycle de vie sont souvent utilisés pour déterminer à quel moment les instances sont enregistrées auprès d'Elastic Load Balancing. En ajoutant un hook de cycle de vie de lancement à votre groupe Auto Scaling, vous pouvez vérifier que vos scripts d'amorçage se sont déroulés avec succès et que les applications présentes sur les instances sont prêtes à accepter le trafic avant d'être enregistrées auprès de l'équilibreur de charge à la fin du hook de cycle de vie.

Disponibilité des hooks de cycle de vie

Le tableau suivant répertorie les hooks de cycle de vie disponibles en fonction des différents scénarios.

Événement Lancement ou résiliation d'instance¹ Durée de vie maximale de l'instance : instances de remplacement Actualisation d'instance : instances de remplacement Rééquilibrage de la capacité : instances de remplacement Groupes d'instances pré-initialisées : instances entrant et sortant du groupe d'instances pré-initialisées
Lancement d'une instance
Résiliation d'une instance

¹ S’applique à tous les lancements et toutes les résiliations, qu’ils/elles soient initié(e)s automatiquement ou manuellement, par exemple lorsque vous appelez les opérations SetDesiredCapacity ou TerminateInstanceInAutoScalingGroup. Ne s'applique pas lorsque vous attachez ou détachez des instances, placez des instances en mode veille ou sortez des instances du mode veille, ou supprimez le groupe avec l'option Forcer la suppression.

Considérations et restrictions relatives aux hooks de cycle de vie

Lorsque vous utilisez des hooks de cycle de vie, tenez compte des remarques et limitations suivantes :

  • Amazon EC2 Auto Scaling fournit son propre cycle de vie pour faciliter la gestion des groupes Auto Scaling. Ce cycle de vie se distingue de celui des autres instances EC2. Pour plus d’informations, consultez Cycle de vie de l'instance Amazon EC2 Auto Scaling. Les instances d'un groupe d'instances pré-initialisées ont également leur propre cycle de vie, tel que décrit dans Transitions de l'état du cycle de vie pour les instances dans un groupe d'instances pré-initialisées.

  • Vous pouvez utiliser des hooks de cycle de vie avec des instances Spot, mais un hook de cycle de vie n'empêche pas la résiliation d'une instance lorsque la capacité requise n'est plus disponible, ce qui peut arriver à tout moment avec un préavis d'interruption de deux minutes. Pour plus d'informations, consultez la section Interruptions des instances Spot dans le guide de l'utilisateur Amazon EC2. Cependant, vous pouvez activer le rééquilibrage des capacités pour remplacer de manière proactive les instances Spot qui ont reçu une recommandation de rééquilibrage du service Amazon EC2 Spot, un signal envoyé lorsqu'une instance Spot présente un risque élevé d'interruption. Pour plus d’informations, consultez Utiliser le rééquilibrage de la capacité pour gérer les interruptions Spot Amazon EC2.

  • Les instances peuvent rester en état d'attente pour une durée limitée. Le délai d'expiration par défaut pour un hook de cycle de vie est d'une heure (délai de pulsation). Il existe également un délai d'attente global spécifiant la durée maximale de conservation d'une instance en état d'attente. Le délai d'attente global est de 48 heures ou de 100 fois le délai de pulsation, la valeur la plus faible étant retenue.

  • À la fin du hook de cycle de vie, le résultat est abandonner ou continuer. Si une instance est en cours de lancement, Continuer indique que les actions ont abouti et qu’Amazon EC2 Auto Scaling peut mettre l’instance en service. Sinon, ABANDONNER indique que les actions personnalisées ont échoué et que nous pouvons résilier et remplacer l’instance. Si une instance est en cours de résiliation, les paramètres Abandonner et Continuer permettent tous les deux de résilier l’instance. Cependant, le paramètre Abandonner met fin aux actions restantes, notamment les autres hooks de cycle de vie, tandis que le paramètre Continuer permet aux autres hooks de cycle de vie d'aller jusqu'à leur terme.

  • Amazon EC2 Auto Scaling limite la vitesse de lancement des instances si les hooks de cycle de vie échouent systématiquement. Assurez-vous donc de tester et de corriger toute erreur permanente dans vos actions de cycle de vie.

  • La création et la mise à jour de hooks de cycle de vie à l'aide du AWS CLI AWS CloudFormation, ou d'un SDK fournissent des options non disponibles lors de la création d'un hook de cycle de vie à partir du AWS Management Console. Par exemple, le champ permettant de spécifier l'ARN d'une rubrique SNS ou d'une file d'attente SQS n'apparaît pas dans la console, car Amazon EC2 Auto Scaling envoie déjà des événements à Amazon. EventBridge Ces événements peuvent être filtrés et redirigés vers AWS des services tels que Lambda, Amazon SNS et Amazon SQS selon les besoins.

  • Vous pouvez ajouter plusieurs hooks de cycle de vie à un groupe Auto Scaling lors de sa création, en appelant l'CreateAutoScalingGroupAPI à l'aide du AWS CLI AWS CloudFormation, ou d'un SDK. Toutefois, chaque hook doit avoir la même cible de notification et le même rôle IAM, s'il est spécifié. Pour créer des hooks de cycle de vie avec différentes cibles de notification et différents rôles, créez les hooks de cycle de vie un par un dans des appels séparés à l'PutLifecycleHookAPI.

  • Si vous ajoutez un hook de cycle de vie pour le lancement d’une instance, la période de grâce de la surveillance de l’état commence dès que l’instance atteint l’état InService. Pour plus d’informations, consultez Définir la période de grâce de la surveillance de l'état pour un groupe Auto Scaling.

Considérations relatives à la mise à l'échelle
  • Les politiques de dimensionnement dynamique s'adaptent en fonction des données CloudWatch métriques, telles que le processeur et les E/S réseau, qui sont agrégées sur plusieurs instances. Lors d’une montée en puissance, Amazon EC2 Auto Scaling ne comptabilise pas immédiatement une nouvelle instance dans les métriques d’instance agrégées du groupe Auto Scaling. Il attend que l’instance atteigne l’état InService et que la préparation d’instance soit terminée. Pour plus d’informations, consultez Considérations sur les performances de la mise à l’échelle dans la rubrique de préparation d’instance par défaut.

  • À grande échelle, les métriques d'instance agrégées peuvent ne pas refléter instantanément la suppression d'une instance en cours de résiliation. Celle-ci cesse d'être comptabilisée dans les métriques d'instance agrégées du groupe peu après le début du workflow de résiliation d'Amazon EC2 Auto Scaling.

  • Dans la plupart des cas où des hooks de cycle de vie sont appelés, les activités de mise à l’échelle dues à des politiques de mise à l’échelle simple sont suspendues jusqu’à ce que les actions du cycle de vie soient terminées et que le temps de stabilisation ait expiré. Si vous définissez un intervalle long pour le temps de stabilisation, la reprise de la mise à l'échelle prendra plus de temps. Pour plus d’informations, consultez Les hooks de cycle de vie peuvent entraîner des retards supplémentaires. dans la rubrique de stabilisation. En général, nous vous déconseillons d’utiliser des politiques de mise à l’échelle simples si vous pouvez plutôt utiliser des politiques de mise à l’échelle d’étape ou de suivi des cibles.

Pour une vidéo de présentation, voir AWS re:Invent 2018 : Capacity Management Made Easy with Amazon EC2 Auto Scaling on. YouTube

Nous fournissons quelques extraits de modèles JSON et YAML que vous pouvez utiliser pour comprendre comment déclarer les hooks du cycle de vie dans vos AWS CloudFormation modèles de pile. Pour plus d'informations, consultez la AWS::AutoScaling::LifecycleHookréférence dans le guide de AWS CloudFormation l'utilisateur.

Vous pouvez également consulter notre GitHubréférentiel pour télécharger des exemples de modèles et de scripts de données utilisateur pour les hooks du cycle de vie.

Pour des exemples d’utilisation des hooks de cycle de vie, consultez les articles de blog suivants.