Serviço Auto Scaling - Amazon Elastic Container Service

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

Serviço Auto Scaling

A escalabilidade automática é a capacidade de aumentar ou diminuir automaticamente a contagem desejada de tarefas no serviço do Amazon ECS. O Amazon ECS aproveita o serviço do Aplicativo Auto Scaling para fornecer essa funcionalidade. Para obter mais informações, consulte o Guia do usuário do Aplicativo Auto Scaling.

O Amazon ECS publica métricas do CloudWatch com o uso médio de CPU e memória pelo serviço. Para obter mais informações, consulte Utilização do serviço. Você pode usar essas e outras métricas do CloudWatch para expandir seu serviço (adicionar mais tarefas) para lidar com alta demanda em horários de pico e para reduzir o serviço (executar menos tarefas) de modo a reduzir os custos durante períodos de baixa utilização.

O Serviço Auto Scaling do Amazon ECS oferece suporte aos seguintes tipos de escalabilidade automática:

  • Políticas de escalabilidade de rastreamento de destino — Aumenta ou diminui o número de tarefas que o serviço executa com base em um valor de destino para uma métrica específica. Isso é semelhante à forma como o termostato mantém a temperatura da casa. Você seleciona a temperatura, e o termostato faz o resto.

  • Políticas de escalabilidade em etapas — Aumenta ou diminui o número de tarefas que o serviço executa com base em um conjunto de ajustes de escalabilidade, conhecidos como ajustes em etapas, que variam com base no tamanho da violação do alarme.

  • Escalabilidade programada — Aumenta ou diminui o número de tarefas executadas pelo serviço com base na data e hora.

Auto Scaling de serviços e implantações

Como prática recomendada para evitar que processos de expansão se comportem como processos de expansão horizontal, suspenda o dimensionamento dinâmico durante as implantações. Isso impedirá que os alarmes disparem processos de expansão e expansão horizontal que dependem da contagem de tarefas em execução. Execute as etapas a seguir para evitar esse problema.

  1. Chame odescribe-scalable-targets, especificando o ID do recurso do serviço ECS associado ao destino escalável no Application Auto Scaling (Exemplo: service/default/sample-webapp). Registre a saída. Você precisará dele quando chamar o próximo comando.

  2. Chame oRegister-scalable-target, especificando o ID do recurso, namespace e dimensão escalável. Especifique otruepara ambosDynamicScalingInSuspendedeDynamicScalingOutSuspended.

  3. Depois que a implantação estiver concluída, é possível chamar oRegister-scalable-targetpara retomar o dimensionamento.

Para obter mais informações, consulteSuspendendo e retomando o dimensionamento paraApplication Auto Scaling.

Permissões do IAM necessárias para o Serviço Auto Scaling

Serviço Auto Scaling é possibilitado por uma combinação das APIs de Amazon ECS, CloudWatch e Application Auto Scaling. Os serviços são criados e atualizados com o Amazon ECS, os alarmes são criados com CloudWatch e as políticas de escalabilidade são criadas com o Application Auto Scaling.

Além das permissões padrão do IAM para criar e atualizar serviços, o usuário do IAM que está acessando as configurações do Serviço Auto Scaling deve ter as permissões apropriadas para os serviços que oferecem suporte à escalabilidade dinâmica. Os usuários do IAM devem ter permissões para usar as ações no seguinte exemplo de política:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "application-autoscaling:*", "ecs:DescribeServices", "ecs:UpdateService", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm", "cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarmHistory", "cloudwatch:DescribeAlarmsForMetric", "cloudwatch:GetMetricStatistics", "cloudwatch:ListMetrics", "cloudwatch:DisableAlarmActions", "cloudwatch:EnableAlarmActions", "iam:CreateServiceLinkedRole", "sns:CreateTopic", "sns:Subscribe", "sns:Get*", "sns:List*" ], "Resource": [ "*" ] } ] }

Os exemplos de política Exemplo para criar serviço e Exemplo para atualizar serviço do IAM mostram as permissões obrigatórias para que usuários do IAM usem Serviço Auto Scaling no Console de gerenciamento da AWS.

O serviço do Application Auto Scaling também precisa de permissão para descrever os serviços do Amazon ECS e os alarmes do CloudWatch, bem como permissões para modificar a contagem desejada do serviço em seu nome. Se você habilitar a escalabilidade automática para seus serviços do ECS, ele criará uma função vinculada ao serviço chamada AWSServiceRoleForApplicationAutoScaling_ECSService. Essa função vinculada ao serviço concede permissão ao Application Auto Scaling para descrever os alarmes das políticas, monitorar a contagem atual de tarefas em execução do serviço e modificar a contagem desejada do serviço. A função gerenciada original do Amazon ECS para o Application Auto Scaling era ecsAutoscaleRole, mas ela não é mais necessária. Essa função vinculada ao serviço é a função padrão do Application Auto Scaling. Para obter mais informações, consulte Funções vinculadas ao serviço no Guia do usuário do Aplicativo Auto Scaling.

Observe que caso tenha criado a função da instância de contêiner do Amazon ECS antes das métricas do CloudWatch terem sido disponibilizadas para o Amazon ECS, talvez você precise adicionar a permissão ecs:StartTelemetrySession. Para obter mais informações, consulte HabilitarCloudWatchMétricas do.