Usando AWS re:Post, accetti AWS re:Post Termini di utilizzo

Come posso configurare il dimensionamento automatico del servizio Amazon ECS su Fargate?

5 minuti di lettura
0

Voglio configurare il dimensionamento automatico del servizio Amazon Elastic Container Service (Amazon ECS) su AWS Fargate.

Breve descrizione

Per aumentare o diminuire il numero di attività, integra Amazon ECS in Fargate con gli allarmi Amazon CloudWatch e AWS Application Auto Scaling. È quindi possibile utilizzare i parametri CloudWatch per configurare gli allarmi CloudWatch.

Quando l'allarme CloudWatch avvia un dimensionamento automatico, Application Auto Scaling utilizza la policy di dimensionamento configurata per determinare il nuovo conteggio. Application Auto Scaling effettua quindi una chiamata API UpdateService ad Amazon ECS con il nuovo valore di conteggio. Il pianificatore del servizio Amazon ECS avvia o interrompe le attività per soddisfare il nuovo conteggio. L'attività di dimensionamento rimane allo stato InProgress fino a quando il conteggio corrente non corrisponde al nuovo conteggio.

Soluzione

Nota: l'utente AWS Identity and Access Management (IAM) che accede alle impostazioni di dimensionamento automatico del servizio deve disporre delle autorizzazioni necessarie per i servizi che supportano il dimensionamento dinamico. Per ulteriori informazioni, consulta Autorizzazioni IAM richieste per il dimensionamento dinamico del servizio.

Console Amazon ECS

Per configurare il dimensionamento automatico del servizio di Amazon ECS su Fargate, utilizza la console Amazon ECS per configurare il dimensionamento automatico del servizio. Quindi, aggiungi la policy di dimensionamento al servizio.

Configura il dimensionamento automatico del servizio

Quando crei o aggiorni un servizio nella console Amazon ECS, in Dimensionamento automatico del servizio, completa i seguenti passaggi:

  1. Seleziona l'opzione Usa il dimensionamento automatico del servizio.
  2. In Numero minimo di attività, inserisci il numero minimo di attività che desideri utilizzare con il dimensionamento automatico del servizio.
  3. In Numero massimo di attività, inserisci il numero massimo di attività che desideri utilizzare con il dimensionamento automatico del servizio.
    Nota: il numero minimo e massimo di attività sono limiti rigidi per il servizio utilizzato.

Aggiungi una politica di dimensionamento al servizio

In base alle esigenze, scegli una policy di tracciamento degli obiettivi o una policy di dimensionamento per fasi:

  • Per le policy di monitoraggio degli obiettivi: Completa la procedura riportata in To configure target scaling policies for your Amazon ECS service using the Amazon ECS console su Target tracking scaling policy.
  • Per policy di dimensionamento per fasi: Completa la procedura riportata in To configure step scaling policies for your Amazon ECS service using the Amazon ECS console in Step scaling policies.

AWS CLI

Nota: se ricevi messaggi di errore durante l'esecuzione dei comandi dell'interfaccia della linea di comando AWS (AWS CLI), consulta la sezione Troubleshoot AWS CLI errors. Inoltre, assicurati di utilizzare la versione più recente di AWS CLI.

Per configurare il dimensionamento automatico del servizio di Amazon ECS su Fargate, utilizza l'interfaccia AWS CLI per configurare il dimensionamento automatico del servizio. Quindi, crea una policy di tracciamento degli obiettivi o una policy di dimensionamento per fasi basata sui valori da te impostati.

Configura il dimensionamento automatico del servizio

Per registrare il servizio Fargate come obiettivo dimensionabile con Application Auto Scaling, utilizza il seguente comando:

aws application-autoscaling register-scalable-target \
--service-namespace ecs --scalable-dimension ecs:service:DesiredCount \
--resource-id service/<cluster>/<service-name> \
--min-capacity 1 --max-capacity 10 --region us-east-1

Crea una policy di tracciamento degli obiettivi o di dimensionamento per fasi

Crea una policy di tracciamento degli obiettivi o di dimensionamento per fasi per l’obiettivo dimensionabile. Nell'esempio seguente, il servizio Fargate è l'obiettivo dimensionabile.

Policy di monitoraggio degli obiettivi:

aws application-autoscaling put-scaling-policy \
--service-namespace ecs --scalable-dimension ecs:service:DesiredCount \
--resource-id service/<cluster>/<service-name> \
--policy-name Test-target-tracking-scaling-policy --policy-type TargetTrackingScaling \
--target-tracking-scaling-policy-configuration '{ "TargetValue": 75.0, "PredefinedMetricSpecification": {"PredefinedMetricType": "ECSServiceAverageCPUUtilization" }, "ScaleOutCooldown": 60,"ScaleInCooldown": 60}'

Nota: durante la creazione di una policy di monitoraggio degli obiettivi, Application Auto Scaling crea allarmi CloudWatch per il dimensionamento basato sui valori degli obiettivi scelti da te.

Policy di dimensionamento per fasi:

  1. Crea una policy di dimensionamento per fasi con le modifiche necessarie per la tua attività di aumento orizzontale:

    aws application-autoscaling put-scaling-policy \
    --service-namespace ecs --scalable-dimension ecs:service:DesiredCount \
    --resource-id service/<cluster>/<service-name> \
    --policy-name Test-Step-scaling-policy-ScaleOut --policy-type StepScaling \
    --step-scaling-policy-configuration '{"AdjustmentType": "ExactCapacity","StepAdjustments": [ { "MetricIntervalLowerBound": 20, "ScalingAdjustment": 10}, { "MetricIntervalLowerBound": 0, "MetricIntervalUpperBound": 20,"ScalingAdjustment": 5}],"Cooldown": 60, "MetricAggregationType": "Average"}'
  2. Associa la tua policy di dimensionamento come operazione di allarme al tuo allarme CloudWatch:

    aws cloudwatch put-metric-alarm \
    --alarm-name Test-ScaleOut --metric-name MemoryUtilization \
    --namespace AWS/ECS --statistic Average --period 60 --threshold 60 \
    --comparison-operator GreaterThanOrEqualToThreshold --evaluation-periods 1 --datapoints-to-alarm 1 \
    --dimensions Name=ClusterName,Value=<cluster> Name=ServiceName,Value=<service-name> --unit Percent \
    --alarm-actions "arn:aws:autoscaling:us-east-1:xxxxxxx:scalingPolicy:xxxxxx/Test-Step-scaling-policy-ScaleOut"
  3. Ripeti i passaggi per creare una seconda policy di dimensionamento e un allarme CloudWatch la riduzione orizzontale dell'attività.

Nota: quando CloudWatch è in fase di riduzione orizzontale, tutta l'attività di dimensionamento avviata da CloudWatch viene bloccata fino al completamento dell'attività di aumento orizzontale. L'attività di aumento orizzontale InProgress si interrompe quando Amazon ECS non raggiunge il conteggio impostato da Application Auto Scaling. Il timeout può avere diverse cause, ad esempio problemi legati alle immagini o alla rete. Se le metriche di CloudWatch iniziano a ridursi orizzontalmente durante il periodo di attesa per aumento orizzontale e viene completata un'attività di aumento orizzontale, viene eseguita un'attività di riduzione orizzontale.

Informazioni correlate

Risoluzione dei problemi di scalabilità automatica del servizio

Scalabilità automatica del servizio

DescribeScalingActivities

application-autoscaling

AWS UFFICIALE
AWS UFFICIALEAggiornata 9 mesi fa