Use ganchos de ciclo de vida com uma piscina aquecida no grupo 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á.

Use ganchos de ciclo de vida com uma piscina aquecida no grupo Auto Scaling

As instâncias em um grupo de alta atividade mantêm seu próprio ciclo de vida independente para ajudar você a criar a ação personalizada apropriada para cada transição. Esse ciclo de vida foi desenvolvido para ajudar você a invocar ações em um serviço-alvo (por exemplo, uma função do Lambda) enquanto uma instância ainda está sendo inicializada e antes de ser colocada em serviço.

nota

As API operações que você usa para adicionar e gerenciar ganchos do ciclo de vida e concluir as ações do ciclo de vida não são alteradas. Somente o ciclo de vida da instância é alterado.

Para obter mais informações sobre a adição de um gancho do ciclo de vida, consulte Adicione ganchos de ciclo de vida ao seu grupo de Auto Scaling. Para obter mais informações sobre a conclusão de uma ação do ciclo de vida, consulte Conclua uma ação de ciclo de vida em um grupo de Auto Scaling.

Para instâncias que entram no grupo de alta atividade, talvez você precise de um gancho do ciclo de vida por um dos seguintes motivos:

  • Você quer iniciar EC2 instâncias a partir de uma AMI que demore muito para ser inicializada.

  • Você quer executar scripts de dados do usuário para inicializar as EC2 instâncias.

Para instâncias que saem do grupo de alta atividade, talvez você precise de um gancho do ciclo de vida por um dos seguintes motivos:

  • Você pode usar algum tempo extra para preparar as EC2 instâncias para uso. Por exemplo, você pode ter serviços que devem ser iniciados quando uma instância é reiniciada antes que a aplicação possa funcionar corretamente.

  • Você deseja preencher previamente os dados de cache para que um novo servidor não seja iniciado com um cache vazio.

  • Você deseja registrar novas instâncias como instâncias gerenciadas com seu serviço de gerenciamento de configuração.

Transições de estado do ciclo de vida para instâncias em um grupo de alta atividade

Uma instância do Auto Scaling pode fazer a transição por muitos estados como parte de seu ciclo de vida.

O diagrama a seguir mostra a transição entre estados do Auto Scaling quando você usa um grupo de alta atividade:

As transições de estado do ciclo de vida para instâncias em um grupo de alta atividade.

¹ Esse estado varia de acordo com a configuração do estado do grupo de alta atividade. Se o estado do grupo estiver definido como Running, então esse estado será Warmed:Running, em vez disso. Se o estado do grupo estiver definido como Hibernated, então esse estado será Warmed:Hibernated, em vez disso.

Ao adicionar ganchos do ciclo de vida, considere o seguinte:

  • Quando um gancho do ciclo de vida é configurado para a ação autoscaling:EC2_INSTANCE_LAUNCHING de ciclo de vida, uma instância recém-iniciada faz uma primeira pausa para realizar uma ação personalizada quando atinge o estado Warmed:Pending:Wait e, novamente, quando a instância for reiniciada e atingir o estado Pending:Wait.

  • Quando um gancho do ciclo de vida é configurado para a ação EC2_INSTANCE_TERMINATING de ciclo de vida, uma instância em encerramento faz uma pausa para realizar uma ação personalizada quando atinge o estado Terminating:Wait. No entanto, se você especificar uma política de reutilização de instâncias para retornar instâncias ao grupo de alta atividade na operação de redução da escala horizontalmente em vez de encerrá-las, uma instância que estiver retornando ao grupo de alta atividade fará uma pausa para realizar uma ação personalizada no estado Warmed:Pending:Wait para a ação de ciclo de vida EC2_INSTANCE_TERMINATING.

  • Se a demanda em seu aplicativo esgotar o pool aquecido, o Amazon EC2 Auto Scaling poderá iniciar instâncias diretamente no grupo Auto Scaling, desde que o grupo ainda não esteja em sua capacidade máxima. Se as instâncias forem executadas diretamente no grupo, elas só serão pausadas para realizar uma ação personalizada no estado Pending:Wait.

  • Para controlar por quanto tempo uma instância permanece em um estado de espera antes de fazer a transição para o próximo estado, configure sua ação personalizada para usar o comando complete-lifecycle-action. Com os ganchos do ciclo de vida, as instâncias permanecem em um estado de espera até que você notifique o Amazon EC2 Auto Scaling de que a ação do ciclo de vida especificada foi concluída ou até que o período de tempo limite termine (uma hora por padrão).

A seguir, um resumo do fluxo para um evento de aumento da escala na horizontal.

Um diagrama de fluxo de aumento da escala na horizontal.

Quando as instâncias atingem um estado de espera, o Amazon EC2 Auto Scaling envia uma notificação. Exemplos dessas notificações estão disponíveis na EventBridge seção deste guia. Para obter mais informações, consulte Exemplos de eventos e padrões de grupo de aquecimento.

Destinos de notificação compatíveis

O Amazon EC2 Auto Scaling fornece suporte para definir qualquer um dos seguintes como alvos de notificação para notificações de ciclo de vida:

  • EventBridge regras

  • SNSTópicos da Amazon

  • SQSFilas da Amazon

Importante

Lembre-se de que, se você tiver um script de dados do usuário (cloud-init) no modelo de inicialização ou na configuração de inicialização que configura as instâncias quando elas são iniciadas, você não precisará receber notificações para realizar ações personalizadas nas instâncias que estão sendo iniciadas ou reiniciadas.

As seções a seguir contêm links para a documentação que descreve como configurar destinos de notificação:

EventBridge regras: para executar código quando o Amazon EC2 Auto Scaling coloca uma instância em estado de espera, você pode criar uma EventBridge regra e especificar uma função Lambda como destino. Para invocar diferentes funções do Lambda com base em notificações de ciclo de vida diferentes, você pode criar várias regras e associar cada regra a um padrão de evento específico e função do Lambda. Para obter mais informações, consulte Crie EventBridge regras para eventos em piscinas aquecidas.

SNSTópicos da Amazon: para receber uma notificação quando uma instância é colocada em estado de espera, você cria um SNS tópico da Amazon e depois configura a filtragem de SNS mensagens da Amazon para entregar notificações de ciclo de vida de forma diferente com base em um atributo de mensagem. Para obter mais informações, consulte Receba notificações usando o Amazon SNS.

SQSFilas da Amazon: para configurar um ponto de entrega para notificações de ciclo de vida em que um consumidor relevante possa retirá-las e processá-las, você pode criar uma fila da Amazon e um consumidor de SQS fila que processa as mensagens da fila. SQS Se você quiser que o consumidor da fila processe notificações de ciclo de vida de forma diferente com base em um atributo da mensagem, você também deverá configurar o consumidor da fila para analisar a mensagem e, em seguida, agir sobre a mensagem quando um atributo específico corresponder ao valor desejado. Para obter mais informações, consulte Receba notificações usando o Amazon SQS.