Desaquecimento de escalabilidade para o Amazon EC2 Auto Scaling - Amazon EC2 Auto Scaling

Desaquecimento de escalabilidade para o Amazon EC2 Auto Scaling

Após iniciar ou terminar instâncias, o grupo do Auto Scaling espera o período de desaquecimento encerrar antes que qualquer outra ação de escalabilidade iniciada por políticas de escalabilidade simples possa ser iniciada. A intenção do período de desaquecimento é impedir que o grupo do Auto Scaling inicie ou encerre outras instâncias antes que os efeitos de atividades anteriores sejam visíveis.

Importante

Como prática recomendada, recomendamos não usar políticas de escalabilidade simples e desaquecimento de escalabilidade.

Na maioria dos casos, uma política de dimensionamento com monitoramento do objetivo ou uma política de escalabilidade em etapas é melhor para a performance da escalabilidade. Para uma política de escalabilidade que altera o tamanho do grupo do Auto Scaling proporcionalmente à medida que o valor da métrica de escalabilidade diminui ou aumenta, recomendamos o monitoramento do objetivo em escalabilidade simples ou escalabilidade em etapas.

Suponha, por exemplo, que uma política de escalabilidade simples para utilização da CPU recomende iniciar duas instâncias. O Amazon EC2 Auto Scaling inicia duas instâncias e pausa as ações de escalabilidade até o período de desaquecimento terminar. Quando o período de desaquecimento terminar, será possível retomar todas as ações de escalabilidade iniciadas por políticas de escalabilidade simples. Se a utilização da CPU violar o limite alto do alarme novamente, o grupo do Auto Scaling aumentará a escala na horizontal novamente, e o período de desaquecimento entrará em vigor novamente. Porém, se duas instâncias forem suficientes para diminuir o valor da métrica, o grupo permanecerá no tamanho atual.

Considerações

As considerações a seguir se aplicam ao trabalhar com políticas de escalabilidade simples e desaquecimentos de escalabilidade:

  • As políticas de monitoramento do objetivo e escalabilidade de etapas podem iniciar uma ação de aumento da escala na horizontal imediatamente sem esperar que o período de desaquecimento termine. Em vez disso, sempre que o grupo do Auto Scaling inicia instâncias, as instâncias individuais têm um período de aquecimento. Para mais informações, consulte Definir o aquecimento padrão da instância para um grupo do Auto Scaling.

  • Quando uma ação programada começa no horário programado, ela pode acionar uma ação de escalabilidade imediatamente, sem esperar que o período de desaquecimento termine.

  • Se uma instância se tornar não íntegra, o Amazon EC2 Auto Scaling não aguardará o fim do período de desaquecimento para substituir a instância não íntegra.

  • Quando várias instâncias são iniciadas ou terminadas, o período de desaquecimento (o desaquecimento padrão ou o desaquecimento específico da política de escalabilidade) entra em vigor quando a última instância conclui seu início ou término.

  • Quando o grupo do Auto Scaling é escalado manualmente, o padrão é não aguardar o desaquecimento terminar. Porém, é possível substituir esse comportamento e respeitar o desaquecimento padrão ao usar a AWS CLI ou um SDK para escalar manualmente.

  • Por padrão, o Elastic Load Balancing aguarda 300 segundos para concluir o processo de cancelamento do registro (descarga da conexão). Se o grupo estiver atrás de um balanceador de carga do Elastic Load Balancing, ele aguardará que as instâncias de encerramento cancelem o registro antes de iniciar o período de desaquecimento.

Ganchos do ciclo de vida causam mais atrasos

Caso um gancho do ciclo de vida seja invocado, o período de desaquecimento começará após a conclusão da ação do ciclo de vida ou após o período do tempo limite terminar. Por exemplo, considere um grupo do Auto Scaling com um gancho do ciclo de vida para iniciar a instância. Quando a aplicação passa por um aumento na demanda, o grupo executa uma instância para adicionar capacidade. Como há um gancho do ciclo de vida, a instância é colocada em estado de espera, e as ações de escalabilidade causadas por políticas de escalabilidade simples são pausadas. Quando a instância entra no estado InService, o período de desaquecimento é iniciado. Quando o período de desaquecimento termina, atividades de políticas de escalabilidade simples são retomadas.

Quando o Elastic Load Balancing estiver habilitado, para fins de redução da escala na horizontal, o período de desaquecimento será iniciado quando a instância de término encerrar a descarga da conexão (atraso de cancelamento do registro). Ele não espera pela duração do gancho. Isso significa que todas as ações de escalabilidade causadas por políticas de escalabilidade simples podem ser retomadas assim que o resultado do evento de redução na escala na horizontal for refletido na capacidade do grupo. Caso contrário, esperar para concluir todas as três atividades (descarga da conexão, gancho do ciclo de vida e período de desaquecimento) aumentaria consideravelmente a quantidade de tempo de que o grupo do Auto Scaling precisa para pausar a escalabilidade.

Alterar o período de desaquecimento padrão

Não é possível definir o desaquecimento padrão quando você inicialmente cria um grupo do Auto Scaling no console do Amazon EC2 Auto Scaling. Por padrão, esse período de desaquecimento é definido para 300 segundos (5 minutos). Se necessário, você poderá atualizar isso depois que o grupo for criado.

Para alterar o período de desaquecimento padrão (console)

Depois de criar o grupo do Auto Scaling, na guia Details (Detalhes), escolha Advanced configurations (Configurações avançadas), Edit (Editar). Em Default cooldown (Desaquecimento padrão), escolha o período que você deseja com base no tempo de inicialização da instância ou em outras necessidades da aplicação.

Para alterar o período de desaquecimento padrão (AWS CLI)

Use os comandos a seguir para alterar o desaquecimento padrão para grupos do Auto Scaling novos ou existentes. Se o desaquecimento padrão não for definido, será usado o valor padrão de 300 segundos.

Para confirmar o valor de desaquecimento padrão, use o comando describe-auto-scaling-groups.

Definir um período de desaquecimento para políticas de escalabilidade simples específicas

Por padrão, todas as políticas de escalabilidade simples usam o período de desaquecimento padrão definido para o grupo do Auto Scaling. Para configurar um período de desaquecimento para poíticas de escalabilidade simples específicas, use o parâmetro de desaquecimento opcional ao criar ou atualizar a política. Quando um período de desaquecimento é especificado para uma política, ele substitui o desaquecimento padrão.

Um uso comum para um período de desaquecimento específico de política de escalabilidade é com uma política de redução da escala na horizontal. Como essa política termina instâncias, o Amazon EC2 Auto Scaling precisa de menos tempo para determinar se deve terminar instâncias adicionais. Encerrar instâncias deve ser uma operação muito mais rápida do que iniciar instâncias. O desaquecimento padrão de 300 segundos é, portanto, muito longo. Nesse caso, um período de desaquecimento específico de política de escalabilidade com um valor inferior para política de redução da escala na horizontal pode ajudar a diminuir custos, permitindo que o grupo reduza a escala na horizontal mais rapidamente.

Para criar ou atualizar políticas de escalabilidade simples no console, escolha a guia Automatic scaling (Escalabilidade automática) depois de criar o grupo. Para criar ou atualizar políticas de escalabilidade simples usando a AWS CLI, use o comando put-scaling-policy. Para mais informações, consulte Políticas de escalabilidade simples e em etapas.