Como a atualização de uma instância funciona em um grupo do 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á.

Como a atualização de uma instância funciona em um grupo do Auto Scaling

Este tópico descreve como a atualização de uma instância funciona e apresenta os principais conceitos que você precisa entender para usá-la com eficiência.

Como funcionam

Para atualizar instâncias em um grupo de Auto Scaling, você pode definir uma nova configuração que contenha a versão mais recente do seu aplicativo e quaisquer outras atualizações que você queira fazer. Em seguida, inicie uma atualização da instância para substituir as existentes por novas com base nessa configuração.

Para realizar uma atualização da instância:

  1. Crie um novo modelo de lançamento ou atualize o modelo existente com as alterações de configuração desejadas, como uma nova Amazon Machine Image (AMI). Para ter mais informações, consulte Criar um modelo de execução para um grupo do Auto Scaling.

  2. Inicie a atualização da instância usando o console AWS CLI do Amazon EC2 Auto Scaling, ou SDK:

    • Especifique o novo modelo de lançamento ou a versão do modelo de lançamento que você criou. Isso será usado para iniciar novas instâncias.

    • Defina a porcentagem saudável mínima e máxima preferida. Isso controla quantas instâncias são substituídas simultaneamente e se novas instâncias são iniciadas antes de encerrar as antigas.

    • Defina todas as configurações opcionais, como:

      • Pontos de verificação — pause a atualização da instância após uma certa porcentagem de substituições para verificar o progresso.

      • Ignorar a correspondência — compare as instâncias antigas com a nova configuração e substitua somente aquelas que não correspondem. Quando você inicia uma atualização de instância no console, a opção ignorar a correspondência está ativada por padrão.

      • Vários tipos de instância — aplique uma política de instâncias mistas nova ou atualizada como parte da configuração desejada.

Quando a atualização da instância for iniciada, o Amazon EC2 Auto Scaling irá:

  • Substitua as instâncias em lotes com base nas porcentagens mínimas e máximas de integridade.

  • Inicie as novas instâncias antes de encerrar as antigas, se a porcentagem mínima de integridade estiver definida como 100 por cento. Isso garante que a capacidade desejada seja mantida em todos os momentos.

  • Verifique o estado de saúde das instâncias e aguarde um tempo para que elas se aqueçam antes que mais instâncias sejam substituídas.

  • Encerre e substitua instâncias consideradas insalubres.

  • Atualize automaticamente as configurações do grupo Auto Scaling com as novas alterações de configuração após a atualização da instância ser bem-sucedida.

  • Substitua InService as instâncias antes das instâncias que estão em um pool aquecido.

O fluxograma a seguir ilustra o comportamento de lançamento antes do encerramento quando você define a porcentagem íntegra mínima como 100 por cento.

Um diagrama que mostra como a atualização de uma instância funciona quando a porcentagem mínima íntegra é definida como 100 por cento.
nota

As porcentagens mínimas e máximas de integridade de uma atualização de instância só precisam ser especificadas se você não tiver definido uma política de manutenção da instância ou se precisar substituir a política existente. Para ter mais informações, consulte Políticas de manutenção de instância.

Da mesma forma, você só precisa especificar o período de aquecimento da instância para uma atualização da instância se não tiver ativado o aquecimento padrão ou se precisar substituir o padrão. Para ter mais informações, consulte Definir o aquecimento padrão da instância para um grupo do Auto Scaling.

Conceitos principais

Antes de começar, familiarize-se com os seguintes conceitos básicos de atualização de instância:

Percentual mínimo de integridade

A porcentagem mínima de integridade é a porcentagem da capacidade desejada para se manter em serviço, íntegra e pronta para uso durante a atualização de uma instância para que a atualização possa continuar. Por exemplo, se a porcentagem mínima de integridade for 90% e a porcentagem máxima de integridade for 100%, 10% da capacidade será substituída por vez. Se as novas instâncias não passarem nas verificações de integridade, o Amazon EC2 Auto Scaling as encerrará e substituirá. Se a atualização da instância não puder iniciar nenhuma instância íntegra, ela eventualmente falhará, deixando os outros 90% do grupo intactos. Se as novas instâncias permanecerem saudáveis e concluírem seu período de aquecimento, o Amazon EC2 Auto Scaling poderá continuar substituindo outras instâncias.

A atualização de instância pode substituir uma instância por vez, várias por vez ou todas de uma vez. Para substituir uma instância por vez, defina a porcentagem mínima e máxima de integridade como 100%. Isso altera o comportamento de uma atualização de instância para ser iniciada antes do encerramento, o que evita que a capacidade do grupo fique abaixo de 100% da capacidade desejada. Para substituir todas as instâncias de uma vez, defina uma porcentagem mínima de integridade de 0%.

Porcentagem máxima de integridade

A porcentagem máxima íntegra é a porcentagem da capacidade desejada que seu grupo do Auto Scaling pode aumentar ao substituir instâncias. A diferença entre o mínimo e o máximo não pode ser maior que 100. Um intervalo maior aumenta o número de instâncias que podem ser substituídas ao mesmo tempo.

Aquecimento da instância

O aquecimento da instância é o período de tempo desde a mudança do estado de uma nova instância até o momento em que a InService inicialização é considerada concluída. Durante uma atualização de instância, se as instâncias passam na verificação de integridade, o Amazon EC2 Auto Scaling não avança imediatamente para substituir a próxima instância após determinar que uma instância recém-iniciada está íntegra. Ele aguarda o período de aquecimento antes de passar a substituir a próxima instância. Isso pode ser útil quando o aplicativo ainda precisar de um tempo de inicialização antes de responder às solicitações.

O aquecimento da instância funciona da mesma forma que o aquecimento de instâncias padrão. Portanto, as mesmas considerações de escalabilidade são aplicadas. Para ter mais informações, consulte Definir o aquecimento padrão da instância para um grupo do Auto Scaling.

Configuração desejada

A configuração desejada é a nova configuração que você deseja que o Amazon EC2 Auto Scaling implante no grupo do Auto Scaling. Por exemplo, você pode especificar um novo modelo de execução e novos tipos de instância para suas instâncias. Durante uma atualização de instância, o Amazon EC2 Auto Scaling atualiza o grupo do Auto Scaling para a configuração desejada. Se um evento aumento da escala na horizontal ocorrer durante uma atualização de instância, o Amazon EC2 Auto Scaling iniciará novas instâncias com a configuração desejada em vez das configurações atuais do grupo. Depois que a atualização de instância tem êxito, o Amazon EC2 Auto Scaling atualiza as configurações do grupo do Auto Scaling para refletir a nova configuração desejada que você especificou como parte da atualização de instância.

Ignorar correspondência

Ignorar a correspondência diz ao Amazon EC2 Auto Scaling para ignorar as instâncias que já tenham as atualizações mais recentes. Assim, você não substituirá mais instâncias do que o necessário. Isso é útil quando você deseja garantir que o grupo do Auto Scaling usará uma versão específica de seu modelo de execução e substituirá apenas as instâncias que usam outra versão.

Pontos de verificação

Um ponto de verificação é um ponto no tempo em que a atualização de instância é interrompida por um período especificado. Uma atualização de instância pode conter vários pontos de verificação. O Amazon EC2 Auto Scaling emite eventos para cada ponto de verificação. Portanto, você pode adicionar uma EventBridge regra para enviar os eventos para um destino, como o Amazon SNS, para ser notificado quando um ponto de verificação for alcançado. Depois que um ponto de verificação é atingido, você tem a oportunidade de verificar sua implantação. Se algum problema for identificado, você poderá cancelar a atualização de instância ou revertê-la. A capacidade de implantar atualizações em fases é um benefício fundamental dos pontos de verificação. Se você não usar pontos de verificação, as substituições continuas serão executadas ininterruptamente.

Para saber mais sobre todas as configurações padrão que você pode definir ao iniciar uma atualização de instância, consulte Entender os valores padrão de uma atualização de instância.

Período de carência da verificação de integridade

O Amazon EC2 Auto Scaling determina se a instância está íntegra com base no status das verificações de integridade que o grupo do Auto Scaling usa. Para ter mais informações, consulte Verificações de integridade para instâncias em um grupo do Auto Scaling.

Para garantir que essas verificações de integridade comecem o mais rápido possível, não defina um período de carência da verificação de integridade do grupo muito alto, mas alto o suficiente para que suas verificações de integridade do Elastic Load Balancing consigam determinar se um destino está disponível para lidar com solicitações. Para ter mais informações, consulte Definir um período de carência da verificação de integridade para um grupo do Auto Scaling.

Compatibilidade de tipo de instância

Antes de alterar o tipo de instância, convém verificar se ela funciona com seu modelo de execução. Isso confirma a compatibilidade com a AMI especificada. Por exemplo, digamos que você iniciou suas instâncias originais com base em uma AMI paravirtual (PV), mas deseja alterar para um tipo de instância da geração atual que tenha suporte apenas em uma AMI de máquina virtual (HVM). Nesse caso, é necessário usar uma AMI HVM no modelo de execução.

Para confirmar a compatibilidade do tipo de instância sem iniciar instâncias, use o comando run-instances com a opção --dry-run, conforme mostrado no exemplo a seguir.

aws ec2 run-instances --launch-template LaunchTemplateName=my-template,Version='1' --dry-run

Para obter informações sobre como a compatibilidade é determinada, consulte Compatibilidade para alterar o tipo de instância no Guia do usuário do Amazon EC2.

Limitações

  • Duração total: o tempo máximo que uma atualização de instância pode permanecer ativamente substituindo instâncias é 14 dias.

  • Diferença no comportamento específico de grupos ponderados: se um grupo de instâncias mistas estiver configurado com um peso de instância maior ou igual à capacidade desejada do grupo, o Amazon EC2 Auto Scaling poderá substituir todas as instâncias InService de uma só vez. Para evitar essa situação, siga a recomendação do tópico Configurar um grupo de Auto Scaling para usar pesos de instância. Especifique uma capacidade desejada que seja maior do que seu maior peso ao usar pesos com seu grupo do Auto Scaling.

  • Tempo limite de uma hora: quando uma atualização de instância é incapaz de continuar fazendo substituições porque a aplicação está aguardando para substituir instâncias em espera ou protegidas contra a redução da escala horizontalmente, ou se as novas instâncias não passarem nas verificações de integridade, o Amazon EC2 Auto Scaling continuará fazendo novas tentativas por uma hora. Ele também fornece uma mensagem de status para ajudar você a resolver o problema. Se o problema persistir após uma hora, a operação falhou. A intenção é garantir tempo para a recuperação em caso de um problema temporário.

  • Implantação de código por meio de dados do usuário: Ignorar a correspondência não verifica as alterações de código implantadas a partir de um script de dados do usuário. Se você usa dados do usuário para extrair um novo código e instalar essas atualizações em novas instâncias, recomendamos que você desative a correspondência para garantir que todas as instâncias recebam seu código mais recente, mesmo sem uma atualização da versão do modelo de lançamento.

  • Restrição de atualização: se você tentar atualizar o modelo de execução, a configuração de execução ou a política de instâncias mistas de um grupo do Auto Scaling enquanto uma atualização de instância com a configuração desejada estiver ativa, a solicitação falhará com o seguinte erro de validação: An active instance refresh with a desired configuration exists. All configuration options derived from the desired configuration are not available for update while the instance refresh is active.