O Auto Scaling suporta tarefas agendadas e acionadas por eventos (incluindo regras de rastreamento de meta). Quando ambos os tipos estão ativos, configurações inadequadas podem fazer com que uma tarefa acionada por evento substitua um scale-out agendado, resultando em capacidade inesperada. Este tópico explica como essas tarefas interagem e apresenta uma configuração recomendada para evitar conflitos de dimensionamento.
Cenário do problema
Se um grupo de dimensionamento tiver o número esperado de instâncias, tarefas agendadas e tarefas acionadas por eventos (como regras de rastreamento de meta) habilitados simultaneamente, poderá ocorrer um conflito: uma tarefa agendada dispara um scale-out, mas, antes da conclusão, uma tarefa acionada por evento é executada e sobrescreve o número esperado de instâncias, impedindo que o scale-out tenha efeito.
Casos típicos
Análise da causa
A causa raiz reside nos diferentes mecanismos de execução das tarefas agendadas e acionadas por eventos:
|
Aspecto |
Tarefa agendada (apenas modifique o número esperado de instâncias) |
Tarefa acionada por evento |
|
Método de execução |
Modifique apenas o valor do número esperado de instâncias sem disparar diretamente uma atividade de dimensionamento. |
Dispara imediatamente uma atividade de dimensionamento e atualiza simultaneamente o número esperado de instâncias. |
|
Tempo de efetivação |
Leva de 30 segundos a 1 minuto para entrar em vigor após a modificação do número esperado de instâncias. |
Entra em vigor imediatamente. |
|
Risco de conflito |
Durante a janela de atraso, outras tarefas podem sobrescrever o valor. |
Após a execução, o número esperado de instâncias é atualizado para o valor real atual. |
Problema central: Quando uma tarefa agendada apenas modifique o número esperado de instâncias, a alteração não é atômica nem entra em vigor imediatamente. Durante o atraso de 30 segundos a 1 minuto, uma tarefa acionada por evento pode disparar com base na contagem real atual de instâncias, recalcular e sobrescrever o número esperado de instâncias.
Melhor prática: Tarefas agendadas para capacidade base, tarefas acionadas por eventos para capacidade elástica
Visão geral da solução
Utilize um modelo de capacidade em camadas "base + elástica" para separar claramente as responsabilidades das tarefas agendadas e acionadas por eventos:
Capacidade base (gerenciada por tarefas agendadas): Use tarefas agendadas para definir tanto o número mínimo quanto o esperado de instâncias. Isso garante que o piso de capacidade durante os horários de pico não seja reduzido por tarefas acionadas por eventos.
Capacidade elástica (gerenciada por tarefas acionadas por eventos): Utilize regras de rastreamento de meta ou tarefas acionadas por eventos para adicionar ou remover instâncias dinamicamente acima da capacidade base, com base na carga real.

Procedimento
O exemplo a seguir demonstra a configuração recomendada. Suponha que seu negócio precise dimensionar de uma linha de base diária de 10 instâncias para 50 às 8h00, retornar ao nível normal às 22h00 e usar uma regra de rastreamento de meta para manter a utilização da CPU em 60%.
Etapa 1: Crie uma tarefa agendada de scale-out
Crie uma tarefa agendada que defina tanto o número mínimo quanto o esperado de instâncias no início do horário de pico. Isso garante que a capacidade base entre em vigor imediatamente e não possa ser substituída por tarefas acionadas por eventos.
Faça login no Auto Scaling console.
No painel de navegação à esquerda, clique em Scaling Groups.
Localize o grupo de dimensionamento alvo e clique em seu nome para abrir a página de detalhes.
Clique na aba Scaling Rules and Tasks. Na aba Scheduled Tasks, clique em Create Scheduled Task.
-
Crie uma tarefa agendada de scale-out com as seguintes configurações:
Parâmetro
Valor
Task Name
scheduled-scale-up
Executed At
Todos os dias às 8h00 (ou no início do seu horário comercial de pico)
Recurrence
Daily
Scaling Method
Configure Number of Instances in Scaling Group
Minimum Instances
50
Expected Instances
50
Configuração chave : Defina Scaling Method como Configure Number of Instances in Scaling Group e configure tanto Minimum Instances quanto Expected Instances para 50. Dessa forma, a tarefa agendada atualiza simultaneamente o número mínimo e o esperado de instâncias, impedindo que tarefas acionadas por eventos façam scale-in para menos de 50 instâncias.
Etapa 2: Crie uma tarefa agendada de scale-in
Crie uma tarefa agendada de scale-in correspondente. Após o término do horário de pico, restaure o número mínimo de instâncias para o nível normal para evitar desperdício de recursos.
-
Na aba Scheduled Tasks, clique em Create Scheduled Task e use as seguintes configurações:
Parâmetro
Valor
Task Name
scheduled-scale-down
Executed At
Todos os dias às 22h00 (ou no final do seu horário comercial de pico)
Recurrence
Daily
Scaling Method
Configure Number of Instances in Scaling Group
Minimum Instances
10
Expected Instances
10
Etapa 3: Configure uma regra de rastreamento de meta
Crie uma regra de rastreamento de meta que permita às tarefas acionadas por eventos dimensionar automaticamente com base na carga real acima da capacidade base definida pelas tarefas agendadas.
Clique na aba Scaling Rules and Tasks. Na aba Scaling Rules, clique em Create Scaling Rule.
-
Crie uma regra de rastreamento de meta com as seguintes configurações:
Parâmetro
Valor
Rule Type
Target Tracking Scaling Rule
Metric Type
(ECS) Average CPU Utilization
Target Value
60%
A regra de rastreamento de meta ajusta automaticamente o número de instâncias entre o mínimo e o máximo do grupo de dimensionamento com base na utilização da CPU. Como a tarefa agendada define o número mínimo de instâncias como 50, a contagem de instâncias não cai abaixo de 50 mesmo quando a utilização da CPU está baixa.
Comportamento esperado após a configuração
|
Hora |
Evento |
Número mínimo de instâncias |
Número esperado de instâncias |
Efeito real |
|
Diariamente às 8h00 |
Disparo da tarefa agendada de scale-out |
10 → 50 |
10 → 50 |
Inicia imediatamente o scale-out para 50 instâncias |
|
8h00 – 22h00 |
Execução contínua da regra de rastreamento de meta |
50 |
≥50 |
Quando a utilização da CPU excede 60%, faz scale-out acima da base de 50 instâncias. Quando está abaixo de 60%, faz scale-in até o mínimo de 50 instâncias. |
|
Diariamente às 22h00 |
Disparo da tarefa agendada de scale-in |
50 → 10 |
50 → 10 |
Restaura o nível normal de capacidade. Instâncias excedentes são liberadas gradualmente. |
|
Outros horários |
Execução contínua da regra de rastreamento de meta |
10 |
≥10 |
Dimensiona elasticamente a partir de uma base de 10 instâncias com base na utilização da CPU |
Pontos-chave de configuração
Selecione "Configure Number of Instances in Scaling Group" como método de dimensionamento para tarefas agendadas. Defina tanto o número mínimo quanto o esperado de instâncias, em vez de modifique apenas o número esperado.
Crie tarefas agendadas em pares: As tarefas de scale-out e scale-in devem vir em pares para garantir que o número mínimo de instâncias retorne ao normal após o horário de pico e evitar desperdício de recursos.
-
Relação entre número mínimo, esperado e máximo de instâncias:
Tarefas agendadas controlam a capacidade base definindo o número mínimo de instâncias e o número esperado de instâncias.
Tarefas acionadas por eventos e regras de rastreamento de meta ajustam elasticamente entre o número mínimo de instâncias e o número máximo de instâncias.
Regras internas do sistema garantem que número mínimo de instâncias ≤ número esperado de instâncias ≤ número máximo de instâncias. A prioridade é clara e nenhum mecanismo adicional de prevenção de conflitos é necessário.
Perguntas frequentes
-
Após uma tarefa agendada realizar scale-out com sucesso, a regra de rastreamento de meta fará scale-in das instâncias se a utilização da CPU estiver baixa?
Não. A tarefa agendada também define as Minimum Instances. A regra de rastreamento de meta não fará scale-in abaixo das Minimum Instances. Por isso, definir simultaneamente as Minimum Instances é fundamental.
-
É viável modifique apenas o número esperado de instâncias em uma tarefa agendada?
Não recomendado. Modifique apenas as Expected Instances envolve os seguintes riscos:
A alteração nas Expected Instances tem um atraso de 30 segundos a 1 minuto antes de entrar em vigor. Durante esse período, uma tarefa acionada por evento pode sobrescrever o valor.
Mesmo que o scale-out seja bem-sucedido, como as Minimum Instances não foram atualizadas adequadamente, a regra de rastreamento de meta pode fazer scale-in abaixo do nível pretendido.
-
Preciso definir o número máximo de instâncias em uma tarefa agendada?
Geralmente não. As Maximum Instances normalmente permanecem como um limite superior fixo para evitar dimensionamento ilimitado em situações anormais. Se o seu negócio exigir limites de instâncias diferentes em horários diferentes, você também pode ajustar as Maximum Instances na tarefa agendada.
-
Ocorrerão conflitos com tarefas acionadas por eventos que usam regras simples em vez de regras de rastreamento de meta?
Sim, conflitos ainda podem ocorrer. Independentemente de a tarefa acionada por evento estar associada a uma Simple Scaling Rule, Step Scaling Rule ou Target Tracking Scaling Rule, ela sobrescreverá as Expected Instances se for disparada durante o período de atraso da tarefa agendada. A solução neste tópico aplica-se a todos os tipos de tarefas acionadas por eventos.