Usar ações programadas para substituir os valores de previsão para o Amazon ECS - Amazon Elastic Container Service

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. Você pode 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.

  1. 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-time para retornar apenas os dados de previsão para depois ou no horário especificado.

    • Insira a hora de término no parâmetro --end-time para 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-name cpu40-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: LoadForecast e CapacityForecast. LoadForecast mostra a previsão de carga horária. CapacityForecast mostra 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 um TargetValue de 40,0 (40% de utilização média da CPU).

  2. 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.

  1. Abra o console em https://console.aws.amazon.com/ecs/v2.

  2. Na página Clusters, escolha o cluster.

  3. 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.

  4. Escolha Ajuste de escala automático do serviço.

    A página de políticas será exibida.

  5. Escolha Ações programadas e, em seguida, escolha Criar.

    A página Criar ação de programação é exibida.

  6. Em Nome da ação, insira um nome exclusivo.

  7. 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.

  8. Em Hora de início, insira a Data e a Hora em que a ação começa.

  9. Em Recurrence (Recorrência), escolha Once (Uma vez).

  10. Em Ajustes de tarefas, para Mínimo, insira um valor inferior ou igual ao número máximo de tarefas.

  11. Escolha Criar ação programada.

    A página de políticas será exibida.

  12. 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-name my-event-start \ --auto-scaling-group-name my-asg --start-time "2021-05-19T17:00:00Z" --minimum-capacity 3

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-name my-event-end \ --auto-scaling-group-name my-asg --start-time "2021-05-20T01:00:00Z" --minimum-capacity 1

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.