Pourquoi l'option « Restaurer cette instance » est-elle désactivée lors de la création d'une alarme dans la console EC2 ?

Lecture de 6 minute(s)
0

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 elle est endommagée par une défaillance matérielle sous-jacente, puis envoyer une notification lorsque l'alarme se déclenche. Toutefois, sur la page Créer une alarme, l'option « Restaurer cette instance » sous « Prendre l'action » est grisée (désactivée). Les options de notification d'alarme sont également désactivées. Comment réactiver ces options ?

Brève description

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

**Remarque :**l'action Restaurer n'est prise en charge que sur certains types d'instances. Assurez-vous de lancer un type d'instance pris en charge. Pour en savoir plus, consultez Restaurer votre instance. L'action d'alarme de restauration EC2 n'est valide que pour la métrique StatusCheckFailed_System.

Résolution

Remarque : si des erreurs surviennent lors de l’exécution des commandes de l’interface de la ligne de commande AWS CLI, vérifiez que vous utilisez la version la plus récente d’AWS CLI.

Avant de poursuivre, consultez la rubrique Créer des alarmes qui arrêtent, interrompent, redémarrent ou restaurent une instance. Assurez-vous de remplir toutes les conditions requises pour créer des alarmes CloudWatch.

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

1.     Connectez-vous à votre instance Linux.

2.     Utilisez la commande suivante pour récupérer les métadonnées 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'instances (dont les noms commencent par « ephemeral ») mappés à l'instance. Par exemple, cette sortie contient deux volumes de stockage d'instances (« ephemeral0 » et « ephemeral2 ») :

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

Trouvez des volumes de stockage d'instances éphémères dans les instances Windows EC2

À l'aide d'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'instances (dont les noms commencent par « ephemeral ») mappés à l'instance.

À l'aide de 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'instances (dont les noms commencent par « ephemeral ») mappés à l'instance. Par exemple, cette sortie contient un volume de stockage d'instances (« ephemeral0 ») :

ami
ephemeral0
root
swap

Pour en savoir plus, voir Afficher le mappage des périphériques de stockage en mode bloc d'instance pour les volumes de stockage d'instances.

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

Passez en revue les mappages de périphériques de stockage en mode bloc pour l'Amazon Machine Image (AMI) de votre instance EC2. Vérifiez les volumes de stockage d'instances de périphériques de stockage en mode bloc dont le champ « Block Devices » inclut « =ephemeral# », où « # » est un entier compris entre 0 et 23.

Le mappage des périphériques 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'instances. Cette action peut se produire lorsque vous utilisez l'une des méthodes suivantes pour lancer une instance EC2 (Windows ou Linux) :

  • L'AWS CLI
  • Un SDK
  • Un service tel qu'AWS CloudFormation

Lorsque vous utilisez la console Amazon EC2 pour lancer un type d'instance qui ne prend pas en charge les volumes de stockage d'instances, Amazon EC2 ignore les mappages de périphériques de stockage en mode bloc modifiés.

Vous pouvez énumérer les volumes EBS dans le mappage de périphériques de stockage en mode bloc d'une AMI à l'aide de la console Amazon EC2 ou de l'AWS CLI.

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

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

Exemple de sortie avec des volumes de stockage d'instances dont le « 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 toutes les références aux volumes de stockage d'instances dans l'AMI

Après avoir confirmé que votre instance EC2 utilise des volumes de stockage d'instances, vous devez supprimer ou remplacer toutes les références aux volumes de stockage d'instances dans l'AMI. Vous devez ensuite relancer l'instance, sachant que les volumes de stockage d'instances ne peuvent pas être ajoutés ou supprimés d'une instance EC2 existante.

Utilisez l'une des méthodes suivantes pour supprimer ou remplacer les références aux volumes de stockage d'instances :

  • Supprimez les références aux volumes de stockage d'instances de l'AMI. Relancez ensuite l'instance.
  • Lancez l'instance EC2 depuis la console Amazon EC2 pour remplacer l'AMI pour les types d'instances qui ne prennent pas en charge les magasins de volumes d'instance.
  • Lancez l'instance EC2 à partir de l'AWS CLI, puis remplacez manuellement chaque périphérique de l'AMI qui fait référence à un volume de stockage d'instances. Par exemple, si vous avez des périphériques « /dev/sdb » et « /dev/sdc » qui correspondent à des volumes de stockage d'instances, 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 afin de remplacer le mappage de tous les périphériques par des volumes de stockage d'instances. 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 SDK, consultez la documentation du SDK pertinente pour savoir comment remplacer le mappage des périphériques par des volumes de stockage d'instances.

Informations connexes

Utilisation des alarmes Amazon CloudWatch

AWS OFFICIEL
AWS OFFICIELA mis à jour il y a 5 ans