Pouquoi le changement d'état de mon alarme CloudWatch n'invoque-t-il pas ma stratégie Amazon EC2 Auto Scaling ?

Lecture de 7 minute(s)
0

La configuration de mon alarme Amazon CloudWatch est telle qu'elle invoque ma stratégie Amazon Elastic Compute Cloud (Amazon EC2) Auto Scaling, mais celle-ci ne fonctionne pas.

Brève description

Lorsqu'une alarme CloudWatch change d'état, elle appelle les actions configurées pour cet état. Amazon EC2 Auto Scaling utilise la période configurée sur l'alarme pour déterminer si l'état doit changer. Toutefois, l'alarme continue d'invoquer l'action configurée pour chaque minute pendant laquelle elle reste dans le nouvel état, quelle que soit la période configurée.

Les principales raisons pour lesquelles le changement d'état d'une alarme CloudWatch n’invoque pas une stratégie Amazon EC2 Auto Scaling sont les suivantes :

  • L'action Auto Scaling n'est pas activée pour l'alarme CloudWatch.
  • La stratégie de mise à l'échelle du groupe Amazon EC2 Auto Scaling n’est pas configurée. Cela empêche le groupe Auto Scaling d'être évalué.
  • Le groupe Auto Scaling contient des stratégies conflictuelles de mise à l’échelle simple ou à étapes qui s'opposent, ce qui empêche le déclenchement de certaines stratégies.
  • Le groupe Auto Scaling dispose d’un hook de cycle de vie incomplet, ce qui empêche l'application de toutes les stratégies de mise à l’échelle simple. Une instance en attente entraîne également des retards dans les stratégies de mise à l'échelle du suivi des étapes et des cibles. Cela est dû au fait qu’Auto Scaling ne compte pas l'instance dans la capacité du groupe avant la fin du hook de cycle de vie et du temps d'échauffement (pour augmenter horizontalement). L'instance est comptée dans la capacité du groupe (pour réduire horizontalement) afin d'éviter une mise à l'échelle excessive.
  • Le hook de cycle de vie se termine lorsqu'il expire ou lorsqu'un appel CompleteLifecycleAction ou d'interface de la ligne de commande AWS (AWS CLI) est effectué.

Résolution

Tout d’abord, assurez-vous que votre alarme CloudWatch est en mode ALARM. Si la configuration d'une alarme ne correspond pas au seuil de la métrique qu'elle surveille, l'alarme risque de ne pas passer au mode ALARM. Si une alarme ne change pas d'état, elle n’invoque pas les stratégies Amazon EC2 Auto Scaling. Pour plus d'informations sur l'évaluation des alarmes CloudWatch, consultez Évaluation d'une alarme.

Assurez-vous que votre alarme CloudWatch passe en mode ALARM au moment prévu en vérifiant la valeur seuil de l'alarme. Augmentez ou diminuez le seuil de manière à ce qu'il corresponde à la valeur souhaitée. Vérifiez également la durée et la période d'évaluation de l'alarme. Vous devrez peut-être modifier la durée et la période d'évaluation de l'alarme pour invoquer votre stratégie Amazon EC2 Auto Scaling comme prévu. Pour en savoir plus sur les actions de vérification des alarmes, consultez Comment puis-je être sûr que les alarmes CloudWatch déclenchent des actions ?

**Important :**Lorsque vous créez ou modifiez des alarmes, tenez compte des points suivants :

  • Assurez-vous de ne pas avoir interrompu les processus de mise à l’échelle pour votre groupe Auto Scaling. Reprenez ces processus de mise à l’échelle s'ils ont été interrompus.
  • Ne modifiez jamais directement les alarmes associées aux stratégies de suivi des cibles. Toute modification de ces alarmes peut entraîner des effets non désirés. La valeur cible définie dans la stratégie de mise à l'échelle détermine automatiquement le seuil de ces alarmes.

Vérifiez si les actions Auto Scaling sont autorisées pour l'alarme CloudWatch

Pour qu'une alarme CloudWatch invoque une politique Auto Scaling, le paramètre ActionsEnabled doit être activé dans la configuration de l'alarme. Assurez-vous que le paramètre ActionsEnabled est défini sur true dans la configuration de votre alarme.

Remarque :Le paramètre ActionsEnabled est défini sur true par défaut si vous créez ou mettez à jour votre alarme via la console CloudWatch.

Pour vérifier et activer les actions d'une alarme via l'interface de ligne de commande AWS :

  1. Vérifiez votre configuration actuelle à l'aide de la commande describe-alarms.

    aws cloudwatch describe-alarms --alarm-names "myalarm" --query 'MetricAlarms[].ActionsEnabled'

    **Remarque :**Remplacez ** myalarm ** par l'identifiant de votre alarme.

  2. Examinez les données de sortie. Si le paramètre ActionsEnabled n'est pas défini sur true, activez les actions de l'alarme à l'aide de la commande enable-alarm-actions

    aws cloudwatch enable-alarm-actions --alarm-names myalarm

**Remarque :**Si des erreurs surviennent lorsque vous exécutez des commandes AWS CLI, consultez l’article Résoudre les erreurs AWS CLI. Vérifiez également que vous utilisez la version la plus récente d’AWS CLI.

Pour vérifier et activer les actions d'une alarme à l'aide de l'API CloudWatch, procédez comme suit :

  1. Appelez DescribeAlarms pour vérifier votre configuration actuelle.
  2. Si les actions ne sont pas activées pour votre alarme, activez-les à l'aide de EnableAlarmActions.

Vérifiez les stratégies de mise à l'échelle simple et par étapes pour votre groupe Auto Scaling

Pour vérifier les stratégies de mise à l’échelle de votre groupe via la console Amazon EC2 :

  1. Ouvrez la console Amazon EC2.
  2. Dans le volet de navigation, sous Auto Scaling, choisissez Groupes Auto Scaling.
  3. Choisissez votre groupe Auto Scaling dans le volet de contenu.
  4. Choisissez l'onglet ** Automatic Scaling**, puis notez le type de stratégie.

Pour vérifier les stratégies de mise à l’échelle via l'interface AWS CLI, utilisez la commande describe-policiesavec le paramètre policy types. Pour vérifier les stratégies de mise à l’échelle via une API, utilisez l'appel DescribePolicies avec le paramètre Policy Types. La sortie contient la liste de chaque type de stratégies.

Si une stratégie de mise à l’échelle simple est en vigueur, aucune autre stratégie de mise à l’échelle simple n'est appelée avant que les conditions suivantes ne soient remplies :

  • La stratégie de mise à l'échelle simple en vigueur est terminée.
  • Le temps de stabilisation pour la stratégie Amazon EC2 Auto Scaling est écoulé. Une stratégie de mise à l’échelle simple respecte le temps de stabilisation spécifié ou de la stratégie Amazon EC2 Auto Scaling par défaut.

**Remarque :**L'exécution d'une stratégie de mise à l'échelle simple ne bloque pas complètement l'exécution de stratégies de mise à l'échelle à étapes ou de suivi des cibles. Assurez-vous que des stratégies contradictoires ne sont pas appliquées simultanément.

Vérifier les hooks de cycle de vie Auto Scaling dans votre stratégie Amazon EC2 Auto Scaling

Les stratégies de mise à l'échelle simple sont suspendues lorsqu'un hook de cycle de vie Auto Scaling est en cours d'exécution. Toutefois, une stratégie de mise à l'échelle par étapes s'exécute en même temps qu'un hook de cycle de vie.

Vérifiez que tous les hooks de cycle de vie sont terminés et présentent un résultat CONTINUE ou ABANDON lorsque leur délai d'attente global ou de pulsation a expiré.

Pour vérifier les actions de hook de cycle de vie via la console Amazon EC2, suivez les étapes ci-dessous:

  1. Ouvrez la console Amazon EC2.
  2. Dans le volet de navigation, sous Auto Scaling, choisissez Groupes Auto Scaling.
  3. Choisissez votre groupe Auto Scaling dans le volet de contenu.
  4. Sélectionnez l'onglet Activité, puis faites défiler la page jusqu'à la section Historique des activités.
  5. Vérifiez l'activité des actions de hook de cycle de vie en cours.

Pour effectuer un hook de cycle de vie, consultez Exécuter le hook du cycle de vie.

Informations connexes

Comment résoudre les problèmes de mise à l’échelle de mon groupe Amazon EC2 Auto Scaling ?

Résoudre les problèmes liés à Amazon EC2 Auto Scaling

AWS OFFICIEL
AWS OFFICIELA mis à jour il y a 6 mois