Recuperar o estado de destino do ciclo de vida por meio de metadados de instância - 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á.

Recuperar o estado de destino do ciclo de vida por meio de metadados de instância

Cada instância do Auto Scaling que você inicia passa por vários estados do ciclo de vida. Para invocar ações personalizadas de dentro de uma instância que atuem em transições específicas de estado do ciclo de vida, você deve recuperar o estado do ciclo de vida de destino por meio de metadados da instância.

Por exemplo, você pode precisar de um mecanismo para detectar o encerramento da instância de dentro da instância para executar algum código na instância antes que ela seja encerrada. Você pode fazer isso escrevendo um código que pesquise o estado do ciclo de vida de uma instância diretamente da instância. Em seguida, será possível adicionar um gancho do ciclo de vida ao grupo do Auto Scaling para manter a instância em execução até que seu código envie o comando complete-lifecycle-action para continuar.

O ciclo de vida de instância do Auto Scaling tem dois estados estáveis primários (InService e Terminated) e dois estados estáveis paralelos (Detached e Standby). Se você usar o grupo de alta atividade, o ciclo de vida tem mais quatro estados estáveis (Warmed:Hibernated, Warmed:Running, Warmed:Stopped e Warmed:Terminated).

Quando uma instância se prepara para fazer a transição para um dos estados estáveis anteriores, o Amazon EC2 Auto Scaling atualiza o valor do item de metadados autoscaling/target-lifecycle-state da instância. Para obter o estado do ciclo de vida de destino na instância, você deve usar o Serviço de Metadados da Instância para recuperá-lo dos metadados da instância.

nota

Os metadados da instância são dados sobre uma instância do Amazon EC2 que as aplicações podem usar para consultar informações de instância. O Instance Metadata Service é um componente na instância que o código local usa para acessar os metadados da instância. O código local pode incluir scripts de dados de usuário ou aplicações em execução na instância.

O código local pode acessar metadados de instância de uma instância em execução usando um de dois métodos: Instance Metadata Service Version 1 (IMDSv1 – Serviço de metadados de instância versão 1) ou Instance Metadata Service Version 2 (IMDSv2 – Serviço de metadados de instância versão 2). O IMDSv2 usa solicitações orientadas a sessão e mitiga vários tipos de vulnerabilidades que podem ser usadas para tentar ganhar acesso aos metadados de instância. Para obter detalhes sobre esses dois métodos, consulte Usar o IMDSv2 no Guia do usuário do Amazon EC2.

IMDSv2
[ec2-user ~]$ TOKEN=`curl -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600"` \ && curl -H "X-aws-ec2-metadata-token: $TOKEN" -v http://169.254.169.254/latest/meta-data/autoscaling/target-lifecycle-state
IMDSv1
[ec2-user ~]$ curl http://169.254.169.254/latest/meta-data/autoscaling/target-lifecycle-state

O seguinte é um exemplo de saída.

InService

O estado de destino do ciclo de vida é o estado para o qual a instância está fazendo a transição. O estado atual do ciclo de vida é o estado no qual a instância está na ocasião. Eles podem ser iguais após a conclusão da ação de ciclo de vida e depois que a instância terminar sua transição para o estado de destino do ciclo de vida. Não é possível recuperar o estado atual do ciclo de vida da instância nos metadados da instância.

Em 10 de março de 2022, o Amazon EC2 Auto Scaling começou a gerar o estado de destino do ciclo de vida. Se sua instância fizer a transição para um dos estados de destino do ciclo de vida após essa data, o item de estado de destino do ciclo de vida estará presente nos metadados de sua instância. Caso contrário, ele não estará presente e você receberá um erro HTTP 404.

Para obter mais informações sobre a recuperação de metadados da instância, consulte Recuperar metadados da instância no Guia do usuário do Amazon EC2.

Para um tutorial que mostra como criar um gancho do ciclo de vida com uma ação personalizada em um script de dados de usuário que usa o estado de destino do ciclo de vida, consulte Tutorial: use o script de dados e os metadados da instância para recuperar o estado do ciclo de vida.

Importante

Para garantir que você possa invocar uma ação personalizada o mais rápido possível, seu código local deve pesquisar o IMDS com frequência e repetir os erros.