Come posso configurare la scalabilità automatica del servizio Amazon ECS su Fargate?

6 minuti di lettura
0

Voglio configurare la scalabilità automatica del servizio Amazon Elastic Container Service (Amazon ECS) su AWS Fargate.

Breve descrizione

È possibile aumentare o diminuire il numero desiderato di attività integrando Amazon ECS su Fargate con gli allarmi Amazon CloudWatch e Application Auto Scaling. Pertanto, è possibile utilizzare i parametri CloudWatch per configurare gli allarmi CloudWatch.

Quando gli allarmi CloudWatch attivano una policy di Auto Scaling, Application Auto Scaling stabilisce il nuovo conteggio desiderato in base alla policy di scalabilità configurata. Application Auto Scaling effettua quindi una chiamata API UpdateService ad Amazon ECS con il nuovo valore di conteggio desiderato. Il pianificatore del servizio Amazon ECS avvia o interrompe le attività per soddisfare il nuovo conteggio desiderato. L'attività di ridimensionamento rimane in stato InProgress fino a quando il conteggio corrente non corrisponde al conteggio desiderato.

Nota: In caso di errori durante l'esecuzione dei comandi dell’interfaccia della linea di comando AWS (AWS CLI), assicurati di utilizzare la versione più recente dell'interfaccia AWS CLI.

Risoluzione

Nota: L'utente IAM che accede alle impostazioni di scalabilità automatica del servizio deve disporre delle autorizzazioni necessarie per i servizi che supportano la scalabilità dinamica. Per ulteriori informazioni, consulta Autorizzazioni IAM richieste per la scalabilità automatica del servizio.

Configura la scalabilità automatica del servizio per il servizio Fargate

Quando crei o aggiorni un servizio nella console Amazon ECS, seleziona i seguenti valori dalla pagina Imposta scalabilità automatica:

1.    Seleziona Configura scalabilità automatica del servizio per modificare il conteggio desiderato del servizio.

2.    In Numero minimo di attività, inserisci il numero minimo di attività che desideri utilizzare con la scalabilità automatica del servizio.

3.    In Numero desiderato di attività, inserisci il numero di attività che desideri utilizzare con la scalabilità automatica del servizio.

Nota: Il numero desiderato di attività deve essere compreso nell'intervallo tra il numero minimo e massimo di attività.

4.    In Numero massimo di attività, inserisci il numero massimo di attività che desideri utilizzare con la scalabilità automatica del servizio.

Nota: Il numero minimo e massimo di attività sono limiti rigidi per il servizio utilizzato.

5.    In Ruolo IAM per la scalabilità automatica del servizio, seleziona ecsAutoscaleRole.

6.    Nella sezione Policy di scalabilità automatica delle attività, seleziona Policy di dimensionamento automatico.

7.    Completa i passaggi restanti della procedura guidata di configurazione per creare o aggiornare il servizio.

Seleziona una policy di dimensionamento

Seleziona una policy di monitoraggio degli obiettivi o una policy di dimensionamento per fasi in base alle esigenze e alle seguenti considerazioni:

Per le policy di monitoraggio degli obiettivi:

  • È necessario definire un valore target (soglia) per il parametro specificato. Application Auto Scaling crea e gestisce gli allarmi CloudWatch che attivano la policy di dimensionamento.
  • È possibile utilizzare i parametri di servizio Amazon ECS ECSServiceAverageCPUUtilization, ECSServiceAverageMemoryUtilization e ALBRequestCountPerTarget per il monitoraggio degli obiettivi.
  • La policy di monitoraggio degli obiettivi calcola l'adeguamento di dimensionamento (ovvero il conteggio desiderato di attività) in base al parametro e al valore target definiti. Non è necessario configurare l'azione di dimensionamento come si fa con una policy di dimensionamento per fasi. perché una policy di monitoraggio degli obiettivi aggiunge o rimuove la capacità necessaria per mantenere il parametro pari o vicino al valore target specificato.
  • È necessario scegliere un periodo di attesa per riduzione o aumento orizzontale.

Per policy di dimensionamento per fasi:

  • È possibile creare o utilizzare allarmi CloudWatch esistenti per qualsiasi parametro di dimensionamento per fasi.
  • È necessario scegliere azioni di dimensionamento o adeguamenti di fasi, come ScalingAdjustment, MetricIntervalUpperBound e MetricIntervalLowerBound.
  • È possibile specificare il tipo di adeguamento di dimensionamento in percentuale sulla capacità corrente dell’obiettivo scalabile oppure utilizzando numeri assoluti.
  • È possibile aumentare o ridurre il numero desiderato di attività creando policy di dimensionamento per gestire le attività di scalabilità orizzontale in aumento o riduzione.

Nota: Per ulteriori informazioni, consulta la Fase 5: Configurazione del servizio per l'utilizzo della scalabilità automatica del servizio.

Configura la scalabilità automatica del servizio con l'interfaccia AWS CLI

1.    Registra il servizio Fargate come obiettivo scalabile con Application Auto Scaling:

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

2.    Crea una policy di monitoraggio degli obiettivi o di dimensionamento per fasi per l'obiettivo scalabile (ovvero il servizio Fargate).

Policy di monitoraggio degli obiettivi:

Crea una 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 gli aumenti o riduzioni orizzontali in base al valore target (soglia) scelto.

Policy di dimensionamento per fasi:

1.    Crea una policy di dimensionamento per fasi con gli adeguamenti di fasi necessari:

aws application-autoscaling put-scaling-policy \
--service-namespace ecs --scalable-dimension ecs:service:DesiredCount \
--resource-id service/your-cluster/your-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 policy di dimensionamento per fasi della fase 1 come operazione di allarme all’allarme CloudWatch nuovo o esistente:

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=your-cluster Name=ServiceName,Value=your-service-name --unit Percent \
--alarm-actions "arn:aws:autoscaling:us-east-1:xxxxxxx:scalingPolicy:xxxxxx/Test-Step-scaling-policy-ScaleOut"

3.    Crea un'altra policy di dimensionamento per fasi e un allarme CloudWatch per l'attività di aumento orizzontale.

Nota: Quando l'attività di riduzione orizzontale del servizio è in corso, qualsiasi attività di aumento orizzontale attivata da CloudWatch viene bloccata fino al completamento dell'attività di riduzione orizzontale. L'attività di riduzione orizzontale InProgress si interrompe quando Amazon ECS non raggiunge il numero desiderato impostato da Auto Scaling. Il time out può avere diverse cause, ad esempio problemi di immagine o di rete. Se un'attività di aumento orizzontale viene attivata dai parametri CloudWatch durante il periodo di attesa per riduzione orizzontale, ma viene completata un’attività di riduzione orizzontale, viene eseguita un'attività di aumento orizzontale.


Informazioni correlate

Risoluzione dei problemi di scalabilità automatica del servizio

Scalabilità automatica del servizio

DescribeScalingActivities

Riferimento ai comandi dell'interfaccia AWS CLI per la scalabilità automatica delle applicazioni

AWS UFFICIALE
AWS UFFICIALEAggiornata 2 anni fa