View a markdown version of this page

Ridimensionamento automatico più rapido con metriche ad alta risoluzione - Amazon Elastic Container Service

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

  1. Nella pagina Clusters, scegli il cluster in cui desideri creare il servizio.

  2. Nella sezione Servizi, scegli Crea.

  3. Nel modulo Crea servizio, nella sezione Configurazione di monitoraggio, scegli Aggiungi configurazione metrica.

  4. Per Nome della metrica, seleziona la metrica che desideri raccogliere ad alta risoluzione. Scegli CPUUtilization o MemoryUtilization.

  5. Per Risoluzione (secondi), seleziona 20.

  6. (Facoltativo) Per aggiungere entrambe le metriche ad alta risoluzione, scegli nuovamente Aggiungi configurazione metrica e ripeti i due passaggi precedenti per l'altra metrica.

  7. Nella sezione Service auto scaling, scegli Use service auto scaling.

  8. 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.

  9. 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.

  10. In Tipo di policy di dimensionamento, scegli Monitoraggio obiettivi.

  11. Per Tipo di metrica, seleziona la metrica ad alta risoluzione corrispondente. Ad esempio, scegli ECSServiceAverageCPUUtilizationHighResolution se hai configurato CPUUtilization con una risoluzione di 20 secondi o ECSServiceAverageMemoryUtilizationHighResolution se hai configurato MemoryUtilization con una risoluzione di 20 secondi.

  12. 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.

  13. In Impostazioni aggiuntive, configura quanto segue:

    1. Per Scale-out il periodo di recupero, inserisci il tempo in secondi di attesa che una precedente attività di scalabilità orizzontale abbia effetto.

    2. 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à.

  14. Scegli Crea per creare il servizio.

  1. Crea il servizio con configurazione di monitoraggio utilizzando il comando create-service.

    aws ecs create-service --region us-east-1 \ --cluster my-cluster \ --service-name my-service \ --task-definition my-app:1 \ --desired-count 2 \ --monitoring "metricConfigurations=[{metricNames=[CPUUtilization,MemoryUtilization],resolutionSeconds=20}]"
  2. 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-capacity 1 \ --max-capacity 10 \ --region us-east-1
  3. 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-name my-highres-cpu-policy \ --policy-type TargetTrackingScaling \ --target-tracking-scaling-policy-configuration '{ "TargetValue": 50.0, "PredefinedMetricSpecification": { "PredefinedMetricType": "ECSServiceAverageCPUUtilizationHighResolution" } }' \ --region us-east-1
  4. 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 \ --region us-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

  1. Nella pagina Clusters, scegli il cluster che contiene il servizio che desideri aggiornare.

  2. Nella sezione Servizi, seleziona il servizio e scegli Aggiorna.

  3. Nel modulo Update Service, nella sezione Configurazione di monitoraggio, scegli Aggiungi configurazione metrica.

  4. Per Nome della metrica, seleziona la metrica che desideri raccogliere ad alta risoluzione. Scegli CPUUtilization o MemoryUtilization.

  5. Per Risoluzione (secondi), seleziona 20.

  6. (Facoltativo) Per aggiungere entrambe le metriche ad alta risoluzione, scegli nuovamente Aggiungi configurazione metrica e ripeti i due passaggi precedenti per l'altra metrica.

  7. Scegli Aggiorna per inviare la modifica. Ciò attiva l'implementazione di un servizio.

  8. 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
  1. Nella pagina dei dettagli del servizio, scegli la scheda Service auto scaling.

  2. Scegli Crea policy di scaling (o modifica una policy esistente).

  3. In Tipo di policy di dimensionamento, scegli Monitoraggio obiettivi.

  4. Per Tipo di metrica, seleziona la metrica ad alta risoluzione. Ad esempio ECSServiceAverageCPUUtilizationHighResolution o ECSServiceAverageMemoryUtilizationHighResolution.

  5. Per Valore target, inserisci la percentuale di utilizzo target.

  6. In Impostazioni aggiuntive, configura quanto segue:

    1. Per Scale-out il periodo di recupero, inserisci il tempo in secondi di attesa che una precedente attività di scalabilità orizzontale abbia effetto.

    2. 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à.

  7. Scegliere Crea una policy di dimensionamento.

Opzione B: modulo di servizio di aggiornamento
  1. Nella pagina dei dettagli del servizio, scegli Aggiorna.

  2. Nella sezione Service auto scaling, scegli Usa il service auto scaling (se non è già abilitato).

  3. Per Numero minimo di attività, inserisci il limite inferiore.

  4. Per Numero massimo di attività, inserisci il limite superiore.

  5. In Tipo di policy di dimensionamento, scegli Monitoraggio obiettivi.

  6. Per Tipo di metrica, seleziona la metrica ad alta risoluzione (ora abilitata dopo il completamento della distribuzione).

  7. Per Valore target, inserisci la percentuale di utilizzo target.

  8. In Impostazioni aggiuntive, imposta il periodo di Scale-out recupero e il periodo di Scale-in recupero.

  9. Scegli Aggiorna per inviare la modifica.

Passaggio 1: aggiorna la risoluzione di monitoraggio

  1. 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 --region us-east-1 \ --cluster my-cluster \ --service my-service \ --monitoring "metricConfigurations=[{metricNames=[CPUUtilization,MemoryUtilization],resolutionSeconds=20}]"
  2. Attendi il completamento della distribuzione. È possibile monitorare l'avanzamento utilizzando il comando describe-services e controllando lo stato della distribuzione.

    aws ecs describe-services --region us-east-1 \ --cluster my-cluster \ --services my-service
  3. 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-services

    aws ecs describe-service-revisions --region us-east-1 \ --service-revision-arns arn:aws:ecs:us-east-1:012345678910:service-revision/my-cluster/my-service/1234567890123456789

    Conferma 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

  1. 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-capacity 1 \ --max-capacity 10 \ --region us-east-1
  2. 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-name my-highres-cpu-policy \ --policy-type TargetTrackingScaling \ --target-tracking-scaling-policy-configuration '{ "TargetValue": 50.0, "PredefinedMetricSpecification": { "PredefinedMetricType": "ECSServiceAverageCPUUtilizationHighResolution" } }' \ --region us-east-1
  3. 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 \ --region us-east-1

Convalida il ridimensionamento automatico del servizio più rapido

Parte 1: verifica che le metriche ad alta risoluzione siano pubblicate

  1. Accedi alla console. CloudWatch

  2. Nel riquadro di navigazione, scegli Metriche, quindi scegli Tutte le metriche.

  3. Scegli il namespace AWS/ECS.

  4. Scegli ClusterName,. ServiceName

  5. Individua le MemoryUtilization metriche CPUUtilization e per il tuo servizio.

  6. 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

  1. Nella pagina dei dettagli del servizio, scegli la scheda Service auto scaling.

  2. Visualizza le politiche di scalabilità esistenti e conferma che la metrica sia impostata su una variante (o) ad alta risoluzione. ECSServiceAverageCPUUtilizationHighResolution ECSServiceAverageMemoryUtilizationHighResolution

  3. 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 \ --region us-east-1

    Verifica che PredefinedMetricType nella 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 EXTERNAL distribuzione CODE_DEPLOY o.

  • Puoi visualizzare la configurazione di monitoraggio per il tuo servizio utilizzando. DescribeServiceRevisions La configurazione di monitoraggio non viene restituita nelle CreateService UpdateService risposte.