Usar ações programadas para substituir os valores de previsão para o Amazon ECS
Às vezes, você pode ter informações adicionais sobre seus futuros requisitos de aplicações que o cálculo de previsão não pode levar em conta. Por exemplo, os cálculos de previsão podem subestimar as tarefas necessárias para um evento de marketing futuro. É possível usar ações programadas para substituir temporariamente a previsão durante períodos futuros. As ações programadas podem ser executadas de forma recorrente ou em uma data e hora específicas quando houver flutuações de demanda únicas.
Por exemplo, você pode criar uma ação programada com um número maior de tarefas que o previsto. Em runtime, o Amazon ECS atualiza o número mínimo de tarefas em seu serviço. Como o ajuste de escala preditivo otimiza o número de tarefas, uma ação programada com um número mínimo de tarefas maior do que os valores de previsão é respeitada. Isso impede que o número de tarefas seja inferior ao esperado. Para interromper a substituição da previsão, use uma segunda ação agendada para retornar o número mínimo de tarefas à configuração original.
O procedimento a seguir descreve as etapas necessárias para substituir a previsão durante períodos futuros.
Importante
Este tópico pressupõe que você esteja tentando substituir a previsão para escalar para uma capacidade maior do que a prevista. Se você precisar diminuir temporariamente o número de tarefas sem a interferência de uma política de ajuste de escala preditivo, use o modo somente previsão. Enquanto estiver no modo somente de previsão, a escala preditiva continuará a gerar previsões, mas não aumentará automaticamente o número de tarefas. Você então poderá monitorar a utilização dos recursos e diminuir manualmente o número de tarefas conforme necessário.
Etapa 1: (Opcional) Analisar dados de séries temporais
Comece analisando os dados de séries temporais de previsão. Essa é uma etapa opcional, mas é útil quando você deseja entender os detalhes da previsão.
-
Recuperar a previsão
Após a criação da previsão, é possível consultar um período específico na previsão. O objetivo da consulta é obter uma visão completa dos dados de séries temporais para um período específico.
Sua consulta pode incluir até dois dias de dados de previsão futura. Se você usa a escalabilidade preditiva há algum tempo, também pode acessar seus dados de previsão anteriores. No entanto, a duração máxima de tempo entre as horas inicial e final é de 30 dias.
Para obter a previsão usando o comando da AWS CLI get-predictive-scaling-forecast, forneça os seguintes parâmetros no comando:
-
Inclua o nome do cluster no parâmetro
resource-id. -
Insira o nome da política no parâmetro
--policy-name. -
Insira a hora de início no parâmetro
--start-timepara retornar apenas os dados de previsão para depois ou no horário especificado. -
Insira a hora de término no parâmetro
--end-timepara retornar apenas os dados de previsão para antes do horário especificado.
aws application-autoscaling get-predictive-scaling-forecast \ --service-namespace ecs \ --resource-id service/MyCluster/test \ --policy-namecpu40-predictive-scaling-policy\ --scalable-dimension ecs:service:DesiredCount \ --start-time "2021-05-19T17:00:00Z" \ --end-time "2021-05-19T23:00:00Z"Se bem-sucedido, o comando retornará uma resposta semelhante à seguinte.
{ "LoadForecast": [ { "Timestamps": [ "2021-05-19T17:00:00+00:00", "2021-05-19T18:00:00+00:00", "2021-05-19T19:00:00+00:00", "2021-05-19T20:00:00+00:00", "2021-05-19T21:00:00+00:00", "2021-05-19T22:00:00+00:00", "2021-05-19T23:00:00+00:00" ], "Values": [ 153.0655799339254, 128.8288551285919, 107.1179447150675, 197.3601844551528, 626.4039934516954, 596.9441277518481, 677.9675713779869 ], "MetricSpecification": { "TargetValue": 40.0, "PredefinedMetricPairSpecification": { "PredefinedMetricType": "ASGCPUUtilization" } } } ], "CapacityForecast": { "Timestamps": [ "2021-05-19T17:00:00+00:00", "2021-05-19T18:00:00+00:00", "2021-05-19T19:00:00+00:00", "2021-05-19T20:00:00+00:00", "2021-05-19T21:00:00+00:00", "2021-05-19T22:00:00+00:00", "2021-05-19T23:00:00+00:00" ], "Values": [ 2.0, 2.0, 2.0, 2.0, 4.0, 4.0, 4.0 ] }, "UpdateTime": "2021-05-19T01:52:50.118000+00:00" }A resposta inclui duas previsões:
LoadForecasteCapacityForecast.LoadForecastmostra a previsão de carga horária.CapacityForecastmostra os valores de previsão para a capacidade que é necessária em uma base horária para lidar com a carga prevista enquanto mantém umTargetValuede 40,0 (40% de utilização média da CPU). -
-
Identificar o período-alvo
Identifique a hora ou horas em que a flutuação de demanda única deverá ocorrer. Lembre-se de que as datas e os horários mostrados na previsão estão em UTC.
Etapa 2: Criar duas ações programadas
Em seguida, crie duas ações programadas para um período específico em que sua aplicação terá uma carga maior do que a prevista. Por exemplo, se você tiver um evento de marketing que irá direcionar o tráfego para seu site por um período limitado, poderá programar uma ação única para atualizar a capacidade mínima quando ele começar. Em seguida, agende outra ação para retornar a capacidade mínima para a configuração original quando o evento terminar.
Abra o console em https://console.aws.amazon.com/ecs/v2
. -
Na página Clusters, escolha o cluster.
-
Na página de detalhes do cluster, na seção Serviços, escolha o serviço.
A página de detalhes do serviço é exibida.
-
Escolha Ajuste de escala automático do serviço.
A página de políticas será exibida.
-
Escolha Ações programadas e, em seguida, escolha Criar.
A página Criar ação de programação é exibida.
-
Em Nome da ação, insira um nome exclusivo.
-
Em Time zone (Fuso horário), escolha um fuso horário.
Todos os fusos horários listados são do banco de dados de fuso horário da IANA. Para obter mais informações, consulte a Lista de fusos horários no banco de dados de FH
. -
Em Hora de início, insira a Data e a Hora em que a ação começa.
-
Em Recurrence (Recorrência), escolha Once (Uma vez).
-
Em Ajustes de tarefas, para Mínimo, insira um valor inferior ou igual ao número máximo de tarefas.
-
Escolha Criar ação programada.
A página de políticas será exibida.
-
Configure uma segunda ação programada para retornar o número mínimo de tarefas para a configuração original no final do evento. A escalabilidade preditiva pode escalar o número de tarefas somente quando o valor definido para Minínimo é menor que os valores da previsão.
Para criar duas ações programadas para eventos únicos (AWS CLI)
Para usar o AWS CLI para criar as ações programadas, use o comando put-scheduled-update-group-action.
Por exemplo, vamos definir uma programação que mantenha uma capacidade mínima de três instâncias em 19 de maio às 17h por oito horas. Os comandos a seguir mostram como implementar esse cenário.
O primeiro comando put-scheduled-update-group-action instrui o Amazon EC2 Auto Scaling a atualizar a capacidade mínima do grupo do Auto Scaling especificado às 17h UTC em 19 de maio de 2021.
aws autoscaling put-scheduled-update-group-action --scheduled-action-namemy-event-start\ --auto-scaling-group-namemy-asg--start-time "2021-05-19T17:00:00Z" --minimum-capacity3
O segundo comando instrui o Amazon EC2 Auto Scaling a definir a capacidade mínima do grupo como um à 1h da manhã UTC em 20 de maio de 2021.
aws autoscaling put-scheduled-update-group-action --scheduled-action-namemy-event-end\ --auto-scaling-group-namemy-asg--start-time "2021-05-20T01:00:00Z" --minimum-capacity1
Após você adicionar essas ações programadas ao grupo do Auto Scaling, o Amazon EC2 Auto Scaling fará o seguinte:
-
Às 17h UTC em 19 de maio de 2021, a primeira ação programada é executada. Se o grupo tiver menos de três instâncias, ele será expandido para três instâncias. Durante esse período e nas próximas oito horas, o Amazon EC2 Auto Scaling poderá continuar a aumentar a escala na horizontal se a capacidade prevista for maior do que a capacidade real ou se houver uma política de escalabilidade dinâmica em vigor.
-
À 1h da manhã UTC em 20 de maio de 2021, a segunda ação programada é executada. Isso retorna a capacidade mínima para sua configuração original no final do evento.
Escalabilidade com base em programações recorrentes
Para substituir a previsão para o mesmo período de tempo todas as semanas, crie duas ações programadas e forneça a lógica de hora e data usando uma expressão cron.
A expressão cron consiste em cinco campos separados por espaços: [Minute] [Hour] [Day_of_Month] [Month_of_Year] [Day_of_Week]. Os campos podem conter quaisquer valores permitidos, incluindo caracteres especiais.
Por exemplo, esta expressão cron executa a ação todas as terças-feiras às 6h30. O asterisco é usado como um curinga para corresponder a todos os valores de um campo.
30 6 * * 2
Consulte também
Para obter mais informações sobre como gerenciar ações programadas, consulte Usar ações programadas para escalar os serviços do Amazon ECS.