Opções de notificação do Amazon SNS para o Amazon EC2 Auto Scaling - Amazon EC2 Auto Scaling

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Opções de notificação do Amazon SNS para o Amazon EC2 Auto Scaling

Você pode configurar seu grupo de Auto Scaling para notificá-lo sobre eventos importantes que afetam seu aplicativo. Com as notificações, você também pode eliminar a pesquisa e não encontrará o RequestLimitExceeded erro que às vezes resulta da pesquisa.

Há duas maneiras de receber notificações sobre o Amazon EC2 Auto Scaling:

  • Amazon Simple Notification Service — O Amazon SNS pode notificá-lo quando seu grupo de Auto Scaling inicia ou encerra instâncias. Só é possível ativar e desativar notificações do Amazon SNS. Para ter mais informações, consulte Amazon SNS e Amazon EC2 Auto Scaling.

  • Amazon EventBridge — EventBridge fornece notificações mais avançadas, orientadas por eventos, de acordo com critérios específicos e enviadas para uma variedade de destinos, incluindo o Amazon SNS. EventBridge também pode monitorar uma variedade maior de eventos do Auto Scaling para um monitoramento mais preciso. Para ter mais informações, consulte Usar o EventBridge para lidar com eventos do Auto Scaling.

Você também pode realizar uma ação personalizada quando uma instância entra em um estado pendente durante a inicialização ou o encerramento usando ganchos e serviços de ciclo de vida, como Amazon EventBridge SNS e Amazon SQS. Os ganchos de ciclo de vida também podem fornecer tempo extra para que uma nova instância conclua um script especificado nos dados do usuário antes que o Amazon EC2 Auto Scaling adicione a instância ao grupo. Para ter mais informações, consulte Ganchos do ciclo de vida do Amazon EC2 Auto Scaling.

Amazon SNS e Amazon EC2 Auto Scaling

Esta seção mostra como usar o Amazon SNS para monitorar quando seu grupo de Auto Scaling inicia ou encerra instâncias.

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.

Observe que, à medida que o Amazon EC2 Auto Scaling adiciona ou remove instâncias do grupo, as notificações sobre essas alterações são enviadas para você, com uma notificação enviada por instância. No entanto, a entrega dessas notificações é feita com base no melhor esforço, e suas instâncias ainda podem falhar após a notificação inicial, por exemplo, se uma verificação de saúde posterior falhar. Portanto, mesmo que o Amazon EC2 Auto Scaling notifique você no início, uma instância ainda pode falhar posteriormente. Observe que você pode configurar quanto tempo depois de iniciar uma instância o Amazon EC2 Auto Scaling espera antes de realizar a primeira verificação de saúde. Para ter mais informações, consulte Definir um período de carência da verificação de integridade para um grupo do Auto Scaling.

Para obter mais informações sobre o Amazon SNS em geral, consulte o Guia do desenvolvedor do Amazon Simple Notification Service.

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"} Origin: AutoScalingGroup Destination: EC2

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.

Crie 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 de. 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 Criar.

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

Use o seguinte 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"

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 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.

Política de chaves para um tópico do Amazon SNS criptografado

O tópico do Amazon SNS que você especificar pode ser criptografado com uma chave gerenciada pelo cliente criada com o AWS Key Management Service. Para dar permissão ao Amazon EC2 Auto Scaling para publicar em tópicos criptografados, você deve primeiro criar sua chave KMS e depois adicionar a seguinte declaração à política da chave KMS. Substitua o ARN de exemplo pelo ARN da função apropriada vinculada ao serviço que tem permissão de acesso à chave. Para obter mais informações, consulte Configurar AWS KMS permissões no Guia do desenvolvedor do Amazon Simple Notification Service.

Neste exemplo, a declaração de política dá à função vinculada ao serviço denominada AWSServiceRoleForAutoScalingpermissões para usar a chave gerenciada pelo cliente. Para saber mais sobre a função vinculada ao serviço do Amazon EC2 Auto Scaling, consulte Funções vinculadas ao serviço do Amazon EC2 Auto Scaling.

{ "Sid": "Allow service-linked role use of the customer managed key", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789012:role/aws-service-role/autoscaling.amazonaws.com/AWSServiceRoleForAutoScaling" }, "Action": [ "kms:GenerateDataKey*", "kms:Decrypt" ], "Resource": "*" }

As chaves de condição de aws:SourceArn e aws:SourceAccount não são suportadas em políticas de chaves que permitem que o Amazon EC2 Auto Scaling publique em tópicos criptografados.