Escalabilidade programada para o Amazon EC2 Auto Scaling - Amazon EC2 Auto Scaling

Escalabilidade programada para o Amazon EC2 Auto Scaling

Com o Application Auto Scaling, você pode definir sua própria programação de ajuste de escala de acordo com alterações de carga previsíveis. Você cria ações programadas que aumentam ou diminuem a capacidade desejada do seu grupo em horários específicos.

Por exemplo, suponhamos que você experiencie um padrão de tráfego semanal regular, em que a carga aumenta no meio da semana e diminui no final da semana. É possível configurar uma escalabilidade programada no Amazon EC2 Auto Scaling que se alinhe a este padrão:

  • Na manhã de quarta-feira, uma ação programada amplia a capacidade ao aumentar a capacidade mínima previamente definida do destino escalável.

  • Na noite de sexta-feira, outra ação programada reduz a capacidade ao diminuir a capacidade máxima previamente definida do destino escalável.

Essas ações de escalabilidade programadas permitem otimizar os custos e a performance. A aplicação tem capacidade suficiente para lidar com o pico de tráfego no meio da semana, mas não faz provisionamento excessivo de capacidade desnecessária em outros momentos.

É possível usar a escalabilidade programada e as políticas de escalabilidade em conjunto para obter os benefícios de abordagens proativas e reativas para a escalabilidade. Após a execução de uma ação de escalabilidade programada, a política de escalabilidade pode continuar a tomar decisões sobre a necessidade de escalar ainda mais a capacidade. Isso ajuda a garantir que você tenha capacidade suficiente para lidar com a carga de sua aplicação. Embora sua aplicação seja escalada para atender à demanda, a capacidade atual deve estar dentro das capacidades mínima e máxima definidas pela ação agendada.

Como a escalabilidade programada funciona

Para usar a escalabilidade programada, crie ações programadas, que instruem o Amazon EC2 Auto Scaling a executar ações de escalabilidade em momentos específicos. Ao criar uma ação programada, você especifica o destino escalável, quando a ação de escalabilidade deve ocorrer, a capacidade mínima e a capacidade máxima. É possível criar ações programadas para escalar uma única vez ou de forma programada.

No momento especificado, o Amazon EC2 Auto Scaling escala com base nos novos valores de capacidade, comparando a capacidade atual com a capacidade desejada especificada.

  • Se a capacidade atual for menor do que a capacidade desejada especificada, o Amazon EC2 Auto Scaling aumentará a escala horizontalmente ou adicionará instâncias à capacidade desejada especificada.

  • Se a capacidade atual for maior do que a capacidade desejada especificada, o Amazon EC2 Auto Scaling se reduzirá a escala horizontalmente ou removerá instâncias para a capacidade desejada especificada.

Uma ação programada define os tamanhos mínimo, máximo e desejado para o que é especificado pela ação programada na data e horário especificado. Você pode criar uma ação programada para apenas uma dessas capacidades de cada vez, por exemplo, a capacidade desejada.. Em alguns casos, no entanto, é necessário incluir os tamanhos mínimo e máximo para garantir que a nova capacidade desejada especificada na ação não esteja fora desses limites.

Programações recorrentes

Para criar uma programação recorrente usando a AWS CLI ou um SDK, especifique uma expressão cron e um fuso horário para descrever quando essa ação agendada deve ocorrer. Opcionalmente, você pode especificar uma data e hora para a hora de início, a hora de término ou ambas.

Para criar uma programação recorrente usando o Console de gerenciamento da AWS, especifique o padrão de recorrência, o fuso horário, a hora de início e a hora de término opcional da ação programada. Todas as opções de padrão de recorrência são baseadas em expressões do cron. Alternativamente, você pode escrever sua própria expressão do cron personalizada.

A expressão do cron consiste em cinco campos separados por espaços: [Minuto] [Hora] [Dia_do_mês] [Mês_do_ano] [Dia_da_semana]. Por exemplo, a expressão do cron 30 6 * * 2 configura uma ação programada que se repete todas as terças-feiras às 6h30. O asterisco é usado como um curinga para corresponder a todos os valores de um campo. Para obter outros exemplos de expressões do cron, consultehttps://crontab.guru/examples.html. Para obter informações sobre como gravar suas próprias expressões do cron nesse formato, consulte Crontab.

Selecione os horários de início e término cuidadosamente. Lembre-se do seguinte:

  • Se você especificar uma hora de início, o Amazon EC2 Auto Scaling executará a ação nessa hora, e depois executará a ação de acordo com a recorrência especificada.

  • Se você especificar um horário de término, a ação não será mais repetida após esse horário. A ação programada não se manterá na sua conta depois que ela tiver chegado ao fim.

  • Se uma hora de recorrência corresponder exatamente à hora de término, o Amazon EC2 Auto Scaling não executará a ação programada na hora de término.

  • O horário de início e o horário de término devem ser definidos em UTC quando você usar a AWS CLI ou um SDK.

Fuso horário

Por padrão, as programações recorrentes definidas por você estão no fuso horário UTC (Tempo Universal Coordenado). É possível alterar o fuso para corresponder a seu fuso horário local ou a um fuso horário de outra parte da rede. Se você especificar um o fuso horário que siga o horário de verão, ele se ajustará automaticamente ao horário de verão (DST).

Os valores válidos são os nomes canônicos para fusos horários do banco de dados de fusos horários da IANA (Internet Assigned Numbers Authority). Por exemplo, o horário do leste dos EUA é canonicamente identificado como America/New_York. Para obter mais informações, consulte https://www.iana.org/time-zones.

Fusos horários baseados em localização, como America/New_York, são ajustados automaticamente para o horário de verão (DST). No entanto, um fuso horário baseado em UTC, como Etc/UTC, é uma hora absoluta e não se ajustará para o horário de verão.

Por exemplo, você tem uma programação recorrente cujo fuso horário é America/New_York. A primeira ação de escalabilidade acontece no fuso horário America/New_York, antes do horário de verão ser iniciado. A próxima ação de escalabilidade acontece no fuso horário America/New_York, depois do horário de verão ser iniciado. A primeira ação começa às 8:00 UTC-5 na hora local, enquanto a segunda vez começa às 8:00 UTC-4 no horário local.

Se você criar uma ação programada usando o Console de gerenciamento da AWS e especificar um fuso horário que observe o DST, tanto a programação recorrente quanto as horas de início e término se ajustam automaticamente ao horário de verão.

Considerações

Ao criar uma ação programada, lembre-se do seguinte:

  • A ordem de execução das ações programadas é garantida no mesmo grupo, mas não das ações programadas entre grupos.

  • Uma ação programada geralmente é executada em segundos. No entanto, a ação pode ser atrasada em até dois minutos da hora de início programada. Como as ações programadas em um grupo do Auto Scaling são executadas na ordem em que são especificadas, as ações com horas de início programadas próximas umas das outras podem demorar mais para serem executadas.

  • Você pode desativar temporariamente a escalabilidade programada para um grupo do Auto Scaling, suspendendo o processo ScheduledActions. Isso ajuda você a impedir que ações programadas fiquem ativas sem precisar excluí-las. Em seguida, você pode retomar a escalabilidade programada quando quiser usá-la novamente. Para obter mais informações, consulte Suspender e retomar os processos do Amazon EC2 Auto Scaling.

  • Depois de criar uma ação programada, você pode atualizar qualquer uma de suas configurações, exceto o nome.

  • Quando várias ações agendadas no mesmo grupo do Auto Scaling têm expressões cron idênticas, a ordem de execução se torna arbitrária e indefinida. Para garantir um comportamento previsível, é possível usar horários de início programados exclusivos para cada ação agendada.

Limitações

  • Os nomes das ações programadas devem ser exclusivos por grupo do Auto Scaling.

  • A ação programada deve ter um valor de tempo exclusivo. Se você tentar programar uma atividade em um momento em que outra atividade de escalabilidade já esteja programada, a chamada será rejeitada e retornará um erro, indicando que já existe uma ação programada com essa hora de início programada.

  • Você pode criar um máximo de 125 ações programadas por grupo do Auto Scaling.