Receber notificações do Amazon SNS quando o grupo do Auto Scaling escala - Amazon EC2 Auto Scaling

Receber notificações do Amazon SNS quando o grupo do Auto Scaling escala

Você poderá receber notificações quando o Amazon EC2 Auto Scaling iniciar ou terminar instâncias do EC2 em seu grupo do Auto Scaling. Gerencie notificações usando o Amazon Simple Notification Service (Amazon SNS).

O Amazon SNS coordena e gerencia a entrega ou o envio de notificações a endpoints ou clientes assinantes. O Amazon SNS oferece toda uma variedade de opções de notificação, incluindo a capacidade de entregar notificações como HTTP ou HTTPS POST, e-mail (SMTP, texto sem formatação ou no formato JSON) ou como uma mensagem postada em uma fila do Amazon SQS, o que permite a você manipular essas notificações de forma programática. Para obter mais informações, consulte o Guia do desenvolvedor do Amazon Simple Notification Service.

Por exemplo, se você configurar o grupo do Auto Scaling para usar o tipo de notificação autoscaling: EC2_INSTANCE_TERMINATE e seu grupo do Auto Scaling terminar uma instância, ele enviará uma notificação por e-mail. Esse e-mail contém os detalhes da instância encerrada, como o ID da instância e o motivo pelo qual a instância foi encerrada.

As notificações são úteis para desenvolver aplicações orientadas por eventos. Se usar notificações para verificar se um recurso entra em um estado desejado, você poderá eliminar sondagens e não encontrar o erro RequestLimitExceeded que às vezes resulta da sondagem.

A AWS fornece várias ferramentas que você pode usar para enviar notificações. Como alternativa, você pode usar o EventBridge e o Amazon SNS para enviar notificações quando seus grupos do Auto Scaling iniciam ou terminam instâncias. No EventBridge, a regra descreve sobre quais eventos você é notificado. No Amazon SNS, o tópico descreve que tipo de notificação você recebe. Usando esta opção, você pode decidir se determinados eventos devem acionar uma função do Lambda. Para mais informações, consulte Usar o EventBridge para lidar com eventos do Auto Scaling.

Notificações do SNS

O Amazon EC2 Auto Scaling oferece suporte ao envio de notificações do Amazon SNS quando os seguintes eventos ocorrem.

Evento Descrição

autoscaling:EC2_INSTANCE_LAUNCH

Ativação de instância bem-sucedida

autoscaling:EC2_INSTANCE_LAUNCH_ERROR

Falha na ativação da instância

autoscaling:EC2_INSTANCE_TERMINATE

Encerramento da instância bem-sucedido

autoscaling:EC2_INSTANCE_TERMINATE_ERROR

Falha no encerramento da instância

A mensagem inclui as seguintes informações:

  • Event — O evento.

  • AccountId: o ID da conta do Amazon Web Services.

  • AutoScalingGroupName: o nome do grupo do Auto Scaling.

  • AutoScalingGroupARN: o ARN do grupo do Auto Scaling.

  • EC2InstanceId — A ID da instância EC2.

Por exemplo:

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"}

Configurar notificações do Amazon SNS para o Amazon EC2 Auto Scaling

Para usar o Amazon SNS para enviar notificações por e-mail, você deve primeiro criar um tópico e, em seguida, assinar seus endereços de e-mail para o tópico.

Criar um tópico do Amazon SNS

Um tópico do SNS é um ponto de acesso lógico, um canal de comunicação que seu grupo do Auto Scaling usa para enviar notificações. Você cria um tópico especificando um nome para o tópico.

Quando você cria o nome de um tópico, ele deve atender aos seguintes requisitos:

  • Ter entre 1 e 256 caracteres

  • Conter letras maiúsculas e minúsculas ASCIIs, números, sublinhados ou hífens

Para obter mais informações, consulte Criação de um tópico do Amazon SNS no Guia do desenvolvedor do Amazon Simple Notification Service.

Assinar o tópico do Amazon SNS

Para receber as notificações que seu grupo do Auto Scaling envia ao tópico, você deve assinar um endpoint para o tópico. Neste procedimento, em Endpoint, especifique o endereço de e-mail no qual você deseja receber as notificações do Amazon EC2 Auto Scaling.

Para obter instruções, consulte Assinatura de um tópico do Amazon SNS no Guia do desenvolvedor do Amazon Simple Notification Service.

Confirmar sua assinatura do Amazon SNS

O Amazon SNS envia um e-mail de confirmação para o endereço de e-mail especificado na etapa anterior.

Certifique-se de abrir o e-mail em AWS Notifications (Notificações) e escolher o link para confirmar a assinatura antes de prosseguir para a próxima etapa.

Você receberá uma mensagem de confirmação da AWS. O Amazon SNS agora está configurado para receber notificações e enviar a notificação como um e-mail para o endereço de e-mail que você especificou.

Configurar o grupo do Auto Scaling para enviar notificações

Você pode configurar seu grupo do Auto Scaling para enviar notificações para o Amazon SNS quando um evento de escalabilidade ocorre, como lançamento ou término de instâncias. O Amazon SNS envia uma notificação com informações sobre as instâncias para o endereço de e-mail que você especificou.

Para configurar notificações do Amazon SNS para o seu grupo do Auto Scaling (console)

  1. Abra o console do Amazon EC2 em https://console.aws.amazon.com/ec2/ e escolha grupos do Auto Scaling no painel de navegação.

  2. Marque a caixa de seleção ao lado do seu grupo do Auto Scaling.

    Um painel dividido é aberto na parte inferior da página, mostrando informações sobre o grupo selecionado.

  3. Na guia Activity (Atividade), escolha Activity notifications (Notificações de atividades), Create notification (Criar notificação).

  4. No painel Criar notificações, faça o seguinte:

    1. Em SNS Topic (Tópico do SNS), selecione o tópico do SNS.

    2. Em Event types (Tipos de eventos), selecione os eventos sobre os quais deseja enviar notificações.

    3. Escolha Create (Criar OpsItem).

Para configurar notificações do Amazon SNS para o seu grupo do Auto Scaling (AWS CLI)

Use o comando put-notification-configuration a seguir.

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

Testar a notificação

Para gerar uma notificação para um evento de lançamento, atualize o grupo do Auto Scaling aumentando a capacidade desejada do grupo do Auto Scaling em 1. Você recebe uma notificação dentro de alguns minutos após a execução da instância.

Para alterar a capacidade desejada (console)

  1. Abra o console do Amazon EC2 em https://console.aws.amazon.com/ec2/ e escolha grupos do Auto Scaling no painel de navegação.

  2. Marque a caixa de seleção ao lado do seu grupo do Auto Scaling.

    Um painel dividido é aberto na parte inferior da página Grupos do Auto Scaling mostrando informações sobre o grupo selecionado.

  3. Na guia Detalhes, escolha Detalhes do grupo, Editar.

  4. Em Desired capacity (Capacidade desejada), aumente o valor atual em 1. Se esse valor exceder Maximum capacity (Capacidade máxima), também será necessário aumentar o valor Maximum capacity (Capacidade máxima) em 1.

  5. Escolha Update (Atualizar).

  6. Depois de alguns minutos, você receberá uma notificação para o evento. Se não for necessário ter a instância adicional executada para este teste, será possível reduzir Desired capacity (Capacidade desejada) em 1. Depois de alguns minutos, você receberá uma notificação para o evento.

Excluir a configuração da notificação

Você poderá excluir sua configuração de notificação do Amazon EC2 Auto Scaling se ela não estiver mais sendo usada.

Para excluir a configuração de notificação do Amazon EC2 Auto Scaling (console)

  1. Abra o console do Amazon EC2 em https://console.aws.amazon.com/ec2/ e escolha grupos do Auto Scaling no painel de navegação.

  2. Selecione seu grupo do Auto Scaling.

  3. Na guia Activity (Atividade), marque a caixa de seleção ao lado da notificação que deseja excluir e escolha Actions (Ações), Delete (Excluir).

Para excluir a configuração de notificação do Amazon EC2 Auto Scaling (AWS CLI)

Use o seguinte comando delete-notification-configuration:

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

Para obter informações sobre como excluir o tópico do Amazon SNS e todas as assinaturas associadas ao seu grupo do Auto Scaling, consulte Exclusão de assinaturas e tópicos do Amazon SNS no Guia do desenvolvedor do Amazon Simple Notification Service.