¿Por qué se desactiva la opción «Recuperar esta instancia» al crear una alarma en la consola EC2?

6 minutos de lectura
0

Estoy intentando crear una alarma de Amazon CloudWatch en la consola de Amazon Elastic Compute Cloud (Amazon EC2). Quiero recuperar mi instancia de EC2 si esta se ve afectada por un error de hardware subyacente y, a continuación, enviar una notificación cuando se active la alarma. Sin embargo, en la página Crear alarma, la opción «Recuperar esta instancia» situada en la sección «Realizar la acción» aparece atenuada (desactivada). Las opciones de notificación de alarmas también están desactivadas. ¿Cómo vuelvo a activar estas opciones?

Descripción breve

Si CloudWatch determina que una instancia de EC2 utiliza volúmenes de almacén de instancias, la opción Recuperar esta instancia está desactivada. La acción de recuperación no se admite en las instancias de EC2 que utilizan volúmenes de almacén de instancias, incluidas las que se lanzan con mapeos de dispositivos de bloques, por ejemplo, volúmenes de almacenamiento de instancias. CloudWatch lee los metadatos asociados a cada instancia de EC2 para comprobar que no utiliza los volúmenes del almacén de instancias antes de habilitar la acción de recuperación.

Nota: La acción Recuperar solo se admite en ciertos tipos de instancias. Asegúrese de lanzar un tipo de instancia compatible. Para obtener más información, consulte Recuperar su instancia. La acción de alarma de recuperación de EC2 solo es válida para la métrica StatusCheckFailed\ _System.

Resolución

Nota: Si recibe errores al ejecutar los comandos de la Interfaz de la línea de comandos de AWS (AWS CLI), asegúrese de que está utilizando la versión más reciente de la AWS CLI.

Antes de continuar, consulte Crear alarmas que detengan, finalicen, reinicien o recuperen una instancia. Asegúrese de cumplir todos los requisitos previos para crear alarmas de CloudWatch.

Encuentre volúmenes de almacenes de instancias efímeros en instancias de EC2 Linux

1.     Conéctese a su instancia de Linux.

2.     Use el siguiente comando para recuperar los metadatos de su instancia.

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

3.     Utilice el resultado para identificar los volúmenes del almacén de instancias (cuyos nombres comienzan por «ephemeral») mapeados a la instancia. Por ejemplo, hay dos volúmenes de almacenamiento de instancias («ephemeral0» y «ephemeral2») en este resultado:

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

Encuentre volúmenes de almacenes de instancias efímeros en instancias EC2 de Windows

Mediante un navegador:

1.     Conéctese a su instancia de Windows.

2.     Abra un navegador y conéctese a:

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

3.     Use la información devuelta para identificar los volúmenes del almacén de instancias (cuyos nombres comienzan por «ephemeral») mapeados a la instancia.

Uso de Windows PowerShell:

1.     Conéctese a su instancia de Windows en PowerShell.

2.     Ejecute el siguiente comando:

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

3.     Utilice el resultado para identificar los volúmenes del almacén de instancias (cuyos nombres comienzan por «ephemeral») mapeados a la instancia. Por ejemplo, hay un volumen de almacén de instancias («ephemeral0») en este resultado:

ami
ephemeral0
root
swap

Para obtener más información, consulte Ver el mapeo de dispositivos de bloques de instancias para ver los volúmenes del almacén de instancias.

Encuentre volúmenes de almacenes de instancias efímeros en las AMI para instancias de EC2

Revise los mapeos de dispositivos de bloques de la imagen de máquina de Amazon (AMI) de su instancia de EC2. Compruebe si hay volúmenes del almacén de instancias de dispositivos de bloques cuyo campo «Bloquear dispositivos» incluya «=ephemeral#», donde «#» es un número entero comprendido entre 0 y 23.

El mapeo de dispositivos en bloque puede ocurrir incluso si el tipo de instancia no admite oficialmente los volúmenes del almacén de instancias. Esta acción se puede producir cuando se utiliza una de las siguientes opciones para lanzar una instancia de EC2 (Windows o Linux):

  • AWS CLI
  • Un SDK
  • Un servicio como AWS CloudFormation 

Al utilizar la consola de Amazon EC2 para lanzar un tipo de instancia que no admite volúmenes de almacenes de instancias, Amazon EC2 ignora las asignaciones de dispositivos de bloques modificadas.

Puede enumerar los volúmenes de EBS en el mapeo de dispositivos de bloques de una AMI mediante la consola Amazon EC2 o la AWS CLI.

Por ejemplo, el siguiente comando describe-images devuelve el BlockDeviceMapping de la AMI:

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

Ejemplo de salida con volúmenes de almacenes de instancias cuyo «VirtualName» comienza por «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"
   }
],

Eliminar o anular cualquier referencia a los volúmenes del almacén de instancias en la AMI

Una vez que haya confirmado que su instancia de EC2 usa volúmenes de almacén de instancias, debe eliminar o anular cualquier referencia a los volúmenes del almacén de instancias en la AMI. A continuación, debe volver a iniciar la instancia porque los volúmenes del almacén de instancias no se pueden agregar ni quitar de una instancia de EC2 existente.

Utilice uno de los siguientes métodos para eliminar o anular las referencias a los volúmenes del almacén de instancias:

  • Elimine las referencias a los volúmenes del almacén de instancias de la AMI. A continuación, vuelva a iniciar la instancia.
  • Inicie la instancia EC2 desde la consola Amazon EC2 para anular la AMI en el caso de los tipos de instancias que no admiten los almacenes de volúmenes de instancias.
  • Inicie la instancia EC2 desde la AWS CLI y, a continuación, anule manualmente cada dispositivo de la AMI que haga referencia a un volumen de almacén de instancias. Por ejemplo, si tiene dispositivos «/dev/sdb» y «/dev/sdc» que se asignan a los volúmenes del almacén de instancias, inicie su instancia de EC2 mediante el comando 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": ""}]'
  • Para una instancia de EC2 lanzada por CloudFormation, cree una plantilla de CloudFormation para anular la asignación de cualquier dispositivo a los volúmenes del almacén de instancias. Por ejemplo:
{
  "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": {}
     }
  ]
   }
  }
 }
}
  • En el caso de una instancia de EC2 lanzada por un SDK, consulte la documentación del SDK correspondiente para saber cómo anular la asignación de dispositivos a los volúmenes del almacén de instancias.

Información relacionada

Uso de alarmas de Amazon CloudWatch

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace 5 años