Quero visualizar e gerenciar as ações de scaling programadas para meus serviços do Amazon Elastic Container Service (Amazon ECS).
Resolução
Observação: Se você receber erros ao executar comandos da AWS Command Line Interface (AWS CLI), consulte Solução de erros da AWS CLI. Além disso, verifique se você está usando a versão mais recente da AWS CLI.
Use o serviço do auto scaling para programar a contagem mínima e máxima de tarefas para um serviço Amazon ECS em um horário específico. Para configurar o auto scaling do serviço, é possível usar o console do Amazon ECS ou o AWS CLI.
Observe que, para usar o AWS CLI para configurar ações de scaling programadas, você deve primeiro registrar o serviço Amazon ECS como um destino dimensionável. Para verificar se existe um destino dimensionável para um serviço do Amazon ECS, execute o seguinte comando describe-scalable-targets:
aws application-autoscaling describe-scalable-targets \
--service-namespace ecs \
--resource-id service/ecs-cluster/service-name
Observação: Substitua ecs-cluster pelo nome do cluster e service-name pelo nome do serviço.
Se o serviço Amazon ECS não tiver um alvo dimensionável, execute o seguinte comando register-scalable-target para adicionar um:
aws application-autoscaling register-scalable-target \
--service-namespace ecs \
--scalable-dimension ecs:service:DesiredCount \
--resource-id service/ecs-cluster/service-name \
--min-capacity 0 \
--max-capacity 0
Observação: Substitua ecs-cluster pelo nome do cluster e service-name pelo nome do serviço.
Para visualizar e modificar todas as ações de scaling programadas no console do Amazon ECS, conclua as seguintes etapas:
- Abra o console do Amazon ECS.
- Escolha o guia Service auto scaling.
- Em Ações agendadas, na lista Ações selecione Exibir, Editar, ou Excluir.
Para usar a AWS CLI para criar uma nova ação de scaling agendada ou modificar uma ação de scaling agendada existente, execute o seguinte comando put-scheduled-action:
aws application-autoscaling put-scheduled-action \
--service-namespace ecs \
--scalable-dimension ecs:service:DesiredCount \
--resource-id service/ecs-cluster/service-name \
--scheduled-action-name action-name \
--scalable-target-action MinCapacity=minimum-count,MaxCapacity=maximum-count \
--schedule "schedule"
Observação: Substitua ecs-cluster pelo nome do cluster, service-name pelo nome do serviço e action-name pelo nome da ação agendada. Além disso, substitua a contagem mínima pela contagem mínima de tarefas, a contagem máxima pela contagem máxima de tarefas e a programação por uma taxa, cron ou expressão at.
Para usar a AWS CLI para visualizar uma ação agendada, execute o seguinte comando describe-scheduled-actions:
aws application-autoscaling describe-scheduled-actions \
--service-namespace ecs \
--resource-id service/ecs-cluster/service-name
Observação: Substitua ecs-cluster pelo nome do cluster e service-name pelo nome do serviço.
Para usar a AWS CLI para excluir uma ação agendada, execute o seguinte comando delete-scheduled-action:
aws application-autoscaling delete-scheduled-action \
--service-namespace ecs \
--scalable-dimension ecs:service:DesiredCount \
--resource-id service/ecs-cluster/service-name \
--scheduled-action-name action-name
Observação: Substitua ecs-cluster pelo nome do cluster, service-name pelo nome do serviço e action-name pelo nome da ação agendada.
Se você excluir todas as ações agendadas para um serviço do Amazon ECS, será possível cancelar o registro do serviço como um destino dimensionável. Execute o seguinte comando deregister-scalable-targett:
aws application-autoscaling deregister-scalable-target \
--service-namespace ecs \
--resource-id service/ecs-cluster/service-name \
--scalable-dimension ecs:service:DesiredCount
Observação: Substitua ecs-cluster pelo nome do cluster e service-name pelo nome do serviço.