Substitua os volumes raiz durante a atualização da 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á.

Substitua os volumes raiz durante a atualização da instância

Como funcionam

A substituição do volume raiz atualiza suas instâncias substituindo somente o volume raiz do EBS enquanto mantém a instância em execução. Isso elimina a necessidade de lançar novas instâncias e evita possíveis restrições de capacidade. Esse processo preserva todos os outros recursos da instância, incluindo:

  • Interfaces de rede e endereços IP

  • Volumes não raiz do EBS

  • Volumes e dados do armazenamento de instâncias

  • Grupos de segurança e funções do IAM

Durante a substituição do volume raiz, seu aplicativo continua em execução na instância existente. O volume raiz original é separado, um novo volume raiz é criado a partir da AMI especificada e, em seguida, anexado à mesma instância. Os volumes raiz originais são excluídos automaticamente após a substituição bem-sucedida.

Quando você usa a estratégia de substituição do volume raiz, as instâncias passam pelos seguintes estados do ciclo de vida:

  1. ReplacingRootVolume- A substituição do volume raiz começa

  2. ReplacingRootVolume:Wait- Aguarda a conclusão do ciclo de vida do gancho (se configurado)

  3. ReplacingRootVolume:Proceed- Prossegue com a substituição

  4. RootVolumeReplaced- Substituição concluída com sucesso

Após a conclusão da substituição do volume raiz, o Auto Scaling realiza verificações de integridade nas instâncias atualizadas. Se a substituição do volume raiz falhar em uma instância, o Auto Scaling marca a instância para encerramento e a substitui por uma nova instância.

Requisitos

  • Seu grupo de Auto Scaling deve usar uma política de instâncias mistas

  • Todas as substituições na política de instâncias mistas devem especificar um ImageId

  • AMIs deve conter somente um único volume raiz

  • Todas as instâncias devem corresponder à configuração do modelo de lançamento do grupo

  • Você deve iniciar a atualização da instância com a configuração desejada, com uma política de instâncias mistas contendo ImageId substituições.

Inicie uma atualização de instância com Replace Root Volume

Para iniciar uma atualização de instância com Replace Root Volume ()AWS CLI

Use o start-instance-refreshcomando a seguir para iniciar uma atualização de instância a AWS CLI partir do. Você pode especificar as preferências que deseja alterar em um arquivo de configuração JSON. Ao referenciar o arquivo de configuração, forneça o caminho e o nome do arquivo, conforme mostrado no exemplo a seguir.

aws autoscaling start-instance-refresh --cli-input-json file://config.json

Conteúdo de config.json:

exemplo
{ "AutoScalingGroupName": "my-asg", "Strategy" : "ReplaceRootVolume", "DesiredConfiguration":{ "MixedInstancesPolicy":{ "LaunchTemplate": { "LaunchTemplateSpecification": { "LaunchTemplateId":"my-launch-template", "Version": "1" }, "Overrides": [ { "InstanceType":"c5.large", "ImageId":"ami-1234example" }, { "InstanceType":"m5.large", "ImageId":"ami-2345example" } ] } } }, "Preferences": { "InstanceWarmup": 60, "MinHealthyPercentage": 90, "AutoRollback": true, "ScaleInProtectedInstances": Ignore, "StandbyInstances": Ignore } }

Se as preferências não forem fornecidas, serão usados os valores padrão. Para obter mais informações, consulte Entender os valores padrão de uma atualização de instância.

Resultado do exemplo:

{ "InstanceRefreshId": "08b91cf7-8fa6-48af-b6a6-d227f40f1b9b" }

Limitações

  • Você não pode iniciar uma atualização de instância com Replace Root Volume se o grupo EC2 Auto Scaling ou a configuração desejada de atualização de instância usar $Latest a versão ou executar o modelo. $Default

  • Você não pode iniciar uma atualização de instância com Replace Root Volume em um grupo do Amazon EC2 Auto Scaling se ele contiver instâncias cujo tipo de instância não esteja presente na política de instâncias mistas.

  • Durante uma atualização de instância com Replace Root Volume, você só pode anexar instâncias com tipos que estejam presentes na política de instâncias mistas da configuração desejada.

  • Você não pode iniciar uma atualização de instância com Replace Root Volume em um grupo de EC2 Auto Scaling que tenha um pool aquecido.

  • Você não pode adicionar um pool aquecido a um grupo do Amazon EC2 Auto Scaling que tenha uma atualização de instância ativa com Replace Root Volume.

Use ganchos de ciclo de vida para substituir o volume raiz

As instâncias submetidas à substituição do volume raiz seguem suas próprias transições de ciclo de vida, permitindo que você invoque ações (por exemplo, uma função Lambda) antes da substituição. and/or Para obter mais informações sobre os estados do ciclo de vida durante a substituição do volume raiz, consulte. Transições de estado do ciclo de vida para instâncias que estão passando por substituição do volume raiz

Para obter mais informações sobre a adição de um gancho do ciclo de vida, consulte Preparar para adicionar um gancho do ciclo de vida a um grupo do Auto Scaling. Para obter mais informações sobre a conclusão de uma ação do ciclo de vida, consulte Concluir uma ação do ciclo de vida em um grupo do Auto Scaling.

Antes da substituição do volume raiz, um gancho de ciclo de vida pode ser útil nos seguintes cenários:

  • Você deseja encerrar seu aplicativo normalmente antes que o volume raiz seja substituído e a instância seja reinicializada.

  • Você deseja mover os dados do volume raiz para outro local antes que o volume seja substituído.

Após a substituição do volume raiz, um gancho de ciclo de vida pode ser útil nos seguintes cenários:

  • Você quer verificar se sua instância está totalmente pronta com a nova AMI antes de começar a receber tráfego.

  • Você deseja inicializar os dados do aplicativo que existiam anteriormente no volume raiz.

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

  • Quando um gancho de ciclo de vida é configurado para a ação do autoscaling:EC2_INSTANCE_TERMINATING ciclo de vida, uma instância prestes a passar pela substituição do volume raiz faz uma pausa para realizar uma ação personalizada quando atinge o estado. ReplacingRootVolume:Wait

  • Quando um gancho de ciclo de vida é configurado para a ação do autoscaling:EC2_INSTANCE_LAUNCHING ciclo de vida, uma instância que acabou de ter seu volume raiz substituído faz uma pausa para realizar uma ação personalizada quando atinge o estado. Pending:Wait

Quando as instâncias atingem um estado de espera, o Amazon EC2 Auto Scaling envia uma notificação. As notificações de gancho do ciclo de vida do Auto Scaling contêm um Action campo com valor ReplaceRootVolume para indicar que a instância está sendo substituída pelo volume raiz.

Exemplos dessas notificações estão disponíveis na EventBridge seção deste guia. Para obter mais informações, consulte A atualização da instância substitui os eventos do ciclo de vida do volume raiz.