Crear alarmas para detener, terminar, reiniciar o recuperar una instancia EC2 - Amazon CloudWatch

Crear alarmas para detener, terminar, reiniciar o recuperar una instancia EC2

Mediante las acciones de la alarma de Amazon CloudWatch, puede crear alarmas que detienen, terminan, reinician o recuperan automáticamente las instancias EC2. Puede utilizar las acciones detener o terminar para ayudarle a ahorrar dinero cuando ya no necesita que se ejecute una instancia. Puede utilizar las acciones reiniciar y recuperar para reiniciar automáticamente dichas instancias o recuperarlas en nuevo hardware si se produce un deterioro del sistema.

Hay una serie de situaciones en las que es posible que desee detener o terminar la instancia automáticamente. Por ejemplo, es posible que tenga instancias dedicadas a trabajos de procesamiento de nóminas por lotes o tareas de cálculo científico que se ejecutan durante un período de tiempo y después completan su trabajo. En lugar de dejar dichas instancias inactivas (y acumulando cargos), puede pararlas o terminarlas, lo que le ayuda a ahorrar dinero. La principal diferencia entre utilizar las acciones de alarma detener y terminar es que puede reiniciar fácilmente una instancia detenida si necesita ejecutarla de nuevo más tarde. También puede mantener el mismo ID de instancia y volumen raíz. Sin embargo, no se puede reiniciar una instancia terminada. En su lugar, debe lanzar una nueva instancia.

Puede agregar las acciones detener, terminar, reiniciar en cualquier alarma establecida en una métrica por instancia de Amazon EC2, incluidas las métricas de monitoreo detallado y básico que Amazon CloudWatch proporciona (en el espacio de nombres AWS/EC2), además de cualquier métrica personalizada que incluya la dimensión "InstanceId =", siempre que el valor InstanceId se refiera a una instancia válida de Amazon EC2 en ejecución. También puede agregar la acción de recuperación a las alarmas configuradas en cualquier métrica por instancia de Amazon EC2, excepto en StatusCheckFailed_Instance.

Para configurar una acción en la alarma de CloudWatch que pueda reiniciar, detener o terminar una instancia, debe utilizar un rol de IAM vinculado al servicio, AWSServiceRoleForCloudWatchEvents. El rol de IAM AWSServiceRoleForCloudWatchEvents le permite a AWS realizar acciones en la alarma en su nombre.

Para crear un rol vinculado al servicio para CloudWatch Events, utilice el siguiente comando:

aws iam create-service-linked-role --aws-service-name events.amazonaws.com
Soporte de consola

Puede crear alarmas mediante la consola de Amazon EC2 o la consola de CloudWatch. Los procedimientos de esta documentación utilizan la consola de CloudWatch. Para los procedimientos que utilizan la consola de Amazon EC2, consulte Create Alarms That Stop, Terminate, Reboot, or Recover an Instance (Crear alarmas que detienen, terminan, reinician o recuperan una instancia) en la Guía del usuario para instancias de Linux.

Permisos

Si utiliza una cuenta de AWS Identity and Access Management (IAM) para crear o modificar una alarma que realice acciones de EC2 o acciones de OpsItem de Systems Manager, debe tener el permiso iam:CreateServiceLinkedRole.

Agregar acciones de detención a las alarmas de Amazon CloudWatch

Puede crear una alarma que detenga una instancia Amazon EC2 cuando se alcance un umbral determinado. Por ejemplo, podría ejecutar instancias de desarrollo o de prueba y en ocasiones olvidarse de apagarlas. Puede crear una alarma que se active cuando el porcentaje de uso medio de la CPU haya estado por debajo del 10 por ciento durante 24 horas, hecho indicativo de que ha estado inactiva y que ya no se está usando. Puede ajustar el umbral, la duración y el periodo que se adapten mejor a sus necesidades, además puede añadir una notificación de SNS, de forma que recibirá un correo electrónico cuando se active la alarma.

Las instancias de Amazon EC2 que utilizan un volumen de Amazon Elastic Block Store como dispositivo raíz se pueden detener o terminar, mientras que aquellas que utilizan el almacén de instancias como dispositivo raíz solo se pueden terminar.

Para crear una alarma con el fin de detener una instancia inactiva mediante la consola de Amazon CloudWatch
  1. Abra la consola de CloudWatch en https://console.aws.amazon.com/cloudwatch/.

  2. En el panel de navegación, elija Alarms (Alarmas) y, luego, Create Alarm (Crear alarma).

  3. Elija Create alarm (Crear alarma).

  4. Elija Select Metric (Seleccionar métrica).

  5. En los espacios de nombres de AWS, elija EC2.

  6. Haga lo siguiente:

    1. Elija Per-Instance Metrics (Métricas por instancia).

    2. Seleccione la casilla de verificación en la fila con la instancia correcta y la métrica CPUUtilization.

    3. Elija la pestaña Métricas diagramadas.

    4. Para la estadística, elija Average.

    5. Seleccione un periodo (por ejemplo, 1 Hour).

    6. Elija Seleccionar métrica.

  7. En el paso Define Alarm, haga lo siguiente:

    1. En Conditions (Condiciones), elija Static (Estático).

    2. En Whenever the CPUUtilization is (Siempre que la CPUUtilization sea), elija Lower (Más baja).

    3. Para than (que), escriba 10.

    4. Elija Siguiente.

    5. En Notification, en Send notification to, elija un tema de SNS existente o cree uno nuevo.

      Para crear un tema de SNS, elija New list (Nueva lista). En Send a notification to (Enviar una notificación a), escriba un nombre para el tema de SNS (por ejemplo, Stop_EC2_Instance). En Email list (Lista de correo electrónico), escriba una lista separada por comas con las direcciones de correo electrónico a las que se van a enviar notificaciones cuando la alarma cambie al estado ALARM. A cada dirección de correo electrónico se envía un correo electrónico de confirmación de suscripción del tema. Debe confirmar la suscripción antes de que las notificaciones se puedan enviar a una dirección de correo electrónico.

    6. Elija Add EC2 Action (Agregar acción de EC2).

    7. Para Alarm state trigger (Desencadenador de estado de alarma), elija In Alarm (En alarma). Para Take the following action (Realizar la siguiente acción), elija Stop this instance (Detener esta instancia).

    8. Elija Siguiente.

    9. Escriba un nombre y la descripción de la alarma. El nombre solo debe contener caracteres ASCII. A continuación, elija Next.

    10. En Preview and create (Obtener vista previa y crear), confirme que la información y las condiciones son las que desea y, a continuación, elija Create alarm (Crear alarma).

Agregar acciones de terminación a las alarmas de Amazon CloudWatch

Puede crear una alarma que termina una instancia de EC2 automáticamente cuando se alcanza un umbral determinado (siempre y cuando la protección de terminación no esté habilitada para la instancia). Por ejemplo, es posible que desee terminar una instancia cuando haya completado su trabajo y no necesita la instancia de nuevo. En caso de que desee utilizar la instancia en otro momento, debe detener la instancia en lugar de terminarla. Para obtener más información sobre la activación y desactivación de la protección de terminación de una instancia, consulte Enabling Termination Protection for an Instance (Activación de la protección de terminación para una instancia) en la Guía del usuario de Amazon EC2 para las instancias de Linux.

Para crear una alarma para terminar una instancia inactiva mediante la consola de Amazon CloudWatch
  1. Abra la consola de CloudWatch en https://console.aws.amazon.com/cloudwatch/.

  2. En el panel de navegación, elija Alarms, Create Alarm.

  3. En el paso Select Metric, haga lo siguiente:

    1. En EC2 Metrics, elija Per-Instance Metrics.

    2. Seleccione la fila con la instancia y la métrica CPUUtilization.

    3. Para la estadística, elija Average.

    4. Seleccione un periodo (por ejemplo, 1 Hour).

    5. Elija Siguiente.

  4. En el paso Define Alarm, haga lo siguiente:

    1. En Alarm Threshold, escriba un nombre único para la alarma (por ejemplo, Terminar instancia EC2) y una descripción de la alarma (por ejemplo, Terminar la instancia EC2 cuando la CPU está inactiva demasiado tiempo). Los nombres de alarma solo pueden contener caracteres ASCII.

    2. En Whenever (Siempre que), en is (es), elija < y escriba 10. En for (para), escriba 24 periodos consecutivos.

      En Vista previa de alarma se muestra una representación gráfica del umbral.

    3. En Notification, en Send notification to, elija un tema de SNS existente o cree uno nuevo.

      Para crear un tema de SNS, elija New list (Nueva lista). En Send a notification to (Enviar una notificación a), escriba un nombre para el tema de SNS (por ejemplo, Terminate_EC2_Instance) En Email list (Lista de correo electrónico), escriba una lista separada por comas con las direcciones de correo electrónico a las que se van a enviar notificaciones cuando la alarma cambie al estado ALARM. A cada dirección de correo electrónico se envía un correo electrónico de confirmación de suscripción del tema. Debe confirmar la suscripción antes de que las notificaciones se puedan enviar a una dirección de correo electrónico.

    4. Elija EC2 Action.

    5. En Whenever this alarm, elija State is ALARM. En Take this action, elija Terminate this instance.

    6. Seleccione Crear alarma.

Agregar acciones de reinicio a las alarmas de Amazon CloudWatch

Puede crear una alarma de Amazon CloudWatch que monitorice una instancia Amazon EC2 y reinicie la instancia automáticamente. La acción de alarma de reinicio se recomienda para errores de comprobación de estado de instancia (en contraposición a la acción de alarma recuperar, que es adecuada para los errores de comprobación de estado del sistema). Un reinicio de instancia es equivalente a un reinicio del sistema operativo. En la mayoría de los casos, solo necesita unos minutos para reiniciar su instancia. Cuando se reinicia una instancia, sigue estando en el mismo host físico, por lo que la instancia mantiene su nombre de DNS público, dirección IP privada y todos los datos en sus volúmenes de almacén de instancia.

El reinicio de una instancia no comienza una nueva hora de facturación de instancia, a diferencia de parar y reiniciar la instancia. Para obtener más información acerca de cómo se reinicia una instancia, consulte Reboot Your Instance (Reiniciar la instancia) en la Guía del usuario de Amazon EC2 para instancias de Linux.

importante

Para evitar una condición de carrera entre el reinicio y las acciones de recuperación, evitar configurar el mismo periodo de evaluación para una alarma de reinicio y otra de recuperación. Le recomendamos que configure las alarmas de reinicio en tres periodos de un minuto cada uno.

Para crear una alarma para reiniciar una instancia mediante la consola de Amazon CloudWatch
  1. Abra la consola de CloudWatch en https://console.aws.amazon.com/cloudwatch/.

  2. En el panel de navegación, elija Alarms, Create Alarm.

  3. En el paso Select Metric, haga lo siguiente:

    1. En EC2 Metrics, elija Per-Instance Metrics.

    2. Seleccione la fila con la instancia y la métrica StatusCheckFailed_Instance.

    3. Para la estadística, elija Minimum.

    4. Seleccione un periodo (por ejemplo, 1 Minute).

    5. Elija Siguiente.

  4. En el paso Define Alarm, haga lo siguiente:

    1. En Alarm Threshold, escriba un nombre único para la alarma (por ejemplo, Reiniciar instancia EC2) y una descripción de la alarma (por ejemplo, Reiniciar instancia EC2 cuando fallan las comprobaciones de estado). Los nombres de alarma solo pueden contener caracteres ASCII.

    2. En Whenever (Siempre que), en is (es), elija > y escriba 0. En for (para), escriba 3 periodos consecutivos.

      En Vista previa de alarma se muestra una representación gráfica del umbral.

    3. En Notification, en Send notification to, elija un tema de SNS existente o cree uno nuevo.

      Para crear un tema de SNS, elija New list (Nueva lista). En Send a notification to (Enviar una notificación a), escriba un nombre para el tema de SNS (por ejemplo, Reboot_EC2_Instance). En Email list (Lista de correo electrónico), escriba una lista separada por comas con las direcciones de correo electrónico a las que se van a enviar notificaciones cuando la alarma cambie al estado ALARM. A cada dirección de correo electrónico se envía un correo electrónico de confirmación de suscripción del tema. Debe confirmar la suscripción antes de que las notificaciones se puedan enviar a una dirección de correo electrónico.

    4. Elija EC2 Action.

    5. En Whenever this alarm, elija State is ALARM. En Take this action, elija Reboot this instance.

    6. Seleccione Crear alarma.

Agregar acciones de recuperación a las alarmas de Amazon CloudWatch

Puede crear una alarma de Amazon CloudWatch que supervise una instancia de Amazon EC2 y recupere de forma automática la instancia si deja de funcionar debido a un error de hardware subyacente o un problema que requiera la intervención de AWS en la reparación. Las instancias terminadas no se pueden recuperar. Una instancia recuperada es idéntica a la instancia original, incluido el ID de instancia, direcciones IP privadas, direcciones IP elásticas y todos los metadatos de la instancia.

Cuando se activa la alarma StatusCheckFailed_System y se inicia la acción de recuperación, se le notificará mediante el tema de Amazon SNS que ha eligido al crear la alarma y la acción de recuperación asociada. Durante la recuperación de la instancia, la instancia se migró durante un reinicio de instancia y los datos que hay en la memoria se pierden. Cuando el proceso se ha completado, la información se publica en el tema de SNS que haya configurado para la alarma. Cualquier persona que esté suscrita a este tema de SNS recibirá una notificación por correo electrónico que incluye el estado del intento de recuperación e instrucciones adicionales. Observará un reinicio de instancia en la instancia recuperada.

La acción de recuperación solo se puede utilizar con StatusCheckFailed_System, no con StatusCheckFailed_Instance.

Entre los ejemplos de problemas que provocan errores en las comprobaciones de estado del sistema se incluyen:

  • Pérdida de conectividad de red

  • Pérdida de potencia del sistema

  • Problemas de software en el host físico

  • Problemas de hardware en el host físico que afectan a la accesibilidad a la red

La acción de recuperación solo se admite en algunos tipos de instancias. Para obtener más información sobre los tipos de instancias compatibles y otros requisitos, consulte Recover your instance (Recupere su instancia) y Requirements (Requisitos).

importante

Para evitar una condición de carrera entre el reinicio y las acciones de recuperación, evitar configurar el mismo periodo de evaluación para una alarma de reinicio y otra de recuperación. Le recomendamos que configure las alarmas de recuperación en dos periodos de evaluación de un minuto cada uno y las alarmas de reinicio en tres periodos de evaluación de un minuto cada uno.

Para crear una alarma con el fin de recuperar una instancia mediante la consola de Amazon CloudWatch
  1. Abra la consola de CloudWatch en https://console.aws.amazon.com/cloudwatch/.

  2. En el panel de navegación, elija Alarms, Create Alarm.

  3. En el paso Select Metric, haga lo siguiente:

    1. En EC2 Metrics, elija Per-Instance Metrics.

    2. Seleccione la fila con la instancia y la métrica StatusCheckFailed_System.

    3. Para la estadística, elija Minimum.

    4. Seleccione un periodo (por ejemplo, 1 Minute).

      importante

      Para evitar una condición de carrera entre el reinicio y las acciones de recuperación, evitar configurar el mismo periodo de evaluación para una alarma de reinicio y otra de recuperación. Le recomendamos que configure las alarmas de recuperación en dos periodos de un minuto cada uno.

    5. Elija Siguiente.

  4. En el paso Define Alarm, haga lo siguiente:

    1. En Alarm Threshold, escriba un nombre único para la alarma (por ejemplo, Recuperar instancia EC2) y una descripción de la alarma (por ejemplo, Recuperar instancia EC2 cuando fallan las comprobaciones de estado). Los nombres de alarma solo pueden contener caracteres ASCII.

    2. En Whenever (Siempre que), en is (es), elija > y escriba 0. En for (para), escriba 2 periodos consecutivos.

    3. En Notification, en Send notification to, elija un tema de SNS existente o cree uno nuevo.

      Para crear un tema de SNS, elija New list (Nueva lista). En Send a notification to (Enviar una notificación a), escriba un nombre para el tema de SNS (por ejemplo, Recover_EC2_Instance). En Email list (Lista de correo electrónico), escriba una lista separada por comas con las direcciones de correo electrónico a las que se van a enviar notificaciones cuando la alarma cambie al estado ALARM. A cada dirección de correo electrónico se envía un correo electrónico de confirmación de suscripción del tema. Debe confirmar la suscripción antes de que las notificaciones se puedan enviar a una dirección de correo electrónico.

    4. Elija EC2 Action.

    5. En Whenever this alarm, elija State is ALARM. En Take this action, elija Recover this instance.

    6. Seleccione Crear alarma.

Ver el historial de alarmas activadas y acciones

Puede ver el historial de alarmas y de acciones en la consola de Amazon CloudWatch El historial de alarmas y acciones en Amazon CloudWatch se guarda por un período de 30 días.

Para ver el historial de las alarmas activadas y acciones
  1. Abra la consola de CloudWatch en https://console.aws.amazon.com/cloudwatch/.

  2. En el panel de navegación, elija Alarms (Alarmas) y seleccione una alarma.

  3. Para ver la transición de estado más reciente junto con los valores de métricas y tiempo, elija Details.

  4. Para ver las entradas de historial más recientes, elija History (Historial).