Création d'alarmes qui arrêtent, mettent hors service, redémarrent ou récupèrent une instance EC2 - Amazon CloudWatch

Création d'alarmes qui arrêtent, mettent hors service, redémarrent ou récupèrent une instance EC2

A l'aide des actions d'alarme Amazon CloudWatch, vous pouvez créer des alarmes qui arrêtent, mettent hors service, redémarrent ou récupèrent vos instances EC2 automatiquement. Vous pouvez utiliser les actions d’arrêt ou de terminaison pour vous permettre d’économiser de l’argent quand vous n’avez plus besoin qu’une instance s’exécute. De même, les actions de redémarrage et de récupération vous permettent de redémarrer automatiquement ces instances ou de les récupérer sur un nouveau matériel en cas de déficience du nouveau matériel.

Il existe un certain nombre de scénarios dans lesquels vous pourriez vouloir arrêter ou terminer automatiquement votre instance. Par exemple, vous pourriez avoir des instances dédiées aux tâches de traitement différé de la paie ou de calcul scientifique qui s’exécutent pendant une durée, puis achèvent leur travail. Plutôt que de laisser ces instances demeurer inactives (et d'accumuler les frais), vous pouvez les arrêter ou les terminer, ce qui vous aide à économiser de l'argent. La principale différence entre l'utilisation des actions d'alarme d'arrêt ou de fin est que vous pouvez facilement redémarrer une instance arrêtée si vous devez l'exécuter à nouveau ultérieurement. Vous pouvez conserver également les mêmes ID d'instance et volume racine. Cependant, vous ne pouvez pas redémarrer une instance terminée. Vous devez à la place lancer une nouvelle instance.

Vous pouvez ajouter les actions d'arrêt, de terminaison, de redémarrage à toute alarme définie sur une métrique par instance Amazon EC2, y compris les métriques de surveillance élémentaire ou détaillée fournies par Amazon CloudWatch (dans l'espace de noms AWS/EC2), ainsi que toute métrique personnalisée incluant la dimension « InstanceId= », aussi longtemps que la valeur InstanceId se réfère à une instance Amazon EC2 valide en cours d'exécution. Vous pouvez également ajouter l'action de restauration à des alarmes définies sur n'importe quelle mesure Amazon EC2 par instance, à l'exception de StatusCheckFailed_Instance.

Important

Les alarmes configurées sur les métriques Amazon EC2 peuvent entrer temporairement dans l’état INSUFFICIENT_DATA s’il manque des points de données de métriques. C’est rare, mais cela peut se produire lorsque l’envoi des métriques est interrompu, même si l’instance Amazon EC2 est en bon état. Pour les alarmes basées sur des métriques Amazon EC2 configurées pour arrêter, terminer, redémarrer ou restaurer une instance, nous vous recommandons de configurer ces alarmes de manière à considérer les données manquantes comme missing, et à faire en sorte qu’elles se déclenchent uniquement lorsqu’elles sont dans l’état ALARM.

Pour plus d’informations sur la façon dont vous pouvez configurer CloudWatch pour qu’il agisse sur les métriques manquantes associées à des alarmes, consultez Configuration de la manière dont les alertes CloudWatch traitent les données manquantes.

Pour configurer une action d'alarme CloudWatch pouvant redémarrer, arrêter ou mettre fin à une instance, vous devez utiliser un rôle IAM lié au service, AWSServiceRoleForCloudWatchEvents. Le rôle IAM AWSServiceRoleForCloudWatchEvents permet à AWS d'exécuter des actions d'alarme en votre nom.

Pour créer le rôle lié au service pour CloudWatch Events, utilisez la commande suivante :

aws iam create-service-linked-role --aws-service-name events.amazonaws.com
Prise en charge de la console

Vous pouvez créer des alarmes à l'aide de la console CloudWatch ou Amazon EC2. Les procédures décrites dans cette documentation utilisent la console CloudWatch. Pour voir les procédures qui utilisent la console Amazon EC2, consultez Créer des alarmes qui arrêtent, mettent hors service, redémarrent ou récupèrent une instance dans le Guide de l’utilisateur Amazon EC2.

Autorisations

Si vous utilisez compte AWS Identity and Access Management (IAM) pour créer ou modifier une alarme exécutant des actions EC2 ou des actions OpsItem de Systems Manager, vous devez disposer de l'autorisation iam:CreateServiceLinkedRole.

Ajouter des actions d'arrêt aux alarmes Amazon CloudWatch

Vous pouvez créer une alarme qui arrête une instance Amazon EC2 quand un certain seuil a été atteint. Par exemple, vous pouvez exécuter des instances de développement ou de test, et, à l’occasion, oublier de les fermer. Vous pouvez créer une alarme qui est déclenchée quand le pourcentage moyen d’utilisation de l’UC a été inférieur à 10 % pendant 24 heures, indiquant que l’instance est inactive et n’est plus en cours d’utilisation. Vous pouvez ajuster le seuil, la durée et la période en fonction de vos besoins. De plus, vous pouvez ajouter une notification SNS de façon à recevoir un e-mail quand l'alarme est déclenchée.

Les instances Amazon EC2 qui utilisent un volume Amazon Elastic Block Store comme périphérique racine peuvent être arrêtées ou résiliées, tandis que celles qui recourent au stockage d'instance comme périphérique racine peuvent uniquement être résiliées.

Utilisation de la console Amazon CloudWatch pour créer une alarme afin d'arrêter une instance inactive
  1. Ouvrez la console CloudWatch à l’adresse https://console.aws.amazon.com/cloudwatch/.

  2. Dans le panneau de navigation, choisissez Alarms (alertes), All alarms (Toutes les alertes).

  3. Choisissez Create alarm (Créer une alerte).

  4. Choisissez Select Metric (Sélectionner une métrique).

  5. Pour les AWS namespaces (Espaces de nom ), choisissez EC2.

  6. Procédez comme suit :

    1. Sélectionnez Per-instance Metrics (Métriques par instance).

    2. Cochez la case de la ligne avec la bonne instance et la métrique CPUUtilization.

    3. Sélectionnez l'onglet Graphed metrics (Graphiques des métriques).

    4. Pour les statistiques, choisissez Average (Moyenne).

    5. Choisissez une période (par exemple, 1 Hour).

    6. Choisissez Select metric (Sélectionner une métrique).

  7. Sous Conditions, procédez comme suit :

    1. Choisissez Static.

    2. Sous Whenever CPUUtilization is (chaque fois que CPUUtilization est), sélectionnez Lower (Plus bas).

    3. Pour than (que), saisissez 10.

    4. Choisissez Suivant.

    5. Sous Notification, pour Send notification to (Envoyer une notification à), choisissez une rubrique SNS existante ou créez-en une.

      Pour créer une rubrique SNS, choisissez New list (Nouvelle liste). Pour Send a notification to (Envoyer une notification à), saisissez un nom pour la rubrique SNS (par exemple, Stop_EC2_Instance). Pour Email list (Liste des adresses e-mail), tapez une liste séparée par des virgules des adresses e-mail pour être informé lorsque l'alarme passe à l'état ALARM. Chaque adresse e-mail reçoit un e-mail de confirmation d'abonnement à la rubrique. Vous devez confirmer l'abonnement avant de pouvoir recevoir des notifications à une adresse e-mail.

    6. Choisissez Add EC2 Action (Ajouter une action EC2).

    7. Pour Alarm state trigger (Déclencheur de l'état d'alarme), choisissez In alarm (En alarme). Pour Take the following action (Effectuer l'action suivante), choisissez Stop this instance (Arrêter cette instance).

    8. Choisissez Suivant.

    9. Saisissez un nom et une description pour l'alerte. Le nom ne doit contenir que des caractères ASCII. Sélectionnez ensuite Next (Suivant).

    10. Dans Preview and create (Prévisualiser et créer), confirmez que les informations et les conditions sont telles que vous les voulez, puis choisissez Create alarm (Créer une alerte).

Ajouter des actions de fin aux alarmes Amazon CloudWatch

Vous pouvez créer une alarme qui finit automatiquement une instance EC2 quand un certain seuil a été atteint (aussi longtemps que la protection de fin n’est pas activée pour l’instance). Par exemple, il se peut que vous vouliez mettre hors service une instance quand elle a terminé son travail et que vous n'en avez plus besoin. Si vous souhaitez utiliser l’instance par la suite, vous devez arrêter l’instance, et non y mettre fin. Pour plus d’informations sur l’activation et la désactivation de la protection contre la mise hors service d’une instance, consultez Activation de la protection contre la terminaison d’une instance dans le Guide de l’utilisateur Amazon EC2.

Pour créer une alarme qui met fin à une instance inactive à l'aide de la console Amazon CloudWatch
  1. Ouvrez la console CloudWatch à l’adresse https://console.aws.amazon.com/cloudwatch/.

  2. Dans le panneau de navigation, choisissez Alarms (Alarmes), puis Create Alarm (Créer une alarme).

  3. Pour l'étape Select Metric (Sélectionner une métrique), procédez comme suit :

    1. Sous EC2 Metrics (Métriques EC2), choisissez Per-Instance Metrics (Métriques par instance).

    2. Sélectionnez la ligne avec l'instance et la métrique CPUUtilization.

    3. Pour les statistiques, choisissez Average (Moyenne).

    4. Choisissez une période (par exemple, 1 Hour).

    5. Choisissez Next (Suivant).

  4. Pour l'étape Define Alarm (Définir une alarme), procédez comme suit :

    1. Sous Alarm Threshold (Seuil de l'alarme), tapez un nom unique pour l'alarme (par exemple, « Mettre hors service l'instance EC2 ») et une description de l'alarme (par exemple, « Mettre hors service l'instance EC2 quand l'UC est inactive trop longtemps »). Les noms d’alarme doivent contenir uniquement des caractères ASCII.

    2. Sous Whenever, pour is, choisissez < et entrez 10. Pour for, tapez 24 périodes consécutives.

      Une représentation graphique du seuil apparaît sous Alarm Preview (Aperçu de l'alarme).

    3. Sous Notification, pour Send notification to (Envoyer une notification à), choisissez une rubrique SNS existante ou créez-en une.

      Pour créer une rubrique SNS, choisissez New list (Nouvelle liste). Pour Send a notification to (Envoyer une notification à), saisissez un nom pour la rubrique SNS (par exemple, Terminate_EC2_Instance). Pour Email list (Liste des adresses e-mail), tapez une liste séparée par des virgules des adresses e-mail pour être informé lorsque l'alarme passe à l'état ALARM. Chaque adresse e-mail reçoit un e-mail de confirmation d'abonnement à la rubrique. Vous devez confirmer l'abonnement avant de pouvoir recevoir des notifications à une adresse e-mail.

    4. Choisissez EC2 Action (Action EC2).

    5. Pour Whenever this alarm (Chaque fois que cette alarme), sélectionnez State is ALARM (L'état est ALARME). Pour Take this action (Effectuer cette action), choisissez Terminate this instance (Mettre fin à cette instance).

    6. Sélectionnez Create Alarm (Créer une alerte).

Ajouter des actions de redémarrage aux alarmes Amazon CloudWatch

Vous pouvez créer une alarme Amazon CloudWatch qui surveille une instance Amazon EC2 et la redémarre automatiquement. L’action d’alarme de redémarrage est recommandée pour les défaillances de vérification de l’état d’instance (par opposition à l’action d’alarme de récupération, qui convient aux défaillances de la vérification de l’état du système). Le redémarrage d’une instance est similaire à celui d’un système d’exploitation. Dans la plupart des cas, il suffit de quelques minutes pour redémarrer votre instance. Lorsque vous redémarrez une instance, elle reste sur le même hôte physique, ce qui signifie qu’elle conserve son nom DNS public, son adresse IP privée et toutes les données se trouvant sur ses volumes de stockage d’instance.

Le redémarrage d'une instance ne déclenche pas de nouvelle heure de facturation d'instance, contrairement à l'arrêt, puis au redémarrage d'une instance. Pour plus d’informations sur le redémarrage d’une instance, consultez Redémarrage de votre instance dans le Guide de l’utilisateur Amazon EC2.

Important

Pour prévenir toute condition de concurrence entre les actions de redémarrage et de récupération, évitez de définir la même période d'évaluation pour une alarme de redémarrage et une alarme de récupération. Nous vous recommandons de définir des alarmes de redémarrage sur trois périodes d’évaluation d’une minute chacune.

Pour créer une alarme et redémarrer une instance à l'aide de la console Amazon CloudWatch
  1. Ouvrez la console CloudWatch à l’adresse https://console.aws.amazon.com/cloudwatch/.

  2. Dans le panneau de navigation, choisissez Alarms (Alarmes), puis Create Alarm (Créer une alarme).

  3. Pour l'étape Select Metric (Sélectionner une métrique), procédez comme suit :

    1. Sous EC2 Metrics (Métriques EC2), choisissez Per-Instance Metrics (Métriques par instance).

    2. Sélectionnez la ligne avec l'instance et la métrique StatusCheckFailed_Instance.

    3. Pour la statistique, choisissez Minimum.

    4. Choisissez une période (par exemple, 1 Minute).

    5. Choisissez Next (Suivant).

  4. Pour l'étape Define Alarm (Définir une alarme), procédez comme suit :

    1. Sous Alarm Threshold (Seuil d'alarme), tapez un nom unique pour l'alarme (par exemple, « Redémarrer l'instance EC2 ») et une description de l'alarme (par exemple, « Redémarrer instance EC2 en cas d'échec de la vérification de l'état »). Les noms d’alarme doivent contenir uniquement des caractères ASCII.

    2. Sous Whenever, pour is, choisissez > et tapez 0. Pour for, tapez 3 périodes consécutives.

      Une représentation graphique du seuil apparaît sous Alarm Preview (Aperçu de l'alarme).

    3. Sous Notification, pour Send notification to (Envoyer une notification à), choisissez une rubrique SNS existante ou créez-en une.

      Pour créer une rubrique SNS, choisissez New list (Nouvelle liste). Pour Send a notification to (Envoyer une notification à), saisissez un nom pour la rubrique SNS (par exemple, Reboot_EC2_Instance). Pour Email list (Liste des adresses e-mail), tapez une liste séparée par des virgules des adresses e-mail pour être informé lorsque l'alarme passe à l'état ALARM. Chaque adresse e-mail reçoit un e-mail de confirmation d'abonnement à la rubrique. Vous devez confirmer l'abonnement avant de pouvoir recevoir des notifications à une adresse e-mail.

    4. Choisissez EC2 Action (Action EC2).

    5. Pour Whenever this alarm (Chaque fois que cette alarme), sélectionnez State is ALARM (L'état est ALARME). Pour Take this action (Effectuer cette action), choisissez Reboot this instance (Redémarrer cette instance).

    6. Sélectionnez Create Alarm (Créer une alerte).

Ajouter des actions de récupération aux alarmes Amazon CloudWatch

Vous pouvez créer une alarme Amazon CloudWatch qui contrôle une instance Amazon EC2 et récupère automatiquement l’instance si cette dernière est dégradée suite à une défaillance du matériel sous-jacent ou à un problème nécessitant une intervention d’AWS pour sa résolution. Les instances mises hors service ne peuvent pas être récupérées. Une instance récupérée est identique à l'instance d'origine, y compris pour l'ID d'instance, les adresses IP privées, les adresses IP Elastic et toutes les métadonnées de l'instance.

Lorsque l'alarme StatusCheckFailed_System est déclenchée et que l'action de récupération est initiée, vous en êtes averti par la rubrique Amazon SNS que vous avez choisie quand vous avez créé l'alarme et associé l'action de récupération. Lors de la récupération d’instance, l’instance est migrée pendant un redémarrage d’instance, et toutes les données en mémoire sont perdues. Lorsque le processus est terminé, les informations sont publiées dans la rubrique SNS que vous avez configurée pour l'alarme. Toutes les personnes abonnées à cette rubrique SNS recevront une notification par e-mail qui inclut le statut de la tentative de récupération et les éventuelles instructions supplémentaires. Vous remarquerez un redémarrage d'instance sur l'instance récupérée.

L’action de récupération ne peut être utilisée qu’avec StatusCheckFailed_System, pas avec StatusCheckFailed_Instance.

Voici quelques exemples de problèmes entraînant l'échec des contrôles d'état du système :

  • Perte de connectivité réseau

  • Perte d’alimentation système

  • Problèmes logiciels sur un hôte physique

  • Problèmes matériels sur un hôte physique ayant un impact sur l’accessibilité du réseau

L'action de récupération n'est prise en charge que sur certains types d'instance. Pour plus d'informations sur les types d'instance pris en charge et les autres exigences, consultez Récupérer votre instance et Exigences.

Important

Pour prévenir toute condition de concurrence entre les actions de redémarrage et de récupération, évitez de définir la même période d'évaluation pour une alarme de redémarrage et une alarme de récupération. Nous vous recommandons de définir des alarmes de récupération sur deux périodes d'évaluation d'une minute chacune et des alarmes de redémarrage sur trois périodes d'évaluation d'une minute chacune.

Pur créer une alarme et récupérer une instance à l'aide de la console Amazon CloudWatch
  1. Ouvrez la console CloudWatch à l’adresse https://console.aws.amazon.com/cloudwatch/.

  2. Dans le panneau de navigation, choisissez Alarms (alertes), All alarms (Toutes les alertes).

  3. Sélectionnez Create Alarm (Créer une alerte).

  4. Choisissez Sélectionner une métrique, puis effectuez les étapes suivantes :

    1. Choisissez Métriques EC2, puis Métriques par instance.

    2. Sélectionnez la ligne avec l’instance et la métrique StatusCheckFailed_System, puis choisissez Sélectionner une métrique.

    3. Pour la statistique, choisissez Minimum.

    4. Choisissez une période (par exemple, 1 Minute).

      Important

      Pour prévenir toute condition de concurrence entre les actions de redémarrage et de récupération, évitez de définir la même période d'évaluation pour une alarme de redémarrage et une alarme de récupération. Nous vous recommandons de définir des alarmes de récupération sur deux périodes d’évaluation d’une minute chacune.

  5. Pour Conditions, procédez comme suit :

    1. Sous Type de seuil, choisissez Statique.

    2. Sous Lorsque, choisissez Supérieure à, puis saisissez 0 pour que....

    3. Choisissez Configuration supplémentaire, puis sous Points de données pour le déclenchement d’alarme, indiquez 2 sur 2.

  6. Choisissez Suivant.

  7. Sous Notification, procédez comme suit :

    1. Pour Alarm state trigger (Déclencheur de l'état d'alarme), choisissez In alarm (En alarme).

    2. Pour Envoyer une notification à la rubrique SNS suivante, choisissez une rubrique SNS existante ou créez-en une nouvelle.

    3. Choisissez Add EC2 Action (Ajouter une action EC2).

    4. Pour Alarm state trigger (Déclencheur de l'état d'alarme), choisissez In alarm (En alarme).

    5. Pour Effectuer l’action suivante, choisissez Récupérer cette instance.

    6. Choisissez Suivant.

  8. Pour Nom de l’alarme, saisissez un nom unique pour l’alarme (par exemple Recover EC2 instance) et une description de l’alarme (par exemple Recover EC2 instance when health checks fail). Les noms d’alarme doivent contenir uniquement des caractères ASCII.

  9. Choisissez Suivant.

  10. Sélectionnez Create Alarm (Créer une alerte).

Affichage de l'historique des actions et des alarmes déclenchées

Utilisez la console Amazon CloudWatch pour afficher l’historique des alarmes et des actions. Amazon CloudWatch conserve les 30 derniers jours d’historique des alarmes et des actions.

Pour afficher l'historique des actions et des alarmes déclenchées
  1. Ouvrez la console CloudWatch à l’adresse https://console.aws.amazon.com/cloudwatch/.

  2. Dans le panneau de navigation, sélectionnez Alarms (Alarmes), puis sélectionnez une alarme.

  3. Pour afficher la transition d'état la plus récente, ainsi que les valeurs de date et de métrique, choisissez Details (Détails).

  4. Pour afficher les entrées les plus récentes de l'historique, choisissez History (Historique).