Ganchos do ciclo de vida do 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á.

Ganchos do ciclo de vida do Amazon EC2 Auto Scaling

O Amazon EC2 Auto Scaling oferece a capacidade de adicionar ganchos do ciclo de vida aos seus grupos do Auto Scaling. Esses ganchos permitem criar soluções que estejam ciente de eventos no ciclo de vida da instância do Auto Scaling e, em seguida, executar uma ação personalizada em instâncias quando ocorrer o evento de ciclo de vida correspondente. Um gancho do ciclo de vida fornece uma quantidade especificada de tempo (uma hora, por padrão) para esperar a ação completar antes que a instância faça a transição para o próximo estado.

Como exemplo do uso de ganchos do ciclo de vida com instâncias do Auto Scaling:

  • Quando ocorre um evento de aumento da escala na horizontal, sua instância recém-iniciada conclui a sequência de inicialização e faz a transição para um estado de espera. Enquanto a instância está em um estado de espera, ela executa um script para baixar e instalar os pacotes de software necessários para sua aplicação, garantindo que sua instância esteja totalmente pronta antes de começar a receber tráfego. Quando o script terminar de instalar o software, ele envia o comando complete-lifecycle-action para continuar.

  • Quando ocorre um evento de escalabilidade, um gancho de ciclo de vida pausa a instância antes que ela seja encerrada e envia uma notificação usando a Amazon. EventBridge Enquanto a instância estiver em estado de espera, você pode invocar uma AWS Lambda função ou conectar-se à instância para baixar registros ou outros dados antes que a instância seja totalmente encerrada.

Um uso popular de ganchos do ciclo de vida é controlar quando as instâncias são registradas com o Elastic Load Balancing. Ao adicionar um gancho do ciclo de vida de execução ao seu grupo do Auto Scaling, você pode garantir que seus scripts de bootstrap foram completados com êxito e que as aplicações nas instâncias estejam prontas para aceitar tráfego antes de serem registradas no balanceador de carga no final do gancho do ciclo de vida.

Disponibilidade de ganchos do ciclo de vida

A tabela a seguir lista os ganchos do ciclo de vida disponíveis para vários cenários.

Evento Início ou término da instância¹ Maximum Instance Lifetime (Tempo de vida máximo da instância): instâncias de substituição Instance Refresh (Atualização ds instância): instâncias de substituição Capacity Rebalancing (Rebalanceamento de capacidade): instâncias de substituição Warm Pools (Grupos de alta atividade): instâncias entrando e saindo do grupo de alta atividade
Início de instâncias
Término de instâncias

¹ Aplica-se a todos as execuções e encerramentos, sejam eles iniciados automática ou manualmente, por exemplo, quando você chama as operações SetDesiredCapacity ou TerminateInstanceInAutoScalingGroup. Não se aplica quando você anexa ou desvincula instâncias, move instâncias dentro e fora do modo de espera ou exclui o grupo com a opção force delete (forçar exclusão).

Considerações e limitações dos ganchos do ciclo de vida

Ao trabalhar com hooks do ciclo de vida, tenha em mente as seguintes notas e limitações:

  • O Amazon EC2 Auto Scaling fornece seu próprio ciclo de vida para ajudar no gerenciamento de grupos do Auto Scaling. Esse ciclo de vida é diferente do de outras instâncias do EC2. Para ter mais informações, consulte Ciclo de vida das instâncias do Amazon EC2 Auto Scaling. As instâncias em um grupo de alta atividade também têm seu próprio ciclo de vida, conforme descrito em Transições de estado do ciclo de vida para instâncias em um grupo de alta atividade.

  • Você pode usar ganchos do ciclo de vida com instâncias spot, mas um gancho do ciclo de vida não impede que uma instância seja terminada em caso de a capacidade não estar mais disponível, o que pode acontecer a qualquer momento, com um aviso de interrupção de dois minutos. Para obter mais informações, consulte Interrupção de instâncias spot no Manual do usuário do Amazon EC2 para instâncias do Linux. No entanto, você pode habilitar o rebalanceamento de capacidade para substituir proativamente as instâncias spot que receberam uma recomendação de rebalanceamento do Amazon EC2 Spot Service, um sinal que é enviado quando uma instância spot está em risco elevado de interrupção. Para ter mais informações, consulte Usar o rebalanceamento de capacidade para lidar com interrupções de spot do Amazon EC2.

  • As instâncias podem permanecer em um estado de espera por um determinado período de tempo. O tempo limite padrão para um gancho do ciclo de vida é de uma hora (tempo limite de pulsação). Também há um tempo limite global que especifica a quantidade máxima de tempo que você pode manter uma instância em um estado de espera. O tempo limite global é de 48 horas ou 100 vezes o tempo limite de pulsação, o que for mais curto.

  • O resultado do hook do ciclo de vida pode ser abandonar ou continuar. Se uma instância estiver sendo executada, continue indica que suas ações foram bem-sucedidas e que o Amazon EC2 Auto Scaling pode colocar a instância em serviço. Caso contrário, abandonar indica que suas ações personalizadas não tiveram êxito e que podemos encerrar e substituir a instância. Se uma instância estiver sendo encerrada, abandone e continue permita que a instância seja encerrada. No entanto, abandon (abandonar) interrompe quaisquer ações restantes, como outros ganchos do ciclo de vida, e continue (continuar) permite que quaisquer outros ganchos de ciclo de vida sejam concluídos.

  • O Amazon EC2 Auto Scaling limita a taxa na qual permite que as instâncias sejam iniciadas se os ganchos do ciclo de vida estiverem falhando de maneira consistente. Portanto, verifique e corrija erros permanentes em suas ações de ciclo de vida.

  • Criar e atualizar ganchos de ciclo de vida usando o AWS CLI, AWS CloudFormation, ou um SDK fornece opções não disponíveis ao criar um gancho de ciclo de vida a partir do. AWS Management Console Por exemplo, o campo para especificar o ARN de um tópico do SNS ou fila do SQS não aparece no console, porque o Amazon EC2 Auto Scaling já envia eventos para a Amazon. EventBridge Esses eventos podem ser filtrados e redirecionados para AWS serviços como Lambda, Amazon SNS e Amazon SQS, conforme necessário.

  • Você pode adicionar vários ganchos de ciclo de vida a um grupo do Auto Scaling enquanto o cria, chamando a CreateAutoScalingGroupAPI usando o AWS CLI,, ou um SDK. AWS CloudFormation No entanto, cada gancho deve ter o mesmo destino de notificação e função do IAM, se esses elementos forem especificados. Para criar ganchos de ciclo de vida com diferentes alvos de notificação e funções diferentes, crie os ganchos de ciclo de vida um por vez em chamadas separadas para a API. PutLifecycleHook

  • Se você adicionar um hook do ciclo de vida para a execução da instância, o período de carência da verificação de integridade será iniciado assim que a instância atingir o estadoInService. Para obter mais informações, consulte Definir um período de carência da verificação de integridade para um grupo do Auto Scaling.

Considerações sobre dimensionamento
  • As políticas de escalabilidade dinâmica aumentam e diminuem em resposta a dados CloudWatch métricos, como CPU e E/S de rede, que são agregados em várias instâncias. Quando há uma expansão, o Amazon EC2 Auto Scaling não conta imediatamente uma nova instância para as métricas agregadas de instância do grupo do Auto Scaling. Ele espera até que a instância atinja o estado InService e o aquecimento da instância seja concluído. Para obter mais informações, consulte Considerações sobre o desempenho de escalabilidade o tópico de aquecimento da instância padrão.

  • Na redução da escala na horizontal, talvez as métricas agregadas da instância não reflitam instantaneamente a remoção de uma instância de encerramento. A instância de encerramento para de contabilizar as métricas agregadas de instância do grupo pouco após o início do fluxo de trabalho de encerramento do Amazon EC2 Auto Scaling.

  • Na maioria dos casos, quando os hooks do ciclo de vida são invocados, as atividades de escalabilidade devido a políticas de escalabilidade simples são pausadas até que as ações do ciclo de vida sejam concluídas e o período de esfriamento expire. A definição de um intervalo longo para o período de desaquecimento significa que a retomada da escalabilidade levará mais tempo. Para obter mais informações, consulte hooks do ciclo de vida podem causar mais atrasos o tópico de resfriamento. Em geral, não recomendamos o uso de políticas de escalabilidade simples se você puder usar políticas de escalabilidade por etapas ou rastreamento de metas.

Para ver um vídeo de introdução, consulte AWS re:Invent 2018: Gerenciamento de capacidade facilitado com o Amazon EC2 Auto Scaling ativado. YouTube

Fornecemos alguns trechos de modelos JSON e YAML que você pode usar para entender como declarar ganchos de ciclo de vida em seus modelos de pilha. AWS CloudFormation Para obter mais informações, consulte a AWS::AutoScaling::LifecycleHookreferência no Guia AWS CloudFormation do usuário.

Você também pode visitar nosso GitHubrepositório para baixar exemplos de modelos e scripts de dados do usuário para ganchos de ciclo de vida.

Para obter exemplos do uso de hooks do ciclo de vida, consulte as seguintes postagens no blog.