Escalabilidade programada para o Amazon EC2 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á.

Escalabilidade programada para o Amazon EC2 Auto Scaling

Com o escalonamento programado, você pode configurar o escalonamento automático para seu aplicativo com base em mudanças de carga previsíveis, criando 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. Você pode configurar um cronograma de escalabilidade no Amazon EC2 Auto Scaling que se alinhe a esse padrão:

  • Na manhã de quarta-feira, uma ação programada aumenta a capacidade aumentando a capacidade desejada previamente definida do grupo Auto Scaling.

  • Na sexta-feira à noite, outra ação programada diminui a capacidade ao diminuir a capacidade desejada previamente definida do grupo Auto Scaling.

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.

Você pode usar o escalonamento programado e as políticas de escalabilidade em conjunto para obter os benefícios de ambas as abordagens de 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 instruam o Amazon EC2 Auto Scaling a realizar atividades de escalabilidade em horários específicos. Ao criar uma ação programada, você especifica o grupo Auto Scaling, quando a atividade de escalabilidade deve ocorrer, a nova capacidade desejada e, opcionalmente, uma nova capacidade mínima e uma nova 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 se expande (adiciona instâncias) até a capacidade desejada especificada.

  • Se a capacidade atual for maior do que a capacidade desejada especificada, o Amazon EC2 Auto Scaling escalará (remove instâncias) até a capacidade desejada especificada.

Uma ação agendada define a capacidade desejada, mínima e máxima do grupo conforme especificado pela ação agendada na data e hora especificadas. Opcionalmente, a ação agendada pode especificar somente um desses tamanhos. Por exemplo, você pode criar uma ação programada com apenas a capacidade desejada especificada. Em alguns casos, no entanto, você deve incluir os limites de 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 agenda recorrente usando o AWS CLI ou um SDK, especifique uma expressão cron e um fuso horário para descrever quando essa ação agendada deve ocorrer novamente. Opcionalmente, você pode especificar uma data e hora para a hora de início, a hora de término ou ambas.

Para criar uma agenda recorrente usando o AWS Management Console, 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 agendada. 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.

  • A hora de início e a hora de término devem ser definidas em UTC quando você usa o 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 dos fusos horários do banco de dados de fusos horários da Internet Assigned Numbers Authority (IANA). 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 ajuste America/New_York automático para o horário de verão. 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 agendada usando o AWS Management Console e especificar um fuso horário que observe o horário de verão, tanto a programação recorrente quanto os horários de início e término se ajustarão automaticamente para o 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 ter 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.

Criar uma ação programada

Para criar uma ação agendada para seu grupo de Auto Scaling, use um dos seguintes métodos:

Console
Para criar uma ação programada
  1. Abra o console do Amazon EC2 em https://console.aws.amazon.com/ec2/ e escolha grupos do Auto Scaling no painel de navegação.

  2. Marque a caixa de seleção ao lado do seu grupo do Auto Scaling.

    Um painel dividido é aberto na parte inferior da página.

  3. Na guia Automatic scaling (Escalabilidade automática), em Scheduled actions (Ações programadas), escolha Create scheduled action (Criar ação programada).

  4. Insira um Name (Nome), para a ação programada.

  5. Em Capacidade desejada, Mín., Máx., escolha a nova capacidade desejada do grupo e os novos limites de tamanho mínimo e máximo. A capacidade desejada deve ser maior ou igual ao tamanho mínimo do grupo e menor ou igual ao tamanho máximo do grupo.

  6. Em Recurrence (Recorrência), selecione uma das opções disponíveis.

    • Se você quiser escalar em uma programação recorrente, escolha com que frequência o Amazon EC2 Auto Scaling deve executar a ação programada.

      • Se você escolher uma opção que começa com Every (A cada), a expressão Cron será criada para você.

      • Se você escolher Cron, insira uma expressão do cron que especifique quando executar a ação, em UTC.

    • Se você quiser escalar apenas uma vez, escolha Once (Uma vez).

  7. Em Time zone (Fuso horário), escolha um fuso horário. O padrão é Etc/UTC.

    Todos os fusos horários listados são do banco de dados de fuso horário da IANA. Para obter mais informações, consulte https://en.wikipedia.org/wiki/List_of_tz_database_time_zones.

  8. Defina uma data e hora para Specific start time (Horário de início específico).

    • Se você escolher uma programação recorrente, o horário inicial definirá quando a primeira ação programada na série recorrente será executada.

    • Se você escolheu Once (Uma vez) como recorrência, o horário inicial define a data e a hora para a ação programada ser executada.

  9. (Opcional) Para programações recorrentes, você pode especificar uma hora final escolhendo Set End Time (Definir horário de término) e, em seguida, escolher uma data e hora para End by (Encerrar em).

  10. Escolha Criar. O console exibe as ações programadas para o grupo do Auto Scaling.

AWS CLI

Para criar uma ação agendada, você pode usar um dos seguintes comandos de exemplo. Substitua cada espaço reservado para entrada do usuário por suas próprias informações.

Exemplo: para escalar apenas uma vez

Use o seguinte comando put-scheduled-update-group-action com as --desired-capacity opções --start-time "YYYY-MM-DDThh:mm:ssZ" e.

aws autoscaling put-scheduled-update-group-action --scheduled-action-name my-one-time-action \ --auto-scaling-group-name my-asg --start-time "2021-03-31T08:00:00Z" --desired-capacity 3
Exemplo: Para agendar o escalonamento em uma programação recorrente

Use o seguinte comando put-scheduled-update-group-action com as --desired-capacity opções --recurrence "cron expression" e.

aws autoscaling put-scheduled-update-group-action --scheduled-action-name my-recurring-action \ --auto-scaling-group-name my-asg --recurrence "0 9 * * *" --desired-capacity 3

Por padrão, o Amazon EC2 Auto Scaling executa a programação de recorrência especificada com base no fuso horário UTC. Para especificar um fuso horário diferente, inclua a --time-zone opção e o nome do fuso horário da IANA, como no exemplo a seguir.

--time-zone "America/New_York"

Para obter mais informações, consulte https://en.wikipedia.org/wiki/List_of_tz_database_time_zones.

Exibir detalhes da ação agendada

Para ver detalhes das próximas ações agendadas para seu grupo de Auto Scaling, use um dos seguintes métodos:

Console
Para ver os detalhes da ação agendada
  1. Abra o console do Amazon EC2 em https://console.aws.amazon.com/ec2/ e escolha grupos do Auto Scaling no painel de navegação.

  2. Selecione seu grupo do Auto Scaling.

  3. Na guia Escala automática, na seção Ações agendadas, você pode ver as próximas ações agendadas.

Observe que o console mostra os valores da hora de início e hora de término em seu horário local com o deslocamento UTC em vigor na data e hora especificadas. O deslocamento de UTC é a diferença, em horas e minutos, da hora local para a UTC. O valorde Time zone (Fuso horário) mostra seu fuso horário solicitado, por exemplo, America/New_York.

AWS CLI

Use o seguinte comando describe-scheduled-actions:

aws autoscaling describe-scheduled-actions --auto-scaling-group-name my-asg

Se houver êxito, o comando gerará uma saída semelhante à seguinte.

{ "ScheduledUpdateGroupActions": [ { "AutoScalingGroupName": "my-asg", "ScheduledActionName": "my-recurring-action", "Recurrence": "30 0 1 1,6,12 *", "ScheduledActionARN": "arn:aws:autoscaling:us-west-2:123456789012:scheduledUpdateGroupAction:8e86b655-b2e6-4410-8f29-b4f094d6871c:autoScalingGroupName/my-asg:scheduledActionName/my-recurring-action", "StartTime": "2020-12-01T00:30:00Z", "Time": "2020-12-01T00:30:00Z", "MinSize": 1, "MaxSize": 6, "DesiredCapacity": 4 } ] }

Verificar as atividades de escalabilidade

Para verificar as atividades de escalabilidade associadas à escalabilidade programada, consulteVerificar uma ação de escalabilidade para um grupo do Auto Scaling.

Excluir uma ação programada

Para excluir uma ação agendada, use um dos seguintes métodos:

Console
Para excluir uma ação programada
  1. Abra o console do Amazon EC2 em https://console.aws.amazon.com/ec2/ e escolha grupos do Auto Scaling no painel de navegação.

  2. Selecione seu grupo do Auto Scaling.

  3. Na guia Automatic scaling (Escalabilidade automática) em Scheduled actions (Ações programadas), selecione uma ação programada.

  4. Escolha Ações, Excluir.

  5. Quando a confirmação for solicitada, escolha Sim, excluir.

AWS CLI

Use o seguinte comando delete-scheduled-action:

aws autoscaling delete-scheduled-action --auto-scaling-group-name my-asg \ --scheduled-action-name my-recurring-action

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.