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.
Table des matières
- Disponibilité des hooks de cycle de vie
- Considérations et restrictions
- Ressources connexes
- Comment fonctionnent les hooks du cycle de vie dans les groupes Auto Scaling
- Vous préparer à ajouter un hook de cycle de vie
- Récupérer l'état du cycle de vie cible
- Ajoutez des hooks de cycle de vie à votre groupe Auto Scaling
- Réaliser une action du cycle de vie dans un groupe Auto Scaling
- Tutoriel : Utiliser les métadonnées de l'instance pour récupérer l'état du cycle de vie
- Didacticiel : configurer un hook de cycle de vie qui appelle une fonction Lambda
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.
Ressources connexes
Pour une vidéo de présentation, voir AWS re:Invent 2018 : Capacity Management Made Easy with Amazon EC2 Auto Scaling
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 des exemples d’utilisation des hooks de cycle de vie, consultez les articles de blog suivants.