Substituir instâncias do Auto Scaling com base na vida útil máxima 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á.

Substituir instâncias do Auto Scaling com base na vida útil máxima da instância

O tempo de vida máximo da instância especifica o tempo máximo (em segundos) que uma instância pode estar em serviço antes de ser terminada e substituída. Um caso de uso comum pode ser um requisito para substituir as instâncias em uma programação devido a políticas de segurança internas ou a controles de conformidade externos.

É necessário especificar um valor de pelo menos 86.400 segundos (1 dia). Para limpar um valor definido anteriormente, especifique um novo valor de 0. Essa configuração se aplica a todas as instâncias atuais e futuras do grupo do Auto Scaling.

Considerações

Veja a seguir algumas considerações ao usar esse recurso:

  • Sempre que uma instância mais antiga é substituída e uma nova instância é iniciada, a nova instância usa o modelo de execução ou a configuração de execução atualmente associada ao grupo do Auto Scaling. Se seu modelo de lançamento ou configuração de lançamento especificar o ID da Amazon Machine Image (AMI) de uma versão diferente do seu aplicativo, essa versão do seu aplicativo será implantada automaticamente.

  • Definir a vida útil máxima da instância muito baixa pode fazer com que as instâncias sejam substituídas mais rápido do que o desejado. O Amazon EC2 Auto Scaling geralmente substitui as instâncias uma de cada vez, com uma pausa entre as substituições. No entanto, se a vida útil máxima especificada da instância não fornecer tempo suficiente para substituir cada instância individualmente, o Amazon EC2 Auto Scaling deverá substituir mais de uma instância por vez. Várias instâncias podem ser substituídas de uma só vez, em até 10% da capacidade atual do grupo do Auto Scaling. Para evitar a substituição de muitas instâncias ao mesmo tempo, defina uma vida útil máxima de instância mais longa ou use a proteção de escalabilidade de instância para impedir temporariamente que instâncias individuais sejam encerradas. Para ter mais informações, consulte Usar proteção de redução na escala na horizontal de instâncias.

  • Por padrão, o Amazon EC2 Auto Scaling cria uma nova atividade de escalabilidade para encerrar a instância e, em seguida, finaliza-a. Enquanto a instância estiver sendo encerrada, outra atividade de escalonamento iniciará uma nova instância. Você pode alterar esse comportamento para iniciar antes de encerrar usando uma política de manutenção de instância. Para ter mais informações, consulte Políticas de manutenção de instância.

Definir o tempo de vida máximo da instância

Quando você cria um grupo do Auto Scaling no console, não é possível configurar o tempo de vida máximo da instância. No entanto, depois que o grupo for criado, você poderá editá-lo para definir o tempo de vida máximo da instância.

Para definir o tempo de vida máximo da instância para um grupo (console)
  1. Abra o console do Amazon EC2 em https://console.aws.amazon.com/ec2/ e escolha grupos do Auto Scaling no painel de navegação.

  2. Marque a caixa de seleção ao lado do grupo do Auto Scaling.

    Um painel dividido é aberto na parte inferior da página Auto Scaling groups (Grupos do Auto Scaling), mostrando informações sobre o grupo selecionado.

  3. Na guia Detalhes, escolha Configurações avançadas, Editar.

  4. Para o Maximum instance lifetime (Tempo de vida máximo da instância), insira o número máximo de segundos que uma instância pode estar em serviço.

  5. Selecione Atualizar.

Na guia Activity (Atividade), em Activity history (Histórico de atividades), é possível ver a substituição de instâncias do grupo ao longo de todo seu histórico.

Para definir o tempo de vida máximo da instância para um grupo (AWS CLI)

Você também pode usar o AWS CLI para definir a vida útil máxima da instância para grupos de Auto Scaling novos ou existentes.

Para novos grupos do Auto Scaling, use o comando create-auto-scaling-group.

aws autoscaling create-auto-scaling-group --cli-input-json file://~/config.json

Veja a seguir um arquivo config.json de exemplo que mostra um tempo de vida máximo da instância de 2592000 segundos (30 dias).

{ "AutoScalingGroupName": "my-asg", "LaunchTemplate": { "LaunchTemplateName": "my-launch-template", "Version": "$Default" }, "MinSize": 1, "MaxSize": 5, "MaxInstanceLifetime": 2592000, "VPCZoneIdentifier": "subnet-5ea0c127,subnet-6194ea3b,subnet-c934b782", "Tags": [] }

Para grupos do Auto Scaling existentes, use o comando update-auto-scaling-group.

aws autoscaling update-auto-scaling-group --auto-scaling-group-name my-existing-asg --max-instance-lifetime 2592000
Para verificar o tempo de vida máximo da instância para um grupo do Auto Scaling

Use o comando describe-auto-scaling-groups.

aws autoscaling describe-auto-scaling-groups --auto-scaling-group-name my-asg

Limitações

  • Não há garantia de que tempo de vida máximo será exato para cada instância: não há garantia de que as instâncias serão substituídas apenas no final de sua duração máxima. Em algumas situações, talvez o Amazon EC2 Auto Scaling precise iniciar a substituição de instâncias logo após você atualizar o parâmetro de tempo de vida máximo da instância. A razão para esse comportamento é evitar a substituição de todas as instâncias ao mesmo tempo.

  • Proteção de escalabilidade de instância honrada: o Amazon EC2 Auto Scaling fornece proteção de escalabilidade de instâncias para ajudar você a controlar quais instâncias podem ser encerradas. Quando essa proteção é ativada em uma instância, o Amazon EC2 Auto Scaling não encerrará a instância, mesmo que ela tenha atingido sua vida útil máxima.

  • Instâncias encerradas antes da execução: quando há apenas uma instância no grupo do Auto Scaling, o recurso de vida útil máxima da instância pode resultar em uma interrupção porque o Amazon EC2 Auto Scaling encerra uma instância e, em seguida, inicia uma nova instância por padrão. Para alterar esse comportamento de iniciar antes de encerrar, consulte Políticas de manutenção de instância.