Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Ridimensionamento automatico più rapido con metriche ad alta risoluzione
Per impostazione predefinita, Amazon ECS pubblica le metriche con una risoluzione CPUUtilization di 60 secondi. MemoryUtilization Puoi configurare una risoluzione di 20 secondi per velocizzare la scalabilità automatica dei servizi.
Le seguenti metriche predefinite ad alta risoluzione sono disponibili per le politiche di scalabilità di Target Tracking:
| PredefinedMetricType | Description |
|---|---|
ECSServiceAverageCPUUtilizationHighResolution |
Utilizzo medio della CPU con una risoluzione di 20 secondi |
ECSServiceAverageMemoryUtilizationHighResolution |
Utilizzo medio della memoria con una risoluzione di 20 secondi |
Crea un nuovo servizio con metriche ad alta risoluzione per una scalabilità automatica più rapida
-
Nella pagina Clusters, scegli il cluster in cui desideri creare il servizio.
-
Nella sezione Servizi, scegli Crea.
-
Nel modulo Crea servizio, nella sezione Configurazione di monitoraggio, scegli Aggiungi configurazione metrica.
-
Per Nome della metrica, seleziona la metrica che desideri raccogliere ad alta risoluzione. Scegli
CPUUtilizationoMemoryUtilization. -
Per Risoluzione (secondi), seleziona 20.
-
(Facoltativo) Per aggiungere entrambe le metriche ad alta risoluzione, scegli nuovamente Aggiungi configurazione metrica e ripeti i due passaggi precedenti per l'altra metrica.
-
Nella sezione Service auto scaling, scegli Use service auto scaling.
-
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.
-
In Numero massimo di processi, specificare il limite superiore del numero di processi che devono essere utilizzati dal servizio di dimensionamento automatico. Il numero desiderato non sarà superiore a questo conteggio.
-
In Tipo di policy di dimensionamento, scegli Monitoraggio obiettivi.
-
Per Tipo di metrica, seleziona la metrica ad alta risoluzione corrispondente. Ad esempio, scegli
ECSServiceAverageCPUUtilizationHighResolutionse hai configuratoCPUUtilizationcon una risoluzione di 20 secondi oECSServiceAverageMemoryUtilizationHighResolutionse hai configuratoMemoryUtilizationcon una risoluzione di 20 secondi. -
Per Valore target, immettete la percentuale di utilizzo target. Il Service Auto Scaling consente di ridimensionare la capacità fino a raggiungere il valore target di utilizzo medio o fino a raggiungere il numero massimo di attività specificato.
-
In Impostazioni aggiuntive, configura quanto segue:
-
Per Scale-out il periodo di recupero, inserisci il tempo in secondi di attesa che una precedente attività di scalabilità orizzontale abbia effetto.
-
Per Scale-in il periodo di recupero, inserisci l'intervallo di tempo in secondi dopo il completamento di un'attività di scalabilità prima che possa iniziare un'altra attività di scalabilità.
-
-
Scegli Crea per creare il servizio.
-
Crea il servizio con configurazione di monitoraggio utilizzando il comando create-service.
aws ecs create-service --regionus-east-1\ --clustermy-cluster\ --service-namemy-service\ --task-definitionmy-app:1\ --desired-count 2 \ --monitoring "metricConfigurations=[{metricNames=[CPUUtilization,MemoryUtilization],resolutionSeconds=20}]" -
Registra il servizio come destinazione scalabile utilizzando il comando register-scalable-target. https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/register-scalable-target.html
aws application-autoscaling register-scalable-target \ --service-namespace ecs \ --resource-id service/my-cluster/my-service\ --scalable-dimension ecs:service:DesiredCount \ --min-capacity1\ --max-capacity10\ --regionus-east-1 -
Crea una policy di ridimensionamento del tracciamento del target con una metrica predefinita ad alta risoluzione utilizzando il comando put-scaling-policy. https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/put-scaling-policy.html
aws application-autoscaling put-scaling-policy \ --service-namespace ecs \ --resource-id service/my-cluster/my-service\ --scalable-dimension ecs:service:DesiredCount \ --policy-namemy-highres-cpu-policy\ --policy-type TargetTrackingScaling \ --target-tracking-scaling-policy-configuration '{ "TargetValue":50.0, "PredefinedMetricSpecification": { "PredefinedMetricType": "ECSServiceAverageCPUUtilizationHighResolution" } }' \ --regionus-east-1 -
Verifica che la policy sia stata creata utilizzando il comando describe-scaling-policies. https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/describe-scaling-policies.html
aws application-autoscaling describe-scaling-policies \ --service-namespace ecs \ --resource-id service/my-cluster/my-service\ --scalable-dimension ecs:service:DesiredCount \ --regionus-east-1
Aggiorna un servizio esistente per utilizzare metriche ad alta risoluzione per una scalabilità automatica più rapida
L'aggiornamento di un servizio esistente per utilizzare metriche ad alta risoluzione per una scalabilità automatica più rapida del servizio è un processo in due fasi. È necessario innanzitutto aggiornare la risoluzione di monitoraggio, che attiva l'implementazione di un servizio. Dopo che la distribuzione è stata completata correttamente e tutte le attività emettono metriche con una risoluzione di 20 secondi, è possibile configurare una politica di scalabilità ad alta risoluzione.
Importante
Se in precedenza il servizio utilizzava una risoluzione metrica di 60 secondi, le metriche ad alta risoluzione per la politica di scalabilità saranno disponibili sulla console Amazon ECS solo dopo aver aggiornato il servizio per utilizzare una risoluzione metrica di 20 secondi e dopo aver completato la distribuzione del servizio.
Fase 1: aggiornamento della risoluzione di monitoraggio
-
Nella pagina Clusters, scegli il cluster che contiene il servizio che desideri aggiornare.
-
Nella sezione Servizi, seleziona il servizio e scegli Aggiorna.
-
Nel modulo Update Service, nella sezione Configurazione di monitoraggio, scegli Aggiungi configurazione metrica.
-
Per Nome della metrica, seleziona la metrica che desideri raccogliere ad alta risoluzione. Scegli
CPUUtilizationoMemoryUtilization. -
Per Risoluzione (secondi), seleziona 20.
-
(Facoltativo) Per aggiungere entrambe le metriche ad alta risoluzione, scegli nuovamente Aggiungi configurazione metrica e ripeti i due passaggi precedenti per l'altra metrica.
-
Scegli Aggiorna per inviare la modifica. Ciò attiva l'implementazione di un servizio.
-
Attendi il completamento della distribuzione. Puoi monitorare i progressi nella pagina dei dettagli del servizio nella scheda Distribuzioni.
Nota
Le opzioni delle metriche di scalabilità ad alta risoluzione sono disattivate nella sezione Service Auto Scaling finché l'implementazione non viene completata e tutte le attività vengono emesse con una risoluzione di 20 secondi.
Fase 2: Configurare la politica di scalabilità ad alta risoluzione
Al termine della distribuzione, configura la politica di scalabilità utilizzando uno dei seguenti metodi:
- Opzione A: pagina dei dettagli del servizio
-
-
Nella pagina dei dettagli del servizio, scegli la scheda Service auto scaling.
-
Scegli Crea policy di scaling (o modifica una policy esistente).
-
In Tipo di policy di dimensionamento, scegli Monitoraggio obiettivi.
-
Per Tipo di metrica, seleziona la metrica ad alta risoluzione. Ad esempio
ECSServiceAverageCPUUtilizationHighResolutionoECSServiceAverageMemoryUtilizationHighResolution. -
Per Valore target, inserisci la percentuale di utilizzo target.
-
In Impostazioni aggiuntive, configura quanto segue:
-
Per Scale-out il periodo di recupero, inserisci il tempo in secondi di attesa che una precedente attività di scalabilità orizzontale abbia effetto.
-
Per Scale-in il periodo di recupero, inserisci l'intervallo di tempo in secondi dopo il completamento di un'attività di scalabilità prima che possa iniziare un'altra attività di scalabilità.
-
-
Scegliere Crea una policy di dimensionamento.
-
- Opzione B: modulo di servizio di aggiornamento
-
-
Nella pagina dei dettagli del servizio, scegli Aggiorna.
-
Nella sezione Service auto scaling, scegli Usa il service auto scaling (se non è già abilitato).
-
Per Numero minimo di attività, inserisci il limite inferiore.
-
Per Numero massimo di attività, inserisci il limite superiore.
-
In Tipo di policy di dimensionamento, scegli Monitoraggio obiettivi.
-
Per Tipo di metrica, seleziona la metrica ad alta risoluzione (ora abilitata dopo il completamento della distribuzione).
-
Per Valore target, inserisci la percentuale di utilizzo target.
-
In Impostazioni aggiuntive, imposta il periodo di Scale-out recupero e il periodo di Scale-in recupero.
-
Scegli Aggiorna per inviare la modifica.
-
Passaggio 1: aggiorna la risoluzione di monitoraggio
-
Aggiorna il servizio con la configurazione del monitoraggio utilizzando il comando https://docs.aws.amazon.com/cli/latest/reference/ecs/update-service.html update-service.
aws ecs update-service --regionus-east-1\ --clustermy-cluster\ --servicemy-service\ --monitoring "metricConfigurations=[{metricNames=[CPUUtilization,MemoryUtilization],resolutionSeconds=20}]" -
Attendi il completamento della distribuzione. È possibile monitorare l'avanzamento utilizzando il comando describe-services e controllando lo stato della distribuzione.
aws ecs describe-services --regionus-east-1\ --clustermy-cluster\ --servicesmy-service -
Al termine della distribuzione, verifica che la configurazione di monitoraggio sia attiva descrivendo la revisione del servizio. Ottieni l'ARN di revisione del servizio attivo dall'output, quindi esegui:
describe-servicesaws ecs describe-service-revisions --regionus-east-1\ --service-revision-arnsarn:aws:ecs:us-east-1:012345678910:service-revision/my-cluster/my-service/1234567890123456789Conferma che la configurazione di monitoraggio appare nella risposta:
{ "serviceRevisions": [ { ... "monitoring": { "metricConfigurations": [ { "metricNames": ["CPUUtilization", "MemoryUtilization"], "resolutionSeconds": 20 } ] } } ] }
Passaggio 2: configurare la politica di ridimensionamento ad alta risoluzione
-
Registra il servizio come destinazione scalabile se non è già registrato, utilizzando il comando register-scalable-target. https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/register-scalable-target.html
aws application-autoscaling register-scalable-target \ --service-namespace ecs \ --resource-id service/my-cluster/my-service\ --scalable-dimension ecs:service:DesiredCount \ --min-capacity1\ --max-capacity10\ --regionus-east-1 -
Crea una policy di scalabilità del tracciamento del target con una metrica predefinita ad alta risoluzione utilizzando il comando put-scaling-policy. https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/put-scaling-policy.html L'esempio seguente prevede un utilizzo della CPU pari al 50%:
aws application-autoscaling put-scaling-policy \ --service-namespace ecs \ --resource-id service/my-cluster/my-service\ --scalable-dimension ecs:service:DesiredCount \ --policy-namemy-highres-cpu-policy\ --policy-type TargetTrackingScaling \ --target-tracking-scaling-policy-configuration '{ "TargetValue":50.0, "PredefinedMetricSpecification": { "PredefinedMetricType": "ECSServiceAverageCPUUtilizationHighResolution" } }' \ --regionus-east-1 -
Verifica che la policy sia stata creata:
aws application-autoscaling describe-scaling-policies \ --service-namespace ecs \ --resource-id service/my-cluster/my-service\ --scalable-dimension ecs:service:DesiredCount \ --regionus-east-1
Convalida il ridimensionamento automatico del servizio più rapido
Parte 1: verifica che le metriche ad alta risoluzione siano pubblicate
-
Accedi alla console. CloudWatch
-
Nel riquadro di navigazione, scegli Metriche, quindi scegli Tutte le metriche.
-
Scegli il namespace AWS/ECS.
-
Scegli ClusterName,. ServiceName
-
Individua le
MemoryUtilizationmetricheCPUUtilizatione per il tuo servizio. -
Imposta il periodo su 20 secondi. Dovresti vedere i punti dati a intervalli di 20 secondi, a conferma che le metriche ad alta risoluzione sono attive.
Parte 2: verifica che la politica di scalabilità utilizzi la metrica ad alta risoluzione
-
Nella pagina dei dettagli del servizio, scegli la scheda Service auto scaling.
-
Visualizza le politiche di scalabilità esistenti e conferma che la metrica sia impostata su una variante (o) ad alta risoluzione.
ECSServiceAverageCPUUtilizationHighResolutionECSServiceAverageMemoryUtilizationHighResolution -
In alternativa, verifica utilizzando la CLI:
aws application-autoscaling describe-scaling-policies \ --service-namespace ecs \ --resource-id service/my-cluster/my-service\ --scalable-dimension ecs:service:DesiredCount \ --regionus-east-1Verifica che
PredefinedMetricTypenella risposta sia impostato su una metrica ad alta risoluzione.
Considerazioni
-
Il monitoraggio delle modifiche alla configurazione crea una nuova revisione del servizio e richiede una distribuzione del servizio. La metrica di scalabilità ad alta risoluzione non è disponibile finché l'implementazione non viene completata e tutte le attività vengono emesse con una risoluzione di 20 secondi.
-
High-resolution le metriche sono supportate per i servizi che utilizzano Application Load Balancer e Network Load Balancer. I servizi che utilizzano Classic Load Balancer senza gruppi target non sono supportati.
-
High-resolution le metriche non sono supportate per i servizi che utilizzano i tipi di controller di
EXTERNALdistribuzioneCODE_DEPLOYo. -
Puoi visualizzare la configurazione di monitoraggio per il tuo servizio utilizzando.
DescribeServiceRevisionsLa configurazione di monitoraggio non viene restituita nelleCreateServiceUpdateServicerisposte.