Controlar quais instâncias do Auto Scaling serão terminadas durante uma redução de escala na horizontal - Amazon EC2 Auto Scaling

Controlar quais instâncias do Auto Scaling serão terminadas durante uma redução de escala na horizontal

O Amazon EC2 Auto Scaling usa políticas de terminação para decidir a ordem de terminação das instâncias. Você pode usar uma política predefinida ou criar uma política personalizada para atender a seus requisitos específicos. Ao usar uma política personalizada ou uma escala de instância na proteção, você também pode impedir que o grupo do Auto Scaling termine instâncias que ainda não estão prontas para serem terminadas.

Trabalhar com políticas de término do Amazon EC2 Auto Scaling

As seções a seguir descrevem os cenários em que o Amazon EC2 Auto Scaling usa políticas de término.

Eventos de redução de escala horizontalmente

Um evento de redução de escala na horizontal ocorre quando há um novo valor para a capacidade desejada de um grupo do Auto Scaling que é menor do que a capacidade atual do grupo.

Eventos de redução de escala na horizontal ocorrem nos cenários a seguir:

  • Ao usar políticas de escalabilidade dinâmica e o tamanho do grupo diminui como resultado de alterações no valor de uma métrica

  • Ao usar a escalabilidade programada e o tamanho do grupo diminui como resultado de uma ação programada

  • Quando você reduz o tamanho do grupo manualmente

O exemplo a seguir mostra como as políticas de término funcionam quando há um evento de redução de capacidade na horizontal.

  1. O grupo do Auto Scaling deste exemplo tem um tipo de instância, duas zonas de disponibilidade e uma capacidade desejada de duas instâncias. Ele também tem uma política de escalabilidade dinâmica que adiciona e remove instâncias quando a utilização de recursos aumenta ou diminui. As duas instâncias desse grupo são distribuídas nas duas zonas de disponibilidade, como mostrado no diagrama a seguir.

    Um grupo do Auto Scaling com duas instâncias
  2. Quando o grupo do Auto Scaling aumenta a escala na horizontal, o Amazon EC2 Auto Scaling executa uma nova instância. O grupo do Auto Scaling agora possui três instâncias, distribuídas nas duas zonas de disponibilidade, como mostrado no diagrama a seguir.

    Um grupo do Auto Scaling após o aumento a escala horizontalmente de uma instância.
  3. Quando o grupo do Auto Scaling reduz a escala na horizontal, o Amazon EC2 Auto Scaling termina uma das instâncias.

  4. Se você não tiver atribuído uma política de término específica ao grupo, o Amazon EC2 Auto Scaling usará a política de término padrão. Ele selecionará a zona de disponibilidade com duas instâncias e terminará a instância que foi iniciada com o modelo de execução ou a configuração de execução mais antiga. Se as instâncias tiverem sido inidicadas com o mesmo modelo de execução, o Amazon EC2 Auto Scaling selecionará a instância que estiver mais perto da próxima hora de faturamento e a terminará.

    Um grupo do Auto Scaling após a redução da escala horizontalmente de uma instância.

Atualização de instância

Você inicia as atualizações de instâncias para atualizar as instâncias em seu grupo do Auto Scaling. Durante uma atualização de instância, o Amazon EC2 Auto Scaling termina instâncias no grupo e executa as substituições para as instâncias terminadas. A política de término para o grupo do Auto Scaling controla quais instâncias são substituídas primeiro.

Rebalanceamento de zona de disponibilidade

O Amazon EC2 Auto Scaling equilibra sua capacidade uniformemente nas zonas de disponibilidade habilitadas para seu grupo do Auto Scaling. Isso ajuda a reduzir o impacto de uma paralisação da zona de disponibilidade. Se a distribuição da capacidade entre zonas de disponibilidade ficar fora de equilíbrio, o Amazon EC2 Auto Scaling reequilibra o grupo do Auto Scaling iniciando instâncias nas zonas de disponibilidade habilitadas com o menor número de instâncias e terminando instâncias em outro lugar. A política de término controla quais instâncias são priorizadas para término primeiro.

Há vários motivos pelos quais a distribuição de instâncias nas zonas de disponibilidade pode ficar fora de equilíbrio.

Remoção de instâncias

Se você desvincular instâncias do seu grupo do Auto Scaling ou terminar instâncias explicitamente e diminuir a capacidade desejada, impedindo assim que as instâncias de substituição sejam executadas, o grupo poderá ficar desbalanceado. Se isso ocorrer, o Amazon EC2 Auto Scaling compensará rebalanceando as zonas de disponibilidade.

Uso de zonas de disponibilidade diferentes das especificadas originalmente

Se você expandir seu grupo do Auto Scaling para incluir zonas de disponibilidade adicionais ou alterar quais zonas de disponibilidade serão usadas, o Amazon EC2 Auto Scaling iniciará instâncias nas novas zonas de disponibilidade e terminará instâncias nas outras zonas para ajudar a garantir que seu grupo do Auto Scaling abranja as zonas de disponibilidade de modo uniforme.

Interrupção de disponibilidade

As interrupções de disponibilidade são raras. No entanto, se uma zona de disponibilidade ficar indisponível e for recuperada posteriormente, seu grupo do Auto Scaling poderá se tornar desbalanceado entre as zonas de disponibilidade. O Amazon EC2 Auto Scaling tenta rebalancear gradualmente o grupo, e o rebalanceamento pode terminar instâncias em outras zonas.

Veja o exemplo em que você tem um grupo do Auto Scaling que tem um tipo de instância, duas zonas de disponibilidade e uma capacidade desejada de duas instâncias. Em uma situação em que uma zona de disponibilidade falha, o Amazon EC2 Auto Scaling executa automaticamente uma nova instância na zona de disponibilidade íntegra para substituir a da zona de disponibilidade não íntegra. Em seguida, quando a zona de disponibilidade não íntegra retorna a um estado íntegro, o Amazon EC2 Auto Scaling executa automaticamente uma nova instância nessa zona, que, por sua vez, termina uma instância na zona não afetada.

nota

No rebalanceamento, o Amazon EC2 Auto Scaling ativa novas instâncias antes de terminar as antigas, para que o processo não comprometa a performance nem a disponibilidade da sua aplicação.

Como o Amazon EC2 Auto Scaling tenta ativar novas instâncias antes de terminar as antigas, estar na capacidade máxima especificada ou próximo a ela pode impedir ou interromper completamente as atividades de rebalanceamento. Para evitar esse problema, o sistema pode exceder temporariamente a capacidade máxima especificada de um grupo em uma margem de 10% (ou em uma margem de uma instância, o que for maior) durante uma atividade de rebalanceamento. A margem é estendida somente se o grupo estiver na capacidade máxima ou próximo a ela e precisar de rebalanceamento, seja devido ao rezoneamento solicitado pelo usuário ou para compensar os problemas de disponibilidade da zona. A extensão dura somente pelo tempo necessário para rebalancear o grupo.