Pourquoi Amazon EC2 Auto Scaling a-t-il résilié une instance ?

Date de la dernière mise à jour : 13/06/2018

Mon groupe Amazon Elastic Cloud Compute (Amazon EC2) Auto Scaling a mis fin à une instance, mais sur la console Amazon EC2, je ne vois pas la raison. Comment savoir pourquoi Amazon EC2 Auto Scaling a résilié mon instance ?

Brève description

Amazon EC2 Auto Scaling utilise les vérifications d'état EC2 ou Elastic Load Balancing (ELB) pour déterminer l'état d'intégrité d'une instance. Toutes les actions de dimensionnement d'un groupe Auto Scaling, y compris les remplacements de vérification de l'état, sont visibles dans la vue Activity History (Historique des activités) de la console Amazon EC2.

Solution

Utilisez la description de l'instance dans la vue Activity History (Historique des activités) pour déterminer les étapes supplémentaires.

Avant de poursuivre, recherchez la description et la cause de la résiliation de l'instance :

  1. Ouvrez la console Amazon EC2.
  2. Dans le volet de navigation, sous Auto Scaling, choisissez Groupes de mise à l'échelle automatique. Puis, choisissez le groupe de l'instance.
  3. Choisissez la vue Activity History(Historique de l'activité), puis l'événement de résiliation d'instance.
  4. Notez la description et la cause de l'événement de résiliation de l'instance.

Reportez-vous aux exemples de descriptions suivants pour connaître les raisons probables de la mise hors service d'une instance :

« Une instance a été mise hors service suite à une vérification de l'état EC2 indiquant qu'elle a été résiliée ou arrêtée »

Recherchez les échecs de vérification d'instance ou de système avec les métriques Amazon CloudWatch :

  1. Ouvrez la console Amazon CloudWatch.
  2. Dans le volet de navigation de la console, choisissez Métriques, puis la vue Toutes les métriques.
  3. Choisissez EC2 dans le volet des métriques, puis Per-Instance Metrics (Métriques par instance).
  4. Saisissez l'ID d'instance, puis choisissez StatusCheckFailed_Instance, StatusCheckFailed_System ou StatusCheckFailed pour afficher les graphiques des métriques.

Amazon EC2 Auto Scaling résilie les instances arrêtées et redémarrées. Consultez l'historique AWS CloudTrail pour déterminer si un utilisateur a arrêté ou redémarré manuellement l'instance :

  1. Ouvrez la console AWS CloudTrail.
  2. Dans le volet de navigation, sélectionnez Event history (Historique des événements).
  3. Dans l'historique, recherchez les appels d'API TerminateInstances, StopInstances, ou RebootInstances.

Amazon EC2 Auto Scaling résilie les instances Spot lorsque la capacité n'est plus disponible ou que le prix Spot dépasse votre prix maximum. L'historique d'activité peut indiquer que l'instance a été supprimée du service en raison d'une vérification de l'état. Pour vérifier le motif de résiliation, vérifiez le statut de la demande Spot :

  1. Ouvrez la console Amazon EC2.
  2. Dans le volet de navigation, sous Instances, sélectionnez Demandes ponctuelles.
  3. Sélectionnez la demande d'instance Spot, choisissez la vue Description puis notez l'état.

Si le type de vérification de l'état d'un groupe Auto Scaling est défini sur ELB, Amazon EC2 Auto Scaling effectue à la fois des vérifications de l'état ELB et EC2 et met fin aux instances qui échouent à l'une ou l'autre de ces vérifications :

  1. Ouvrez la console Amazon EC2.
  2. Dans le volet de navigation sous Mise à l'échelle , choisissez Groupes Auto Scaling, puis sélectionnez le groupe de l'instance.
  3. Choisissez la vue Informations, puis notez le type de vérification de l'état.

« Une instance a été mise hors service suite à un échec de vérification de l'état du système ELB. »

Lorsque plusieurs équilibreurs de charge sont associés à un groupe de mise à l'échelle, tous les équilibreurs de charge doivent signaler qu'une instance est saine pour qu'Amazon EC2 Auto Scaling la considère comme saine :

  1. Ouvrez la console Amazon EC2.
  2. Dans le volet de navigation, sous Équilibrage de charge, choisissez Équilibreurs de charge, puis Surveillance.
  3. Sélectionnez le graphique des métriques Nombre d'hôtes sains pour vérifier que l'instance échoue aux vérifications de l'état.
  4. Dans le volet de navigation, sous Auto Scaling, choisissez Groupes de mise à l'échelle automatique.
  5. Choisissez le groupe de l'instance, puis la vue Informations.
  6. Notez s'il existe plusieurs équilibreurs de charge associés sous Équilibreurs de charge ou Groupes cibles.

Vérifiez l'historique CloudTrail pour déterminer si un processus suspendu a retardé la mise hors service d'une instance défectueuse jusqu'à ce que le processus reprenne :

  1. Ouvrez la console AWS CloudTrail.
  2. Dans le volet de navigation, sélectionnez Event history (Historique des événements).
  3. Dans l'historique, recherchez les appels d'API SuspendProcesses et ResumeProcesses.

« Une instance a été mise hors service suite à une vérification de l'état par l'utilisateur »

Vous pouvez définir des vérifications de l'état personnalisées dans Amazon EC2 Auto Scaling. Lorsqu'une vérification de l'état personnalisée détermine qu'une instance est défectueuse, la vérification déclenche manuellement SetInstanceHealth puis affecte à l'instance l'état Défectueuse. Amazon EC2 Auto Scaling met fin à l'instance défectueuse lors de sa prochaine exécution.

« Une instance a été lancée pour aider à équilibrer les zones du groupe » ou « des instances ont été lancées pour équilibrer les instances des zones états-unis est-1a avec d'autres zones »

Par défaut, Amazon EC2 Auto Scaling équilibre les instances dans toutes les zones de disponibilité. Lorsque vous ajoutez une nouvelle zone de disponibilité à un groupe Auto Scaling, Amazon EC2 Auto Scaling lance une nouvelle instance dans cette zone, et le rééquilibrage peut mettre fin à des instances dans d'autres zones.

"Le 2018-02-12T13:48:46Z, une alarme de surveillance XXX-High-CPU-Utilization (Forte utilisation de l'UC XXX) dans l'état ALARM a déclenché la stratégie AAA-scaledown en faisant passer la capacité souhaitée de 2 à 1"

Amazon EC2 Auto Scaling peut résilier des instances dans un groupe en réponse à une alarme CloudWatch configurée. Vérifiez les stratégies de groupe et l'historique des alarmes CloudWatch :

Pour vérifier les stratégies de groupe Auto Scaling :

  1. Ouvrez la console Amazon EC2.
  2. Dans le volet de navigation, sous Auto Scaling, choisissez Groupes de mise à l'échelle automatique.
  3. Choisissez le groupe de l'instance.
  4. Choisissez le volet Stratégies de mise à l'échelle pour afficher et modifier les stratégies.

Pour afficher l'historique des alarmes CloudWatch :

  1. Ouvrez la console Amazon CloudWatch.
  2. Dans le volet de navigation, choisissez Règles.
  3. Choisissez l'alarme, puis la vue Historique.
  4. Dans l'historique, vérifiez les changements d'état de l'alarme ou les modifications de la configuration de l'alarme.

« Le 2018-02-12T13:49:12Z, le remplacement par min : 1, max : 9, souhaité : 1 d'une mise à jour d'action planifiée des contraintes AutoScalingGroup a provoqué le passage de la capacité souhaitée de 2 à 1. [...] »

Vous pouvez configurer des actions planifiées qui modifient la capacité minimale, maximale ou souhaitée d'un groupe Auto Scaling. Lorsque l'action planifiée diminue la capacité souhaitée, Amazon EC2 Auto Scaling résilie une ou plusieurs instances pour que les instances correspondent à la nouvelle capacité souhaitée, comme dans cet exemple.

« Le remplacement par min : 0, max : 2, souhaité : 1 d'une mise à jour de demande utilisateur des contraintes AutoScalingGroup a fait passer la capacité souhaitée de 2 à 1 »

Lorsque vous modifiez manuellement les contraintes d'un groupe Auto Scaling, par exemple en réduisant la capacité souhaitée, Amazon EC2 Auto Scaling peut résilier les instances pour qu'elles correspondent aux nouveaux paramètres.