Perché l'opzione "Recupera questa istanza" è disattivata quando si crea un allarme nella console EC2?

5 minuti di lettura
0

Sto cercando di creare un allarme Amazon CloudWatch nella console Amazon Elastic Compute Cloud (Amazon EC2). Voglio ripristinare la mia istanza EC2 se è compromessa da un errore hardware sottostante e quindi inviare una notifica quando si attiva l'allarme. Tuttavia, nella pagina Crea allarme, l'opzione "Recupera questa istanza" in "Esegui l'operazione" è in grigio (disattivata). Anche le opzioni di notifica degli allarmi sono disattivate. Come faccio a riattivare queste opzioni?

Breve descrizione

Se CloudWatch determina che un'istanza EC2 utilizza i volumi di archivio dell'istanza, l'opzione Recupera questa istanza è disabilitata. L'azione di ripristino non è supportata per le istanze EC2 che utilizzano volumi di archivio dell'istanza, comprese quelle avviate con mappature dei dispositivi a blocchi per i volumi di archivio dell'istanza. CloudWatch legge i metadati associati a ciascuna istanza EC2 per verificare che non si utilizzino i volumi di archivio dell'istanza prima di abilitare l'azione di ripristino.

Nota: L'azione Recupera è supportata solo su determinati tipi di istanze. Assicurati di avviare un tipo di istanza supportato. Per ulteriori informazioni, consulta Recupero di un'istanza. L'azione di allarme di ripristino EC2 è valida solo per la metrica StatusCheckFailed_System.

Risoluzione

Nota: Se ricevi errori durante l'esecuzione dei comandi dell'Interfaccia della linea di comando AWS (AWS CLI), assicurati di utilizzare la versione dell'interfaccia della linea di comando AWS più recente.

Prima di procedere, consulta Creazione di allarmi per arrestare, terminare, riavviare o recuperare un'istanza. Assicurati di soddisfare tutti i prerequisiti per la creazione di allarmi CloudWatch.

Trova i volumi di archivio dell'istanza effimeri nelle istanze Linux EC2

1.     Connettiti alla tua istanza Linux.

2.     Usa il seguente comando per recuperare i metadati dalla tua istanza.

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

3.     Utilizza l'output per identificare i volumi di archivio dell'istanza (i cui nomi iniziano con "ephemeral") mappati sull'istanza. Ad esempio, in questo output sono presenti due volumi di archivio dell'istanza ("ephemeral0" e "ephemeral2"):

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

Trova i volumi di archivio dell'istanza effimeri nelle istanze Windows EC2

Utilizzando un browser:

1.     Connettiti alla tua istanza Windows.

2.     Apri un browser e connettiti a:

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

3.     Utilizza le informazioni restituite per identificare i volumi di archivio dell'istanza (i cui nomi iniziano con "ephemeral") mappati sull'istanza.

Utilizzando Windows PowerShell:

1.     Connettiti alla tua istanza Windows in PowerShell.

2.     Esegui il seguente comando:

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

3.     Utilizza l'output per identificare i volumi di archivio dell'istanza (i cui nomi iniziano con "ephemeral") mappati sull'istanza. Ad esempio, c'è un volume di archivio dell'istanza ("ephemeral0") in questo output:

ami
ephemeral0
root
swap

Per ulteriori informazioni, consulta Visualizzazione della mappatura dei dispositivi a blocchi di un'istanza per i volumi di archivio dell'istanza.

Trova i volumi di archivio dell'istanza effimeri nelle AMI per le istanze EC2

Controlla le mappature dei dispositivi a blocchi per Amazon Machine Image (AMI) per la tua istanza EC2. Verifica i volumi di archivio dell'istanza dei dispositivi a blocchi il cui campo "Dispositivi a blocchi" include "=ephemeral#", dove "#" è un numero intero compreso tra 0 e 23.

La mappatura dei dispositivi a blocchi può avvenire anche se il tipo di istanza non supporta ufficialmente i volumi di archivio dell'istanza. Questa azione può verificarsi quando si utilizza uno dei seguenti metodi per avviare un'istanza EC2 (Windows o Linux):

  • AWS CLI
  • Un SDK
  • Un servizio come AWS CloudFormation

Quando utilizzi la console Amazon EC2 per avviare un tipo di istanza che non supporta i volumi di archivio dell'istanza, Amazon EC2 ignora le mappature modificate dei dispositivi a blocchi.

Puoi enumerare i volumi EBS nella mappatura dei dispositivi a blocchi di un'AMI utilizzando la console Amazon EC2 o l'interfaccia della linea di comando AWS.

Ad esempio, il seguente comando describe-images restituisce BlockDeviceMapping per l'AMI:

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

Esempio di output con volumi di archivio dell'istanza e il cui "VirtualName" inizia con "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"
   }
],

Rimuovi o sovrascrivi qualsiasi riferimento ai volumi di archivio dell'istanza nell'AMI

Dopo aver confermato che l'istanza EC2 utilizza i volumi di archivio dell'istanza, è necessario rimuovere o sovrascrivere qualsiasi riferimento ai volumi di archivio dell'istanza nell'AMI. Quindi, è necessario riavviare l'istanza perché i volumi di archivio dell'istanza non possono essere aggiunti o rimossi da un'istanza EC2 esistente.

Utilizza uno dei seguenti metodi per rimuovere o sovrascrivere i riferimenti ai volumi di archivio dell'istanza:

  • Rimuovi i riferimenti ai volumi di archivio dell'istanza dall'AMI. Quindi, riavvia l'istanza.
  • Avvia l'istanza EC2 dalla console Amazon EC2 per sovrascrivere l'AMI, ad esempio i tipi di istanza che non supportano i volumi instance store.
  • Avvia l'istanza EC2 dall'interfaccia della linea di comando AWS, quindi sovrascrivi manualmente ogni dispositivo nell'AMI che fa riferimento a un volume di archivio dell'istanza. Ad esempio, se disponi di dispositivi "/dev/sdb" e "/dev/sdc" che mappano i volumi di archivio dell'istanza, avvia l'istanza EC2 utilizzando il comandorun-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": ""}]'
  • Per un'istanza EC2 lanciata da CloudFormation, crea un modello CloudFormation per sovrascrivere la mappatura di qualsiasi dispositivo rispetto ai volumi di archivio dell'istanza. Ad esempio:
{
  "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": {}
     }
  ]
   }
  }
 }
}
  • Per un'istanza EC2 lanciata da un SDK, consulta la documentazione SDK pertinente per sapere come sovrascrivere i dispositivi di mappatura ai volumi di archivio dell'istanza.

Informazioni correlate

Utilizzo degli allarmi Amazon CloudWatch

AWS UFFICIALE
AWS UFFICIALEAggiornata 5 anni fa