Definir o aquecimento padrão da instância para 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á.

Definir o aquecimento padrão da instância para um grupo do Auto Scaling

CloudWatch coleta e agrega dados de uso, como CPU E/S de rede, em suas instâncias do Auto Scaling. Use essas métricas para criar políticas de escalabilidade que ajustam o número de instâncias no grupo do Auto Scaling à medida que o valor da métrica selecionada aumenta e diminui.

O aquecimento padrão da instância permite que você especifique quanto tempo depois de uma instância atingir o estado InService ela espera antes de contribuir com dados de uso para as métricas agregadas. Esse tempo especificado é chamado de aquecimento padrão da instância. Isso impede que a escalabilidade dinâmica seja afetada por métricas para instâncias individuais que ainda não estão lidando com o tráfego de aplicações e que podem estar passando temporariamente por um uso alto de recursos de computação.

Para otimizar o desempenho de suas políticas de escalabilidade de destino e de escalabilidade de etapas, é altamente recomendável habilitar o aquecimento padrão da instância. Ele não está ativado nem configurado por padrão.

Se seu grupo do Auto Scaling estiver configurado para usar uma política de manutenção de instâncias ou se você usa uma atualização de instância para substituir instâncias, você também pode evitar que as instâncias sejam contabilizadas na porcentagem íntegra mínima antes de terminarem de inicializar quando você habilita o aquecimento padrão da instância.

Considerações sobre o desempenho de escalabilidade

A maioria dos aplicativos se beneficiará de ter um tempo de aquecimento de instância padrão que se aplica a todos os atributos, em vez de tempos de aquecimento diferentes para atributos diferentes. Por exemplo, se você não definir um aquecimento padrão da instância, o atributo de atualização da instância usará o período de carência da verificação de integridade como o tempo de aquecimento padrão. Se você tiver alguma política de rastreamento de destino e escalabilidade de etapas, ela usará o valor definido para o tempo de desaquecimento padrão como o tempo de aquecimento padrão. Se você tiver alguma política de escalabilidade preditiva, ela não terá um tempo de aquecimento padrão.

Enquanto as instâncias estiverem no período de aquecimento, suas políticas dinâmicas de escalabilidade só aumentarão a escala horizontalmente se o valor da métrica de instâncias que não estiver aquecendo for maior do que o limite alto de alarme da política (ou a utilização do target de uma política de escalabilidade com rastreamento do destino). Se a demanda aumentar, a intenção será reduzir a escala na horizontal de forma conservadora para proteger a disponibilidade de sua aplicação. Isto bloqueia a redução da escala horizontalmente para escalabilidade dinâmica até que as instâncias terminem de aquecer.

Durante a escalabilidade horizontal, o Amazon EC2 Auto Scaling considera as instâncias que estão se aquecendo como parte da capacidade do grupo ao decidir quantas instâncias adicionar ao grupo. Portanto, várias violações de alarme que exigem a adição de uma quantidade semelhante de capacidade resultam em uma única atividade de escala. A intenção é expandir de forma contínua (mas não excessivamente).

Se o aquecimento padrão da instância não estiver ativado, a quantidade de tempo que uma instância espera antes de enviar métricas CloudWatch e contá-las para a capacidade atual variará de instância para instância. Nesse caso, existe a possibilidade de suas políticas de escalabilidade funcionarem de forma imprevisível em comparação com o workload real que está ocorrendo.

Por exemplo, considere um aplicativo com um padrão de on-and-off carga de trabalho recorrente. Uma política de escalabilidade preditiva é usada para tomar decisões recorrentes sobre o aumento do número de instâncias. Como não há um tempo de aquecimento padrão para as políticas de escalabilidade preditiva, as instâncias começam a contribuir imediatamente para as métricas agregadas. Se essas instâncias tiverem maior uso de recursos no startup, a adição de instâncias poderá fazer com que as métricas agregadas tenham um pico. Dependendo do tempo necessário para o uso se estabilizar, isso pode afetar qualquer política de escalabilidade dinâmica que use essas métricas. Se o limite alto de alarme de uma política de escalabilidade dinâmica for violado, o grupo aumentará de tamanho novamente. Enquanto as novas instâncias estiverem se aquecendo, as atividades para reduzir a escala horizontalmente serão bloqueadas.

Escolha o tempo para o aquecimento de instância padrão

A chave para definir o aquecimento padrão da instância é determinar quanto tempo suas instâncias precisam terminar a inicialização e para que o consumo de recursos se estabilize após atingirem o estadoInService. Ao escolher um tempo de aquecimento da instância, procure um equilíbrio ideal entre coletar dados de uso para tráfego legítimo, mas minimizando a coleta de dados associada a picos de uso temporário no startup.

Suponha que você tenha um grupo do Auto Scaling vinculado a um balanceador de carga do Elastic Load Balancing. Quando as instâncias concluem seu lançamento, elas são vinculadas ao balanceador de carga antes de entrarem no estado InService. Depois que as instâncias entram no estado InService, o consumo de recursos ainda pode passar por picos temporários e precisar de tempo para se estabilizar. Por exemplo, o consumo de recursos para um servidor de aplicações que precisa baixar ativos grandes e armazená-los em cache leva mais tempo para se estabilizar do que um servidor Web leve e sem ativos grandes para baixar. O aquecimento de instâncias fornece o tempo de atraso necessário para que o consumo de recursos se estabilize.

Importante

Se você não tiver certeza de quanto tempo precisa para o aquecimento, pode começar com 300 segundos. Em seguida, diminua ou aumente gradualmente até obter o melhor desempenho de escala para seu aplicativo. Talvez você precise fazer isso algumas vezes para obter os resultados desejados. Como alternativa, se você tiver alguma política de escalabilidade que tenha seu próprio tempo de aquecimento (EstimatedInstanceWarmup), poderá usar esse valor para começar. Para obter mais informações, consulte Encontre políticas de escalabilidade com um tempo de aquecimento da instância definido anteriormente.

Também é necessário considerar o uso de hooks do ciclo de vida para casos de uso em que você tem tarefas de configuração ou scripts para executar no startup. Os hooks do ciclo de vida também podem atrasar a colocação de instâncias em serviço até que elas tenham concluído a inicialização. Eles são especialmente úteis se você tiver scripts de bootstrapping que demoram um pouco para serem concluídos. Se você adicionar um hook do ciclo de vida, será possível reduzir o valor do aquecimento de instância padrão. Para obter mais informações sobre hooks de ciclo de vida, consulte Hooks do ciclo de vida do Amazon EC2 Auto Scaling.