Annuler les modifications à l'aide d'une restauration manuelle ou automatique - 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.

Annuler les modifications à l'aide d'une restauration manuelle ou automatique

Vous pouvez restaurer une actualisation d'instance qui est toujours en cours. Vous ne pouvez pas la restaurer une fois qu'elle est terminée. Toutefois, vous pouvez à nouveau mettre à jour votre groupe Auto Scaling en lançant une nouvelle actualisation d'instance.

Lors de la rétrogradation, Amazon EC2 Auto Scaling remplace les instances qui ont été déployées jusqu'à présent. Les nouvelles instances correspondent à la configuration que vous avez enregistrée pour la dernière fois dans le groupe Auto Scaling avant de commencer l'actualisation d'instance.

Amazon EC2 Auto Scaling propose les méthodes suivantes pour revenir en arrière :

  • Restauration manuelle : vous lancez une restauration manuellement pour inverser ce qui a été déployé jusqu'au point de restauration.

  • Annulation automatique : Amazon EC2 Auto Scaling annule automatiquement ce qui a été déployé si l'actualisation de l'instance échoue pour une raison ou une autre ou si l'une des CloudWatch alarmes que vous spécifiez passe à l'ALARMétat normal.

Considérations

Les considérations suivantes s’appliquent lorsque vous utilisez une restauration :

  • L’option de restauration n’est disponible que si vous spécifiez la configuration souhaitée lors du démarrage de l’actualisation d’une instance.

  • Vous ne pouvez revenir à une version précédente d’un modèle de lancement que s’il s’agit d’une version numérotée spécifique. L’option de restauration n’est pas disponible si le groupe Auto Scaling est configuré pour utiliser la version du modèle de lancement $Latest ou $Default.

  • Vous ne pouvez pas non plus revenir à un modèle de lancement configuré pour utiliser un AMI alias issu du AWS Systems Manager Parameter Store.

  • La configuration que vous avez enregistrée pour la dernière fois dans le groupe Auto Scaling doit être stable. Si elle n’est pas stable, le flux de travail de restauration s’exécutera toujours, mais il finira par échouer. Tant que vous n'aurez pas résolu le problème, le groupe Auto Scaling risque de se trouver à un état d'échec qui ne lui permet plus de lancer les instances avec succès. Cela peut avoir un impact sur la disponibilité du service ou de l'application.

Lancer manuellement une restauration

Console
Pour lancer manuellement une restauration d’une actualisation d’instance (console)
  1. Ouvrez la EC2 console Amazon à l'adresse https://console.aws.amazon.com/ec2/et choisissez Auto Scaling Groups dans le volet de navigation.

  2. Cochez la case située en regard du groupe Auto Scaling.

  3. Dans l'onglet Actualisation d'instance, dans Actualisation d'instance active, sélectionnez Actions, Lancer une restauration.

  4. Lorsque vous êtes invité à confirmer l’opération, choisissez Confirmer.

AWS CLI
Pour lancer manuellement une restauration d’une actualisation d’instance (AWS CLI)

Utilisez la rollback-instance-refreshcommande du AWS CLI et saisissez le nom du groupe Auto Scaling.

aws autoscaling rollback-instance-refresh --auto-scaling-group-name my-asg

Exemple de sortie :

{ "InstanceRefreshId": "08b91cf7-8fa6-48af-b6a6-d227f40f1b9b" }
Astuce

Si cette commande génère une erreur, assurez-vous d'avoir mis à jour AWS CLI localement la dernière version.

Lancer une actualisation d'instance avec restauration automatique

À l'aide de la fonction d'annulation automatique, vous pouvez annuler automatiquement l'actualisation de l'instance en cas d'échec, par exemple en cas d'erreur ou en cas de passage à l'ALARMétat CloudWatch d'une alarme Amazon spécifiée.

Si vous activez la restauration automatique et que des erreurs se produisent lors du remplacement des instances, l’actualisation des instances tente de terminer tous les remplacements pendant une heure avant d’échouer et de restaurer les instances. Ces erreurs sont généralement causées par des facteurs tels que des échecs de EC2 lancement, des vérifications de santé mal configurées, le fait de ne pas ignorer ou d'autoriser la fermeture d'instances en Standby état ou protégées contre l'extension.

La spécification CloudWatch des alarmes est facultative. Pour définir une alarme, vous devez d’abord la créer. Vous pouvez créer des alarmes de métrique et des alarmes composites. Pour plus d'informations sur la création de l'alarme, consultez le guide de CloudWatch l'utilisateur Amazon. En utilisant les métriques de Elastic Load Balancing par exemple, si vous utilisez un Application Load Balancer, vous pouvez utiliser les métriques HTTPCode_ELB_5XX_Count et HTTPCode_ELB_4XX_Count.

Considérations
  • Si vous spécifiez une CloudWatch alarme mais que vous n'activez pas la restauration automatique et que l'état de l'alarme passe àALARM, l'actualisation de l'instance échoue sans restauration.

  • Vous pouvez choisir un maximum de 10 alarmes lorsque vous lancez une actualisation d’instance.

  • Lorsque vous choisissez une CloudWatch alarme, celle-ci doit être dans un état compatible. Si l’état d’alarme est INSUFFICIENT_DATA ou ALARM, vous recevez un message d’erreur lorsque vous essayez de démarrer l’actualisation de l’instance.

  • Lorsque vous créez une alarme à utiliser par Amazon EC2 Auto Scaling, celle-ci doit indiquer comment traiter les points de données manquants. Si une métrique manque fréquemment des points de données par conception, l'état de l'alarme est INSUFFICIENT_DATA pendant ces périodes. Dans ce cas, Amazon EC2 Auto Scaling ne peut pas remplacer les instances tant que de nouveaux points de données ne sont pas trouvés. Pour forcer l’alarme à maintenir l’état précédent ALARM ou OK, vous pouvez choisir d’ignorer les données manquantes. Pour plus d'informations, consultez la section Configuration de la manière dont les alarmes traitent les données manquantes dans le guide de CloudWatch l'utilisateur Amazon.

Console
Pour lancer une actualisation d’instance avec restauration automatique (console)
  1. Ouvrez la EC2 console Amazon à l'adresse https://console.aws.amazon.com/ec2/et choisissez Auto Scaling Groups dans le volet de navigation.

  2. Cochez la case située en regard du groupe Auto Scaling.

  3. Dans l’onglet Actualisation d’instance, dans Actualisation d’instance active, sélectionnez Démarrer l’actualisation d’instance.

  4. Suivez la procédure Lancer une actualisation d'instance (console) et configurez vos paramètres d’actualisation d’instance selon vos besoins.

  5. (Facultatif) Sous Actualiser les paramètres, pour les CloudWatch CloudWatch alarmes, choisissez Activer les alarmes, puis choisissez une ou plusieurs alarmes pour identifier les problèmes éventuels et faire échouer l'opération si une alarme passe à l'ALARMétat indiqué.

  6. Dans Paramètres de restauration, choisissez Activer la restauration automatique pour restaurer automatiquement une actualisation d’instance ayant échoué à la configuration que vous avez enregistrée pour la dernière fois dans le groupe Auto Scaling avant de commencer l’actualisation d’instance.

  7. Passez en revue vos sélections, puis choisissez Démarrer l’actualisation de l’instance.

AWS CLI
Pour lancer une actualisation d'instance avec restauration automatique (AWS CLI)

Utilisez la start-instance-refreshcommande et spécifiez true l'AutoRollbackoption dans lePreferences.

L’exemple suivant montre comment démarrer une actualisation d’instance qui sera automatiquement restaurée en cas d’échec. Remplacez le en italique valeurs de paramètres avec les vôtres.

aws autoscaling start-instance-refresh --cli-input-json file://config.json

Contenu de config.json.

{ "AutoScalingGroupName": "my-asg", "DesiredConfiguration": { "LaunchTemplate": { "LaunchTemplateName": "my-launch-template", "Version": "1" } }, "Preferences": { "AutoRollback": true } }

Sinon, pour revenir automatiquement en arrière lorsque l'actualisation de l'instance échoue ou lorsqu'une CloudWatch alarme spécifiée est activeALARM, spécifiez l'AlarmSpecificationoption dans le Preferences et fournissez le nom de l'alarme, comme dans l'exemple suivant. Remplacez le en italique valeurs de paramètres avec les vôtres.

{ "AutoScalingGroupName": "my-asg", "DesiredConfiguration": { "LaunchTemplate": { "LaunchTemplateName": "my-launch-template", "Version": "1" } }, "Preferences": { "AutoRollback": true, "AlarmSpecification": { "Alarms": [ "my-alarm" ] } } }

Si elle aboutit, la commande renvoie un résultat semblable au suivant :

{ "InstanceRefreshId": "08b91cf7-8fa6-48af-b6a6-d227f40f1b9b" }
Astuce

Si cette commande génère une erreur, assurez-vous d'avoir mis à jour AWS CLI localement la dernière version.