Creazione di una policy di dimensionamento predittivo per dimensionamento automatico del servizio Amazon ECS
Creare una policy di dimensionamento predittivo per consentire ad Amazon ECS di aumentare o diminuire il numero di attività eseguite dal servizio in base ai dati cronologici.
Nota
Un nuovo servizio deve fornire almeno 24 ore di dati prima di poter generare una previsione.
-
Oltre alle autorizzazioni IAM standard per la creazione e l'aggiornamento dei servizi, sono necessarie autorizzazioni aggiuntive. Per ulteriori informazioni, consultare Autorizzazioni IAM richieste per il dimensionamento automatico dei servizi Amazon ECS.
-
Determinare le metriche da utilizzare per la policy. Sono disponibili i seguenti parametri:
-
ECSServiceAverageCPUUtilization: l'utilizzo medio di CPU da parte del servizio.
-
ECSServiceAverageMemoryUtilization: l'utilizzo medio della memoria da parte del servizio.
-
ALBRequestCountPerTarget: il numero medio di richieste al minuto che dovrebbe ricevere idealmente l'attività.
In alternativa, è possibile utilizzare una metrica personalizzata. È necessario definire i seguenti valori:
-
Carico: una metrica che rappresenta con precisione il carico completo dell'applicazione ed è l'aspetto dell'applicazione su cui è più importante basare il dimensionamento.
-
Metrica di dimensionamento: il miglior indicatore del grado di utilizzo ideale per l'applicazione.
-
Apri la console all'indirizzo https://console.aws.amazon.com/ecs/v2
. -
Nella pagina Cluster, scegliere il cluster.
-
Nella pagina dei dettagli del cluster, nella sezione Servizi, selezionare il servizio.
Si apre la pagina dei dettagli del servizio.
-
Scegliere Dimensionamento automatico del servizio, quindi scegliere Imposta il numero di attività.
-
Nella sezione Conteggio delle attività del servizio di Amazon ECS, scegliere Utilizzare il dimensionamento automatico.
Si apre la Sezione dedicata al conteggio delle attività.
-
Per Numero minimo di attività, inserire il limite inferiore del numero di attività che devono essere utilizzate dal servizio di dimensionamento automatico. Il numero desiderato non scenderà al di sotto di questo conteggio.
-
Per Massimo, inserire il limite superiore del numero di attività che devono essere utilizzate dal servizio di dimensionamento automatico. Il numero desiderato non sarà superiore a questo conteggio.
-
Scegli Save (Salva).
Si apre la pagina delle policy.
-
-
Scegliere Crea una policy di dimensionamento.
Si apre la pagina Crea policy.
-
Per Tipo di policy di dimensionamento, scegliere Dimensionamento predittivo.
-
In Nome policy, inserire il nome della policy.
-
In Coppia di parametri, scegliere i parametri dall'elenco di opzioni.
Se è stato scelto Conteggio delle richieste Application Load Balancer per destinazione, scegliere un gruppo di destinazione in Gruppo di destinazione. Conteggio di richieste Application Load Balancer per destinazione è supportato solo se è stato allegato un gruppo di destinazione Application Load Balancer per il servizio.
Se è stato scelto Coppia di parametri personalizzati, scegliere i singoli parametri dagli elenchi per Parametro del carico e Parametro di dimensionamento.
-
Per Utilizzo di destinazione, inserire il valore della destinazione per la percentuale di attività che Amazon ECS deve mantenere. Il dimensionamento automatico del servizio aumenta orizzontalmente la capacità finché l'utilizzo medio arriva a quello di destinazione o finché non raggiunge il numero massimo di attività specificato.
-
Scegliere Crea una policy di dimensionamento.
Utilizzare la AWS CLI come indicato di seguito per configurare policy di dimensionamento predittivo per il servizio Amazon ECS. Sostituisci ciascun placeholder input dell'utente con le tue informazioni.
Per ulteriori informazioni sui parametri di CloudWatch specificabili, consultare PredictiveScalingMetricSpecification nella Documentazione di riferimento per le API Amazon EC2 Auto Scaling.
Esempio 1: una policy di dimensionamento predittivo con memoria predefinita.
Di seguito è riportato un esempio di policy con una configurazione di memoria predefinita.
cat policy.json { "MetricSpecifications": [ { "TargetValue":40, "PredefinedMetricPairSpecification": { "PredefinedMetricType": "ECSServiceMemoryUtilization" } } ], "SchedulingBufferTime":3600, "MaxCapacityBreachBehavior": "HonorMaxCapacity", "Mode": "ForecastOnly" }
L'esempio seguente illustra la creazione della policy eseguendo il comando put-scaling-policy con il file di configurazione specificato.
aws application-autoscaling put-scaling-policy \ --service-namespaceecs\ --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
In caso di esito positivo, questo comando restituisce l'ARN della policy.
{
"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": []
}
Esempio 2: una policy di dimensionamento predittivo con CPU predefinita.
Di seguito è riportato un esempio di policy con una configurazione di CPU predefinita.
cat policy.json { "MetricSpecifications": [ { "TargetValue":0.00000004, "PredefinedMetricPairSpecification": { "PredefinedMetricType": "ECSServiceCPUUtilization" } } ], "SchedulingBufferTime":3600, "MaxCapacityBreachBehavior": "HonorMaxCapacity", "Mode": "ForecastOnly" }
L'esempio seguente illustra la creazione della policy eseguendo il comando put-scaling-policy con il file di configurazione specificato.
aws aas put-scaling-policy \ --service-namespaceecs\ --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
In caso di esito positivo, questo comando restituisce l'ARN della policy.
{
"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": []
}