Recepción de notificaciones de Amazon SNS cuando se escala un grupo de Auto Scaling - Amazon EC2 Auto Scaling

Recepción de notificaciones de Amazon SNS cuando se escala un grupo de Auto Scaling

Puede recibir notificaciones del momento en el que Amazon EC2 Auto Scaling lanza o termina instancias EC2 en un grupo de Auto Scaling. Puede administrar las notificaciones mediante Amazon Simple Notification Service (Amazon SNS)

Amazon SNS coordina y administra la entrega o el envío de notificaciones a los clientes o puntos de enlace suscritos. Amazon SNS ofrece una variedad de opciones de notificación, como la posibilidad de entregar notificaciones como HTTP o HTTPS POST, como correo electrónico (SMTP con texto sin formato o con formato JSON) o como mensaje publicado en una cola de Amazon SQS, lo que permite gestionar estas notificaciones mediante programación. Para obtener más información, consulte la Guía para desarrolladores de Amazon Simple Notification Service.

Por ejemplo, si configura el grupo de Auto Scaling para que utilice el tipo de notificación autoscaling: EC2_INSTANCE_TERMINATE, y su grupo de Auto Scaling termina una instancia, se envía una notificación por correo electrónico. Este correo electrónico contiene los detalles de la instancia terminada, como el ID de instancia y el motivo por el que se terminó la instancia.

Las notificaciones son útiles para diseñar aplicaciones basadas en eventos. Si utiliza notificaciones para verificar que un recurso entra en un estado deseado, puede eliminar los sondeos de modo que no encuentre el error RequestLimitExceeded que a veces se produce con el sondeo.

AWS ofrece varias herramientas que puede utilizar para enviar notificaciones. Como alternativa, puede utilizar EventBridge y Amazon SNS para enviar notificaciones cuando los grupos de Auto Scaling lanzan o terminan instancias. En EventBridge, la regla describe los eventos que se le notifican. En Amazon SNS, en el tema se describe el tipo de notificación que recibe. Con esta opción, puede decidir si, en su lugar, ciertos eventos deben desencadenar una función Lambda. Para obtener más información, consulte Uso de EventBridge para gestionar eventos de Auto Scaling .

Notificaciones de SNS

Amazon EC2 Auto Scaling admite el envío de notificaciones de Amazon SNS cuando se producen los eventos siguientes.

Evento Descripción

autoscaling:EC2_INSTANCE_LAUNCH

Instancia lanzada correctamente

autoscaling:EC2_INSTANCE_LAUNCH_ERROR

Error al lanzar la instancia

autoscaling:EC2_INSTANCE_TERMINATE

Instancia terminada correctamente

autoscaling:EC2_INSTANCE_TERMINATE_ERROR

Error al terminar la instancia

El mensaje incluye la siguiente información:

  • Event: el evento.

  • AccountId: el ID de la cuenta de Amazon Web Services.

  • AutoScalingGroupName: el nombre del grupo de Auto Scaling.

  • AutoScalingGroupARN: el ARN del grupo de Auto Scaling.

  • EC2InstanceId: el ID de la instancia EC2.

Por ejemplo:

Service: AWS Auto Scaling Time: 2016-09-30T19:00:36.414Z RequestId: 4e6156f4-a9e2-4bda-a7fd-33f2ae528958 Event: autoscaling:EC2_INSTANCE_LAUNCH AccountId: 123456789012 AutoScalingGroupName: my-asg AutoScalingGroupARN: arn:aws:autoscaling:region:123456789012:autoScalingGroup... ActivityId: 4e6156f4-a9e2-4bda-a7fd-33f2ae528958 Description: Launching a new EC2 instance: i-0598c7d356eba48d7 Cause: At 2016-09-30T18:59:38Z a user request update of AutoScalingGroup constraints to ... StartTime: 2016-09-30T19:00:04.445Z EndTime: 2016-09-30T19:00:36.414Z StatusCode: InProgress StatusMessage: Progress: 50 EC2InstanceId: i-0598c7d356eba48d7 Details: {"Subnet ID":"subnet-id","Availability Zone":"zone"}

Configuración de notificaciones de Amazon SNS para Amazon EC2 Auto Scaling

Para utilizar Amazon SNS para enviar notificaciones por correo electrónico, primero debe crear un tema y, a continuación, suscribir sus direcciones de correo electrónico al tema.

Cree un tema de Amazon SNS.

Un tema de SNS es un punto de acceso lógico, un canal de comunicación que el grupo de Auto Scaling utiliza para enviar las notificaciones. Los temas se crean especificando un nombre para el tema.

Los nombres de tema creados deben cumplir los siguientes requisitos:

  • Deben tener entre 1 y 256 caracteres.

  • Deben contener letras ASCII en mayúsculas y minúsculas, números, guiones bajos o guiones.

Para obtener instrucciones, consulte el tema Creación de un tema de Amazon SNS en la Guía para desarrolladores de Amazon Simple Notification Service.

Suscripción al tema de Amazon SNS

Para recibir las notificaciones que su grupo de Auto Scaling envía al tema, debe suscribir un punto de enlace al tema. En este procedimiento, en Endpoint (Punto de enlace), especifique la dirección de correo electrónico donde desea recibir las notificaciones de Amazon EC2 Auto Scaling.

Para obtener más información, consulte el tema Suscripción a un tema de Amazon SNS en la Guía para desarrolladores de Amazon Simple Notification Service.

Confirmación de la suscripción a Amazon SNS

Amazon SNS envía un correo electrónico de confirmación a la dirección de correo electrónico que ha especificado en el paso anterior.

Asegúrese de abrir el correo electrónico de las notificaciones de AWS y de elegir el enlace para confirmar la suscripción antes de continuar en el siguiente paso.

Recibirá un mensaje de confirmación de AWS. Amazon SNS estará ahora configurado para recibir notificaciones y enviar la notificación como un email a la dirección especificada.

Configuración de un grupo de Auto Scaling para enviar notificaciones

Puede configurar su grupo de Auto Scaling para que envíe notificaciones a Amazon SNS cuando se produzca un evento de escalado, como el lanzamiento de instancias o la terminación de instancias. Amazon SNS envía una notificación con información acerca de las instancias a la dirección de correo electrónico que ha especificado.

Para configurar las notificaciones de Amazon SNS para el grupo de Auto Scaling (consola)

  1. Abra la consola de Amazon EC2 Auto Scaling en https://console.aws.amazon.com/ec2autoscaling/.

  2. Seleccione la casilla situada junto al grupo de Auto Scaling.

    Se abre un panel dividido en la parte inferior de la página, que muestra información sobre el grupo seleccionado.

  3. En la pestaña Activity (Actividad), seleccione Activity notifications (Notificaciones de actividad, Create notification (Crear notificación).

  4. En el panel Create notifications, proceda del modo siguiente:

    1. En SNS Topic (Tema de SNS), seleccione el tema de SNS.

    2. En Event types (Tipos de eventos), seleccione los eventos para los que va enviar notificaciones.

    3. Seleccione Create (Crear OpsItem).

Para configurar las notificaciones de Amazon SNS para el grupo de Auto Scaling (AWS CLI)

Use el siguiente comando put-notification-configuration.

aws autoscaling put-notification-configuration --auto-scaling-group-name my-asg --topic-arn arn --notification-types "autoscaling:EC2_INSTANCE_LAUNCH" "autoscaling:EC2_INSTANCE_TERMINATE"

Prueba de la notificación

Para generar una notificación para un evento de lanzamiento, actualice el grupo de Auto Scaling aumentando la capacidad deseada del grupo de Auto Scaling en 1. Usted recibe una notificación al cabo de unos minutos después de que se lance la instancia.

Para cambiar la capacidad deseada (consola)

  1. Abra la consola de Amazon EC2 Auto Scaling en https://console.aws.amazon.com/ec2autoscaling/.

  2. Seleccione la casilla situada junto al grupo de Auto Scaling.

    Se abre un panel dividido en la parte inferior de la página Auto Scaling groups (Grupos de Auto Scaling) que muestra información sobre el grupo seleccionado.

  3. En la pestañaDetails (Detalles) elija Group details (Detalles de grupo), Edit (Editar).

  4. En Desired capacity (Capacidad deseada), aumente el valor actual en 1. Si este valor supera el valor especificado en Maximum capacity (Capacidad máxima), también debe aumentar el valor de Maximum capacity (Capacidad máxima) en 1.

  5. Elija Update (Actualizar).

  6. Después de unos minutos, recibirá una notificación del evento. Si no necesita la instancia adicional que lanzó para esta prueba, puede reducir el valor Desired capacity (Capacidad deseada) en 1. Después de unos minutos, recibirá una notificación del evento.

Eliminación de la configuración de notificaciones

Puede eliminar la configuración de notificaciones de Amazon EC2 Auto Scaling si ya no se utiliza.

Para eliminar la configuración de notificaciones de Amazon EC2 Auto Scaling (consola)

  1. Abra la consola de Amazon EC2 Auto Scaling en https://console.aws.amazon.com/ec2autoscaling/.

  2. Seleccione el grupo de Auto Scaling.

  3. En la pestaña Activity (Actividad), seleccione la casilla situada junto a la notificación que desea eliminar y elija Actions (Acciones), Delete (Eliminar).

Para eliminar la configuración de notificaciones de Amazon EC2 Auto Scaling (AWS CLI)

Use el siguiente comando delete-notification-configuration.

aws autoscaling delete-notification-configuration --auto-scaling-group-name my-asg --topic-arn arn

Para obtener información sobre cómo eliminar el tema de Amazon SNS y todas las suscripciones asociadas a un grupo de Auto Scaling, consulte Eliminación de una suscripción y un tema de Amazon SNS en la Guía para desarrolladores de Amazon Simple Notification Service.