Atualização de instâncias e ganchos de ciclo de vida
Implante gradualmente um novo modelo de inicialização com a atualização de instâncias e use ganchos de ciclo de vida para executar lógica personalizada antes que as instâncias sejam iniciadas ou encerradas.
Atualização de instâncias e ganchos de ciclo de vida é uma aula grátis de AWS Solutions Architect no CoddyKit. Esta é a aula 4 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de AWS Solutions Architect, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de AWS Solutions Architect inclui 4 aulas no total.
O problema das atualizações graduais de instâncias
Quando você atualiza um Launch Template (nova AMI, novos dados de usuário ou novo tipo de instância), as instâncias existentes em execução no ASG não são substituídas automaticamente: elas continuam executando a configuração antiga. Para propagar as alterações, você precisa substituir as instâncias. Encerrar e iniciar instâncias manualmente é arriscado e sujeito a erros. O Instance Refresh automatiza esse processo com controles de segurança configuráveis.
Instance Refresh: como funciona
O Instance Refresh substitui as instâncias do ASG em lotes graduais. Em cada etapa, ele encerra um lote de instâncias antigas, aguarda as novas instâncias passarem pelas verificações de integridade e, então, prossegue para o lote seguinte. Você controla o ritmo com um MinHealthyPercentage (a porcentagem mínima da capacidade que deve permanecer íntegra durante a atualização) e um tempo opcional de InstanceWarmup.
aws autoscaling start-instance-refresh \
--auto-scaling-group-name 'MyAppASG' \
--preferences '{
"MinHealthyPercentage": 80,
"InstanceWarmup": 300,
"CheckpointPercentages": [20, 50, 100],
"CheckpointDelay": 600
}'MinHealthyPercentage e tamanho do lote
MinHealthyPercentage define o limite mínimo de capacidade íntegra durante a atualização. Se você o definir como 90%, apenas 10% da frota será substituída por vez — mais lento, mas mais seguro. Um valor de 50% substitui metade da frota de uma vez — mais rápido, mas com menos redundância. O ASG calcula automaticamente os tamanhos dos lotes com base nessa porcentagem e na sua capacidade desejada atual. Escolha uma porcentagem maior para cargas de trabalho de produção a fim de manter a disponibilidade.
Pontos de verificação para implantações no estilo canário
Os Checkpoints permitem pausar o Instance Refresh em marcos de porcentagem predefinidos. Por exemplo, você pode atualizar 20% das instâncias, pausar por 10 minutos para executar testes básicos e, então, continuar. Se detectar um problema em qualquer ponto de verificação, você poderá cancelar a atualização — o ASG deixará de substituir instâncias adicionais, mas manterá em execução as instâncias já substituídas (elas já estão usando o novo modelo). Isso funciona, na prática, como um padrão de implantação canário para EC2.
Cancelamento e monitoramento do Instance Refresh
Você pode cancelar um Instance Refresh em andamento a qualquer momento; isso interrompe novas substituições, mas não reverte as que já foram concluídas. Use describe-instance-refreshes para verificar o status, a porcentagem de progresso e quaisquer instâncias que não tenham sido iniciadas. Integre o Instance Refresh ao seu pipeline de CI/CD para acionar automaticamente uma atualização depois de enviar uma nova AMI ao Launch Template, concluindo uma implantação totalmente automatizada no estilo azul/verde.
aws autoscaling describe-instance-refreshes \
--auto-scaling-group-name 'MyAppASG'
# Cancel a running refresh
aws autoscaling cancel-instance-refresh \
--auto-scaling-group-name 'MyAppASG'Introdução aos Lifecycle Hooks
Os Lifecycle Hooks pausam as transições das instâncias do ASG em momentos importantes para que você possa executar lógica personalizada antes de uma instância se tornar ativa ou antes de ser encerrada. Há dois pontos de hook: EC2_INSTANCE_LAUNCHING (após a inicialização, antes de a instância ser colocada em InService) e EC2_INSTANCE_TERMINATING (após a decisão de encerramento, antes de a instância ser realmente encerrada). Durante um hook, a instância fica no estado Pending:Wait ou Terminating:Wait.
Casos de uso dos Lifecycle Hooks de inicialização
O hook de inicialização é ideal para tarefas que precisam ser concluídas antes de uma instância atender tráfego: instalar software adicional, obter a configuração do Parameter Store, registrar-se em um registro de descoberta de serviços ou executar testes de integração. O ASG não adicionará a instância ao grupo de destinos do balanceador de carga até que o hook seja concluído (ou expire). Isso impede que o tráfego chegue a uma instância configurada de forma incompleta.
aws autoscaling put-lifecycle-hook \
--auto-scaling-group-name 'MyAppASG' \
--lifecycle-hook-name 'AppInit' \
--lifecycle-transition EC2_INSTANCE_LAUNCHING \
--default-result ABANDON \
--heartbeat-timeout 300Casos de uso dos Lifecycle Hooks de encerramento
O hook de encerramento é executado antes de uma instância ser realmente encerrada. Os casos de uso incluem: drenar solicitações em andamento de uma fila no nível da aplicação, descarregar dados armazenados em cache em um armazenamento persistente, cancelar o registro em um registro de serviços ou copiar arquivos de log para o S3. Sem um hook de encerramento, o trabalho em andamento em uma instância que está sendo encerrada pode ser perdido. O hook oferece até 2 horas (tempo limite do sinal de atividade) para concluir as tarefas de desligamento normal.
aws autoscaling put-lifecycle-hook \
--auto-scaling-group-name 'MyAppASG' \
--lifecycle-hook-name 'GracefulShutdown' \
--lifecycle-transition EC2_INSTANCE_TERMINATING \
--default-result CONTINUE \
--heartbeat-timeout 120Conclusão de um Lifecycle Hook
A lógica personalizada executada na instância (ou acionada por ela) deve sinalizar o hook quando terminar. Use complete-lifecycle-action com CONTINUE (prosseguir normalmente) ou ABANDON (em um hook de inicialização, encerrar a instância; em um hook de encerramento, ignorar e prosseguir). Você também pode estender o tempo limite do hook enviando um sinal de atividade em cada intervalo, até a duração máxima. Se o hook atingir o tempo limite, o DefaultResult será aplicado.
# From inside the instance or a Lambda triggered by EventBridge
aws autoscaling complete-lifecycle-action \
--auto-scaling-group-name 'MyAppASG' \
--lifecycle-hook-name 'AppInit' \
--lifecycle-action-result CONTINUE \
--instance-id 'i-0abc123def456'Acionamento da lógica com EventBridge
A maneira mais simples de responder aos Lifecycle Hooks é usar o Amazon EventBridge. Quando um Lifecycle Hook é acionado, o ASG emite um evento para o EventBridge. Uma regra do EventBridge encaminha esse evento para uma função do Lambda, que executa o trabalho necessário e, depois, chama complete-lifecycle-action. Essa arquitetura é totalmente sem servidor, não exige sondagem e aumenta a escala automaticamente. As notificações do SQS e do SNS são alternativas mais antigas, mas o EventBridge é a opção preferida para novos projetos.
Integração do Instance Refresh com Lifecycle Hooks
Quando o Instance Refresh substitui uma instância, ambos os Lifecycle Hooks ainda são acionados: o hook de encerramento na instância antiga e o hook de inicialização na nova. Isso significa que sua lógica de desligamento normal e inicialização é executada automaticamente durante uma atualização gradual, e não apenas durante eventos normais de escalabilidade. Sempre teste a lógica dos seus Lifecycle Hooks durante um Instance Refresh em etapas antes de uma implantação em produção, para verificar se o comportamento está correto.
Verificação rápida
Teste sua compreensão dos conceitos do AWS Solutions Architect (SAA-C03) apresentados nesta lição.
Recapitulação da lição
Nesta lição, você aprendeu que o Instance Refresh substitui instâncias do ASG em lotes graduais controlados por MinHealthyPercentage e por pontos de verificação opcionais para validação no estilo canário; os Lifecycle Hooks pausam as transições das instâncias na inicialização ou no encerramento para executar lógica personalizada de inicialização ou desligamento normal; e EventBridge + Lambda é o padrão recomendado para responder a eventos de Lifecycle Hooks sem sondagem. A seguir, exploraremos as funções do AWS Lambda, os ambientes de execução, os acionadores e os manipuladores.
Perguntas Frequentes
A aula “Atualização de instâncias e ganchos de ciclo de vida” é grátis?
Sim — o texto completo de “Atualização de instâncias e ganchos de ciclo de vida” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de AWS Solutions Architect, atualize para CoddyKit PRO. O curso de AWS Solutions Architect inclui 4 aulas no total.
O que vou aprender em “Atualização de instâncias e ganchos de ciclo de vida”?
Implante gradualmente um novo modelo de inicialização com a atualização de instâncias e use ganchos de ciclo de vida para executar lógica personalizada antes que as instâncias sejam iniciadas ou ence… Você pratica AWS Solutions Architect com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar AWS Solutions Architect?
Nenhuma experiência prévia é necessária. AWS Solutions Architect no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 4 de 4.
Quanto tempo leva a aula “Atualização de instâncias e ganchos de ciclo de vida”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de AWS Solutions Architect?
Sim. Cada aula de AWS Solutions Architect inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Modelos de inicialização e configuração de ASG
- Políticas de escalabilidade: acompanhamento de destino e escalabilidade por etapas
- Escalabilidade programada e preditiva
- Atualização de instâncias e ganchos de ciclo de vida