J'essaie de créer une alarme Amazon CloudWatch dans la console Amazon Elastic Compute Cloud (Amazon EC2). Je souhaite récupérer mon instance EC2 si cette dernière est dégradée suite à une défaillance du matériel sous-jacent et envoyer une notification lorsque l'alarme se déclenche. Toutefois, sur la page Créer une alarme, l'option Récupérez cette instance sous Prendre la mesure suivante : est grisée (désactivée). Les options de notification d'alarme (Nom de rubrique et destinataires) sont également désactivées. Comment puis-je réactiver ces options ?

Si CloudWatch détermine qu'une instance EC2 utilise des volumes de stockage d'instance, l'option Récupérez cette instance est désactivée. L'action de récupération n'est pas prise en charge pour les instances EC2 qui utilisent des volumes de stockage d'instance, y compris les instances lancées avec des mappages de périphérique de stockage en mode bloc pour des volumes de stockage d'instance. CloudWatch lit les métadonnées associées à chaque instance EC2 pour vérifier qu'elle n'utilise pas les volumes de stockage d'instance avant d'activer l'action de récupération.

Remarque : L'action de récupération est prise en charge seulement sur certains types d'instance. Veillez à lancer un type d'instance pris en charge. Pour plus d'informations, consultez Récupération de votre instance. L'action de l'alarme de récupération EC2 est également valide uniquement pour la métrique StatusCheckFailed_System.

Avant de poursuivre, consultez Créer des alarmes qui arrêtent, finissent, redémarrent ou récupèrent une instance. Veillez à remplir toutes les conditions prérequises pour créer des alarmes CloudWatch.

Recherche de volumes de stockage d'instance éphémères dans des instances EC2 Linux

1.     Connectez-vous à votre instance Linux.

2.     Utilisez la commande suivante pour récupérer des métadonnées à partir de votre instance.

curl http://169.254.169.254/latest/meta-data/block-device-mapping/

3.     Utilisez la sortie pour identifier les volumes de stockage d'instance (dont le nom commence par ephemeral) mappés sur l'instance. Par exemple, cette sortie contient deux volumes de stockage d'instance (ephemeral0 et ephemeral2) :

[ec2-user ~]$ curl http://169.254.169.254/latest/meta-data/block-device-mapping/
ami
ephemeral0
ephemeral2
root

Recherche de volumes de stockage d'instance éphémères dans des instances EC2 Windows

Vous pouvez également utiliser un navigateur :

1.     Connectez-vous à votre instance Windows.

2.     Ouvrez un navigateur et connectez-vous à :

http://169.254.169.254/latest/meta-data/block-device-mapping/

3.     Utilisez les informations renvoyées pour identifier les volumes de stockage d'instance (dont le nom commence par ephemeral) mappés sur l'instance.

Vous pouvez également utiliser Windows PowerShell :

1.     Connectez-vous à votre instance Windows dans PowerShell.

2.     Exécutez la commande suivante :

PS C:\> Invoke-RestMethod -uri http://169.254.169.254/latest/meta-data/block-device-mapping/

3.     Utilisez la sortie pour identifier les volumes de stockage d'instance (dont le nom commence par ephemeral) mappés sur l'instance. Par exemple, cette sortie contient un volume de stockage d'instance (ephemeral0) :

ami
ephemeral0
root
swap

Pour plus d'informations, consultez Affichage du mappage de périphérique de stockage en mode bloc d'une instance pour les volumes de stockage d'instance.

Recherche de volumes de stockage d'instance éphémères dans des AMI pour instances EC2

Vous pouvez également vérifier les mappages de périphérique de stockage en mode bloc pour l'Amazon Machine Image (AMI) de votre instance EC2 et rechercher les volumes de stockage d'instance de périphériques en mode bloc (dont le champ Périphériques de stockage en mode bloc inclut =ephemeral## est un entier compris entre 0 et 23).

Remarque : Lorsque vous utilisez l'interface de ligne de commande AWS, un kit SDK ou un service tel qu'AWS CloudFormation pour lancer une instance EC2 (Windows ou Linux), le mappage de périphérique de stockage en mode bloc peut se produire même si le type d'instance ne prend pas officiellement en charge les volumes de stockage d'instance. Si vous utilisez la console Amazon EC2 pour lancer un type d'instance qui ne prend pas en charge les volumes de stockage d'instance, EC2 ignore simplement les mappages de périphérique de stockage en mode bloc.

Consultez Affichage des volumes EBS dans le mappage de périphérique de stockage en mode bloc d'une AMI pour plus d'informations sur l'énumération des volumes EBS dans un mappage de périphérique de stockage en mode bloc d'une AMI à l'aide de la console Amazon EC2 ou de l'interface de ligne de commande AWS (AWS CLI).

Par exemple, la commande AWS CLI describe-images renvoie le BlockDeviceMapping pour l'AMI :

aws ec2 describe-images --image-ids ami-xxxxxxxx

Exemple de sortie avec des volumes de stockage d'instance pour lesquels VirtualName commence par ephemeral :

aws ec2 describe-images --image-ids ami-11112222

"BlockDeviceMappings": [
   {
      "DeviceName": "/dev/xvda",
      "Ebs": {
         "DeleteOnTermination": true,
         "SnapshotId": "snap-        ",
         "VolumeSize": 8,
         "VolumeType": "gp2",
         "Encrypted": false
      }
   },
   {
      "DeviceName": "/dev/sdb",
      "VirtualName": "ep0hemeral0"
   },
   {
      "DeviceName": "/dev/sdc",
      "VirtualName": "ephemeral2"
   }
],

Supprimer ou remplacer toute référence à des volumes de stockage d'instance dans l'AMI

Après avoir confirmé que votre instance EC2 utilise un ou plusieurs volumes de stockage d'instance, vous devez supprimer ou remplacer toute référence à des volumes de stockage d'instance dans l'AMI. Ensuite, vous devez relancer l'instance, car les volumes de stockage d'instance ne peuvent pas être ajoutés ou supprimés à partir d'une instance EC2 existante.

Utilisez une des méthodes suivantes pour supprimer ou remplacer des références à des volumes de stockage d'instance :

  • Supprimez les références à des volumes de stockage d'instance à partir de l'AMI. Ensuite, relancez l'instance.
  • Lancez l'instance EC2 à partir de la console EC2 pour remplacer l'AMI pour les types d'instance qui ne prennent pas en charge les volumes de stockage d'instance.
  • Lancez l'instance EC2 à partir de l'interface de ligne de commande AWS et écrasez manuellement chaque Block Device de l'AMI qui référence un volume de stockage d'instance. Par exemple, si les périphériques /dev/sdb et /dev/sdc correspondent aux volumes de stockage d'instance, lancez votre instance EC2 à l'aide de la commande run-instances :
aws ec2 run-instances --image-id ami-11112222 --subnet-id subnet-11112222 --instance-type t2.medium
 --key-name my_key --associate-public-ip-address --block-device-mappings 
 '[{"DeviceName": "/dev/sdb","NoDevice": ""},{"DeviceName": "/dev/sdc","NoDevice": ""}]'
  • Pour une instance EC2 lancée par CloudFormation, créez un modèle CloudFormation pour remplacer le mappage des périphériques en volumes de stockage d'instance. Par exemple :
{
  "AWSTemplateFormatVersion": "2010-09-09",
  "Resources": {
   "I4EY8I": {
    "Type": "AWS::EC2::Instance",
    "Properties": {
     "ImageId" : "ami-11112222",
     "InstanceType" : "t2.medium",
     "SubnetId" : "subnet-11112222",
     "KeyName" : "my_key",
   "BlockDeviceMappings" : [
     {
       "DeviceName":"/dev/sdb",
       "NoDevice": {}
     },
     {
       "DeviceName":"/dev/sdc",
       "NoDevice": {}
     }
  ]
   }
  }
 }
}
  • Pour une instance EC2 lancée par un kit SDK, reportez-vous à la documentation de ce SDK pour savoir comment remplacer le mappage des périphériques en volumes de stockage d'instance.

Cette page vous a-t-elle été utile ? Oui | Non

Retour au Centre de connaissances AWS Support

Vous avez besoin d'aide ? Consultez le site du Centre AWS Support

Date de publication : 30/02/2016

Date de mise à jour : 12/12/2018