Adicione ganchos de ciclo de vida ao seu grupo de 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á.

Adicione ganchos de ciclo de vida ao seu grupo de Auto Scaling

Para colocar suas instâncias do Auto Scaling em um estado de espera e executar ações personalizadas nelas, você pode adicionar ganchos do ciclo de vida ao seu grupo do Auto Scaling. Ações personalizadas são executadas à medida que as instâncias são iniciadas ou antes de serem terminadas. As instâncias permanecem em um estado de espera até que você conclua a ação do ciclo de vida, ou até o período de tempo limite terminar.

Depois de criar um grupo de Auto Scaling a partir do AWS Management Console, você pode adicionar um ou mais ganchos de ciclo de vida a ele, até um total de 50 ganchos de ciclo de vida. Você também pode usar o AWS CLI, AWS CloudFormation, ou um SDK para adicionar ganchos de ciclo de vida a um grupo de Auto Scaling ao criá-lo.

Por padrão, quando você adiciona um gancho de ciclo de vida no console, o Amazon EC2 Auto Scaling envia notificações de eventos de ciclo de vida para a Amazon. EventBridge Usar EventBridge ou usar um script de dados do usuário é uma prática recomendada. Para criar um gancho de ciclo de vida que envie notificações diretamente para o Amazon SNS ou o Amazon SQS, você pode usar put-lifecycle-hooko comando, conforme mostrado nos exemplos deste tópico.

Adicionar ganchos do ciclo de vida (console)

Siga estas etapas para adicionar ganchos do ciclo de vida ao seu grupo do Auto Scaling. Para adicionar ganchos do ciclo de vida para expansão (inicialização de instâncias) e expansão (terminação de instâncias ou retorno para um pool quente), você deve criar dois hooks separados.

Antes de começar, confirme se você configurou uma ação personalizada, conforme necessário, conforme descrito em Preparar para adicionar um gancho do ciclo de vida a um grupo do Auto Scaling.

Para adicionar um gancho do ciclo de vida para expansão
  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.

  3. Na guia Instance management (Gerenciamento de instâncias), em Lifecycle hooks (Ganchos de ciclo de vida), escolha Create lifecycle hook (Criar gancho de ciclo de vida).

  4. Para definir um gancho do ciclo de vida para expansão (execução de instâncias), faça o seguinte:

    1. Em Lifecycle Hook Name (Nome do gancho do ciclo de vida), especifique um nome para o gancho do ciclo de vida.

    2. Em Lifecycle transition (Transição do ciclo de vida), escolha Instance launch (Início da instância).

    3. Para Tempo limite de pulsação, especifique o tempo, em segundos, para que as instâncias permaneçam em estado de espera durante a expansão antes que o hook expire. O intervalo é de 30 a 7200 segundos. Definir um longo período de tempo limite fornece mais tempo para a conclusão da sua ação personalizada. Em seguida, se você terminar antes que o período de tempo limite termine, envie o complete-lifecycle-actioncomando para permitir que a instância prossiga para o próximo estado.

    4. Em Resultado padrão, especifique a ação a ser adotada mediante o término do tempo limite do gancho do ciclo de vida ou quando houver uma falha inesperada. Você pode escolher CONTINUAR ou ABANDONAR.

      • Se você escolher CONTINUAR, o grupo do Auto Scaling poderá prosseguir com qualquer outro gancho do ciclo de vida e depois colocar a instância em serviço.

      • Se você escolher ABANDON, o grupo do Auto Scaling interromperá todas as ações restantes e encerrará a instância imediatamente.

    5. (Opcional) Em Metadados de notificação, especifique outras informações que você deseja incluir quando o Amazon EC2 Auto Scaling enviar uma mensagem ao destino da notificação.

  5. Escolha Criar.

Para adicionar um gancho do ciclo de vida para redução
  1. Escolha Criar hook do ciclo de vida para continuar de onde você parou depois de criar um gancho do ciclo de vida para expansão.

  2. Para definir um gancho do ciclo de vida para redução (instâncias que terminam ou retornam a um grupo de aquecimento), faça o seguinte:

    1. Em Lifecycle Hook Name (Nome do gancho do ciclo de vida), especifique um nome para o gancho do ciclo de vida.

    2. Em Lifecycle transition (Transição do ciclo de vida), escolha Instance terminate (Término da instância).

    3. Para Tempo limite de pulsação, especifique o tempo, em segundos, para que as instâncias permaneçam em estado de espera durante a expansão antes que o hook expire. Recomendamos um curto período de tempo limite de 30 até 120 segundos, dependendo de quanto tempo você precisa para realizar qualquer tarefa final, como extrair registros do EC2. CloudWatch

    4. Em Default result (Resultado padrão), especifique a ação que o grupo do Auto Scaling executa quando o tempo limite se esgota ou quando há uma falha inesperada. ABANDON (ABANDONAR) e CONTINUE (CONTINUAR) permitem que a instância termine.

      • Se você escolher CONTINUE (CONTINUAR), o grupo do Auto Scaling poderá prosseguir com todas as ações restantes, como outros ganchos do ciclo de vida, antes do término.

      • Se você escolher ABANDON, o grupo do Auto Scaling encerrará a instância imediatamente.

    5. (Opcional) Em Metadados de notificação, especifique outras informações que você deseja incluir quando o Amazon EC2 Auto Scaling enviar uma mensagem ao destino da notificação.

  3. Escolha Criar.

Adicionar ganchos do ciclo de vida (AWS CLI)

Crie e atualize ganchos do ciclo de vida usando o comando. put-lifecycle-hook

Para executar uma ação de expansão, use o seguinte comando:

aws autoscaling put-lifecycle-hook --lifecycle-hook-name my-launch-hook \ --auto-scaling-group-name my-asg \ --lifecycle-transition autoscaling:EC2_INSTANCE_LAUNCHING

Para executar uma ação de redução, use o comando a seguir:

aws autoscaling put-lifecycle-hook --lifecycle-hook-name my-termination-hook \ --auto-scaling-group-name my-asg \ --lifecycle-transition autoscaling:EC2_INSTANCE_TERMINATING

Para receber notificações usando o Amazon SNS ou o Amazon SQS, adicione as opções --notification-target-arn e --role-arn.

O exemplo a seguir cria um gancho do ciclo de vida que especifica um tópico do SNS chamadomy-sns-topic como destino de notificação.

aws autoscaling put-lifecycle-hook --lifecycle-hook-name my-termination-hook \ --auto-scaling-group-name my-asg \ --lifecycle-transition autoscaling:EC2_INSTANCE_TERMINATING \ --notification-target-arn arn:aws:sns:region:123456789012:my-sns-topic \ --role-arn arn:aws:iam::123456789012:role/my-notification-role

O tópico recebe uma notificação de teste com o seguinte par de chave/valor:

"Event": "autoscaling:TEST_NOTIFICATION"

Por padrão, o put-lifecycle-hookcomando cria um gancho de ciclo de vida com um tempo limite de pulsação de 3600 segundos (uma hora).

Para alterar o tempo limite de pulsação de um gancho existente do ciclo de vida, adicione a opção --heartbeat-timeout, conforme exibido no exemplo a seguir.

aws autoscaling put-lifecycle-hook --lifecycle-hook-name my-termination-hook \ --auto-scaling-group-name my-asg --heartbeat-timeout 120

Se uma instância já estiver em estado de espera, você pode evitar que o gancho do ciclo de vida atinja o tempo limite gravando uma pulsação usando o comando CLI record-lifecycle-action-heartbeat. Isso estende o tempo limite pelo valor especificado quando você criou o gancho de ciclo de vida. Se você terminar antes do término do período de tempo limite, poderá enviar o comando da complete-lifecycle-actionCLI para permitir que a instância prossiga para o próximo estado. Para ter mais informações e exemplos, consulte Conclua uma ação de ciclo de vida em um grupo de Auto Scaling.