Criar uma política de escalabilidade preditiva para ajuste de escala automático do serviço do Amazon ECS
Crie uma política de escalabilidade preditiva para que o Amazon ECS aumente ou diminua o número de tarefas executadas pelo serviço com base em dados de histórico.
nota
Um novo serviço precisa fornecer pelo menos 24 horas de dados antes que uma previsão possa ser gerada.
-
Além das permissões padrão do IAM para criar e atualizar serviços, você precisa de permissões adicionais. Para ter mais informações, consulte Permissões obrigatórias do IAM para o ajuste de escala automático do serviço Amazon ECS.
-
Determine as métricas a serem usadas para a política. As seguintes métricas estão disponíveis:
-
ECSServiceAverageCPUUtilization: utilização média da CPU que o serviço deveria usar.
-
ECSServiceAverageMemoryUtilization: utilização média da memória que o serviço deveria usar.
-
ALBRequestCountPerTarget: o número médio de solicitações por minuto que a tarefa deve idealmente receber.
Como alternativa, você pode usar uma métrica personalizada. É necessário definir os seguintes valores:
-
Carga: uma métrica que representa com precisão a carga total da aplicação e é o aspecto mais importante a ser escalado.
-
Métrica de escalabilidade: o melhor indicador de quanta utilização é ideal para sua aplicação.
-
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 Definir o número de tarefas.
-
Em Contagem de tarefas do serviço do Amazon ECS, escolha Usar ajuste de escala automático.
A seção Contagem de tarefas é exibida.
-
Em Número mínimo de tarefas, insira o limite inferior do número de tarefas a serem usadas pelo ajuste de escala automático. A contagem desejada não será inferior a essa contagem.
-
Em Máximo, insira o limite superior do número de tarefas a serem usadas pelo ajuste de escala automático. A contagem desejada não ultrapassará essa contagem.
-
Escolha Salvar.
A página de políticas será exibida.
-
-
Escolha Criar política de escalabilidade.
A página Criar política é exibida.
-
Em Tipo de política de escalabilidade, escolha Escalabilidade preditiva.
-
Em Policy name (Nome da política), insira o nome da política.
-
Em Métricas, escolha suas métricas na lista de opções.
Se tiver escolhido Application Load Balancer request count per target (Número de solicitações do Application Load Balancer por destino), escolha um grupo de destino em Target group (Grupo de destino). A opção Número de solicitações do Application Load Balancer por destino só será válida de você tiver anexado um grupo de destino do Application Load Balancer para seu serviço.
Se você escolheu Par de métricas personalizadas, escolha métricas individuais nas listas para Métrica de carga e Métrica de escalabilidade.
-
Em Utilização pretendida, insira o valor desejado para o percentual de tarefas que o Amazon ECS deve manter. O ajuste de escala automático do serviço expandirá sua capacidade até que a utilização média seja igual à utilização pretendida ou até atingir o número máximo de tarefas especificado.
-
Escolha Criar política de escalabilidade.
Use a AWS CLI conforme mostrado a seguir para configurar políticas de escalabilidade preditiva para seu serviço do Amazon ECS. Substitua cada espaço reservado para entrada do usuário
por suas próprias informações.
Para obter mais informações sobre as métricas do CloudWatch que você pode especificar para uma política de escalabilidade preditiva, consulte PredictivEscalingMetricSpecification na Referência da API do Amazon EC2 Auto Scaling.
Exemplo 1: uma política de escalabilidade preditiva com memória predefinida.
Veja a seguir um exemplo de política com uma configuração de memória predefinida.
cat policy.json { "MetricSpecifications": [ { "TargetValue":
40
, "PredefinedMetricPairSpecification": { "PredefinedMetricType": "ECSServiceMemoryUtilization
" } } ], "SchedulingBufferTime":3600
, "MaxCapacityBreachBehavior": "HonorMaxCapacity", "Mode": "ForecastOnly" }
O exemplo a seguir ilustra a criação da política via execução do comando put-scaling-policy com o arquivo de configuração especificado.
aws application-autoscaling put-scaling-policy \ --service-namespace
ecs
\ --regionus-east-1
\ --policy-namepredictive-scaling-policy-example
\ --resource-idservice/MyCluster/test
\ --policy-type PredictiveScaling \ --scalable-dimension ecs:service:DesiredCount \ --predictive-scaling-policy-configuration file://policy.json
Em caso de êxito, esse comando retornará o ARN da política.
{
"PolicyARN": "arn:aws:autoscaling:us-east-1:012345678912:scalingPolicy:d1d72dfe-5fd3-464f-83cf-824f16cb88b7:resource/ecs/service/MyCluster/test:policyName/predictive-scaling-policy-example",
"Alarms": []
}
Exemplo 2: uma política de escalabilidade preditiva com CPU predefinida.
Veja a seguir um exemplo de política com uma configuração de CPU predefinida.
cat policy.json { "MetricSpecifications": [ { "TargetValue":
0.00000004
, "PredefinedMetricPairSpecification": { "PredefinedMetricType": "ECSServiceCPUUtilization
" } } ], "SchedulingBufferTime":3600
, "MaxCapacityBreachBehavior": "HonorMaxCapacity", "Mode": "ForecastOnly" }
O exemplo a seguir ilustra a criação da política via execução do comando put-scaling-policy com o arquivo de configuração especificado.
aws aas put-scaling-policy \ --service-namespace
ecs
\ --regionus-east-1
\ --policy-namepredictive-scaling-policy-example
\ --resource-idservice/MyCluster/test
\ --policy-type PredictiveScaling \ --scalable-dimension ecs:service:DesiredCount \ --predictive-scaling-policy-configuration file://policy.json
Em caso de êxito, esse comando retornará o ARN da política.
{
"PolicyARN": "arn:aws:autoscaling:us-east-1:012345678912:scalingPolicy:d1d72dfe-5fd3-464f-83cf-824f16cb88b7:resource/ecs/service/MyCluster/test:policyName/predictive-scaling-policy-example",
"Alarms": []
}