Comment fonctionne une actualisation d'instance dans un groupe 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.

Comment fonctionne une actualisation d'instance dans un groupe Auto Scaling

Cette rubrique décrit le fonctionnement d'une actualisation d'instance et présente les concepts clés que vous devez comprendre pour l'utiliser efficacement.

Comment ça marche

Pour actualiser les instances d'un groupe Auto Scaling, vous pouvez définir une nouvelle configuration contenant la dernière version de votre application et toutes les autres mises à jour que vous souhaitez apporter. Lancez ensuite une actualisation de l'instance pour remplacer les instances existantes par de nouvelles en fonction de cette configuration.

Pour actualiser une instance, procédez comme suit :

  1. Créez un nouveau modèle de lancement ou mettez à jour le modèle existant avec les modifications de configuration souhaitées, telles qu'une nouvelle Amazon Machine Image (AMI). Pour plus d’informations, consultez Créer un modèle de lancement pour un groupe Auto Scaling.

  2. Démarrez l'actualisation de l'instance à l'aide de la console Amazon EC2 Auto Scaling AWS CLI, ou du SDK :

    • Spécifiez le nouveau modèle de lancement ou la version du modèle de lancement que vous avez créé. Cela sera utilisé pour lancer de nouvelles instances.

    • Définissez les pourcentages de santé minimum et maximum préférés. Cela permet de contrôler le nombre d'instances remplacées simultanément et de savoir si de nouvelles instances sont lancées avant de mettre fin aux anciennes.

    • Configurez tous les paramètres facultatifs, tels que :

      • Points de contrôle : interrompez l'actualisation de l'instance après un certain pourcentage de remplacements pour vérifier la progression.

      • Ignorer la correspondance : comparez les anciennes instances à la nouvelle configuration et ne remplacez que celles qui ne correspondent pas. Lorsque vous lancez une actualisation d'instance depuis la console, la mise en correspondance par défaut est activée par défaut.

      • Types d'instances multiples : appliquez une politique d'instances mixtes nouvelle ou mise à jour dans le cadre de la configuration souhaitée.

Une fois l'actualisation de l'instance lancée, Amazon EC2 Auto Scaling va :

  • Remplacez les instances par lots en fonction des pourcentages sains minimum et maximum.

  • Lancez d'abord les nouvelles instances avant de mettre fin aux anciennes si le pourcentage de santé minimum est défini sur 100 %. Cela garantit que la capacité souhaitée est maintenue à tout moment.

  • Vérifiez l'état de santé des instances et donnez-leur le temps de se réchauffer avant que d'autres instances ne soient remplacées.

  • Arrêtez et remplacez les instances qui s'avèrent défectueuses.

  • Mettez automatiquement à jour les paramètres du groupe Auto Scaling avec les nouvelles modifications de configuration une fois l'actualisation de l'instance réussie.

  • Remplacez InService les instances avant les instances qui se trouvent dans un pool chaud.

L'organigramme suivant illustre le comportement du lancement avant la fin lorsque vous définissez le pourcentage de santé minimum à 100 %.

Schéma illustrant le fonctionnement d'une actualisation d'instance lorsque le pourcentage de santé minimum est défini sur 100 %.
Note

Les pourcentages de santé minimum et maximum pour une actualisation d'instance doivent uniquement être spécifiés si vous n'avez pas défini de politique de maintenance de l'instance ou si vous devez remplacer la politique existante. Pour plus d’informations, consultez Politiques de maintenance des instances.

De même, vous devez uniquement spécifier la période de préchauffage de l'instance pour une actualisation d'instance si vous n'avez pas activé le préchauffage par défaut ou si vous devez remplacer le préchauffage par défaut. Pour plus d’informations, consultez Définir la préparation par défaut d'instance d'un groupe Auto Scaling.

Concepts de base

Avant de commencer, familiarisez-vous avec les concepts de base de l’actualisation d’instance :

Pourcentage minimal d’intégrité

Le pourcentage d'intégrité minimum est le pourcentage de la capacité souhaitée pour rester en service, saine et prête à être utilisée lors de l'actualisation d'une instance afin que l'actualisation puisse se poursuivre. Par exemple, si le pourcentage minimal d’intégrité est de 90 %, et le pourcentage maximal d’intégrité est de 100 %, 10 % est le pourcentage de capacité qui sera résilié et remplacé. Si les nouvelles instances échouent aux surveillances de l'état, Amazon EC2 Auto Scaling les résilie et les remplace. Si l’actualisation d’instance ne peut lancer aucune instance saine, elle échouera, laissant les 90 % restants du groupe intacts. Si les nouvelles instances restent saines et terminent leur période de préchauffage, Amazon EC2 Auto Scaling peut continuer à remplacer d'autres instances.

Une actualisation d'instance peut remplacer les instances une par une, plusieurs à la fois ou toutes à la fois. Pour remplacer une instance à la fois, définissez le pourcentage minimal et maximal d’instances saines sur 100 %. Cela modifie le comportement d’une actualisation d’instance à lancer avant toute résiliation, ce qui empêche la capacité du groupe de tomber en dessous de 100 % de la capacité souhaitée. Pour remplacer toutes les instances à la fois, définissez le pourcentage minimal d’instances saines sur 0 %.

Pourcentage maximal d’intégrité

Le pourcentage maximal d’intégrité est le pourcentage de la capacité souhaitée que votre groupe Auto Scaling peut atteindre lors du remplacement d’instances. La différence entre le minimum et le maximum ne peut pas être supérieure à 100. Une plage étendue augmente le nombre d’instances qui peuvent être remplacées en même temps.

Préparation d’instance

La préparation d’instance correspond à la période qui sépare le moment où l’état de la nouvelle instance est remplacé par InService au moment où elle est considérée comme ayant fini son initialisation. Lors d'une actualisation d'instance, si les instances réussissent les surveillances de l'état, Amazon EC2 Auto Scaling ne passe pas immédiatement au remplacement de l'instance suivante après avoir déterminé qu'une instance nouvellement lancée est saine. Il attend la période de préchauffage avant de passer au remplacement de l'instance suivante. Cela peut être utile lorsque votre application a encore besoin d’un certain temps d’initialisation avant de répondre aux demandes.

La préparation d’instance fonctionne de la même manière que la préparation d’instance par défaut. Par conséquent, les mêmes considérations de mise à l’échelle s’appliquent. Pour plus d’informations, consultez Définir la préparation par défaut d'instance d'un groupe Auto Scaling.

Configuration souhaitée

La configuration souhaitée désigne la nouvelle configuration que vous souhaitez qu'Amazon EC2 Auto Scaling déploie dans votre groupe Auto Scaling. Par exemple, vous pouvez spécifier un nouveau modèle de lancement et de nouveaux types d'instance pour vos instances. Lors d'une actualisation d'instance, Amazon EC2 Auto Scaling met à jour le groupe Auto Scaling en fonction de la configuration souhaitée. Si un événement de montée en puissance se produit lors d'une actualisation d'instance, Amazon EC2 Auto Scaling lance de nouvelles instances avec la configuration souhaitée au lieu d'utiliser les paramètres actuels du groupe. Une fois l'actualisation d'instance réussie, Amazon EC2 Auto Scaling met à jour les paramètres du groupe Auto Scaling pour refléter la nouvelle configuration souhaitée que vous avez spécifiée dans le cadre de l'actualisation d'instance.

Ignorer la correspondance

La fonction Ignorer la correspondance indique à Amazon EC2 Auto Scaling d'ignorer les instances qui disposent déjà de vos dernières mises à jour. De cette façon, vous ne remplacez pas plus d'instances que nécessaire. Cela est utile quand vous souhaitez vous assurer que votre groupe Auto Scaling utilise une version particulière de votre modèle de lancement et ne remplace que les instances qui utilisent une version différente.

Points de contrôle

Un point de contrôle désigne un moment où l'actualisation d'instance s'interrompt pour une durée déterminée. Une actualisation d'instance peut contenir plusieurs points de contrôle. Amazon EC2 Auto Scaling émet des événements pour chaque point de contrôle. Par conséquent, vous pouvez ajouter une EventBridge règle pour envoyer les événements à une cible, telle qu'Amazon SNS, afin d'être avertie lorsqu'un point de contrôle est atteint. Une fois qu'un point de contrôle est atteint, vous avez la possibilité de vérifier votre déploiement. Si des problèmes sont identifiés, vous pouvez annuler l'actualisation d'instance ou la restaurer. La possibilité de déployer les mises à jour par phases est un avantage clé des points de contrôle. Si vous n'utilisez pas de points de contrôle, des remplacements sont effectués en continu.

Pour en savoir plus sur tous les paramètres par défaut que vous pouvez configurer lors du lancement d’une actualisation d’instance, consultez Comprendre les valeurs par défaut d'une actualisation d'instance.

Période de grâce de surveillance de l'état

Amazon EC2 Auto Scaling détermine si une instance est saine en fonction du statut des surveillances de l'état que votre groupe Auto Scaling utilise. Pour plus d’informations, consultez Surveillance de l’état des instances dans un groupe Auto Scaling.

Pour vous assurer que ces surveillances de l’état commencent le plus rapidement possible, ne définissez pas une période de grâce de la surveillance de l’état du groupe trop élevée, mais suffisamment élevée pour que vos surveillances de l’état Elastic Load Balancing déterminent si une cible est disponible pour traiter les demandes. Pour plus d’informations, consultez Définir la période de grâce de la surveillance de l'état pour un groupe Auto Scaling.

Compatibilité des types d'instance

Avant de modifier votre type d'instance, il est conseillé de vérifier qu'il fonctionne avec votre modèle de lancement. Cela confirme la compatibilité avec l'AMI que vous avez spécifiée. Par exemple, disons que vous avez lancé vos instances d'origine à partir d'une AMI paravirtuelle (PV), mais que vous souhaitez passer à un type d'instance de génération actuelle qui n'est pris en charge que par une AMI de machine virtuelle matérielle (HVM). Dans ce cas, vous devez utiliser une AMI HVM dans votre modèle de lancement.

Pour confirmer la compatibilité du type d'instance sans lancer d'instances, utilisez la commande run-instances avec l'option --dry-run, comme indiqué dans l'exemple suivant.

aws ec2 run-instances --launch-template LaunchTemplateName=my-template,Version='1' --dry-run

Pour plus d'informations sur la manière dont la compatibilité est déterminée, consultez la section Compatibilité pour la modification du type d'instance dans le guide de l'utilisateur Amazon EC2.

Limites

  • Durée totale : la durée maximale pendant laquelle une actualisation d'instance peut continuer à remplacer activement des instances est de 14 jours.

  • Différence de comportement spécifique aux groupes pondérés : si un groupe d'instances mixtes est configuré avec un poids d'instance supérieur ou égal à la capacité souhaitée du groupe, Amazon EC2 Auto Scaling peut remplacer toutes les instances InService à la fois. Pour éviter cette situation, suivez les recommandations de la rubrique Configurer un groupe Auto Scaling pour utiliser les poids d'instance. Précisez une capacité souhaitée supérieure à votre poids maximal lorsque vous utilisez des poids avec votre groupe Auto Scaling.

  • Délai d'expiration d'une heure : lorsqu'une actualisation d'instance ne peut pas continuer à effectuer des remplacements parce qu'elle attend des instances en veille ou protégées contre la mise à l'échelle horizontale, ou que les nouvelles instances échouent aux surveillances de l'état, Amazon EC2 Auto Scaling réessaie encore pendant une heure. Un message de statut est également fourni pour vous aider à résoudre le problème. Si le problème persiste au bout d'une heure, l'opération échoue. L'objectif est de lui donner le temps de récupérer en cas de problème temporaire.

  • Déploiement de code via les données utilisateur : Skip matching ne vérifie pas les modifications de code déployées à partir d'un script de données utilisateur. Si vous utilisez les données utilisateur pour extraire du nouveau code et installer ces mises à jour sur de nouvelles instances, nous vous recommandons de désactiver la mise en correspondance afin de vous assurer que toutes les instances reçoivent votre dernier code, même sans mise à jour de la version du modèle de lancement.

  • Restriction de mise à jour : si vous tentez de mettre à jour le modèle de lancement, la configuration de lancement ou la politique d'instances mixtes d'un groupe Auto Scaling alors qu'une actualisation d'instance avec la configuration souhaitée est active, la demande échouera avec l'erreur de validation suivante : An active instance refresh with a desired configuration exists. All configuration options derived from the desired configuration are not available for update while the instance refresh is active.