View a markdown version of this page

Scalabilità automatica più rapida 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à.

Scalabilità automatica più rapida con metriche ad alta risoluzione

Per impostazione predefinita, Amazon ECS pubblica CPUUtilization e MemoryUtilization misura i parametri con una risoluzione di 60 secondi. È possibile configurare una risoluzione di 20 secondi per velocizzare la scalabilità automatica del servizio.

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 Cluster, 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 il 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, seleziona 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 obiettivo, inserisci la percentuale di utilizzo target. La scalabilità automatica del servizio ridimensiona la capacità fino a raggiungere il valore 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, inserite il periodo di attesa, in secondi, che deve trascorrere prima che una precedente attività di scalabilità orizzontale abbia effetto.

    2. Per Scale-in il periodo di cooldown, inserisci la quantità di tempo in secondi dopo il completamento di un'attività scalabile prima che possa iniziare un'altra attività scalabile.

  14. Scegli Crea per creare il servizio.

  1. Crea il servizio con la 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.

    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 politica di ridimensionamento del tracciamento del target con una metrica predefinita ad alta risoluzione utilizzando il comando put-scaling-policy.

    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.

    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. È innanzitutto necessario aggiornare la risoluzione di monitoraggio, che attiva la distribuzione del servizio. Una volta completata correttamente la distribuzione e dopo che tutte le attività emettono metriche con una risoluzione di 20 secondi, puoi configurare una politica di scalabilità ad alta risoluzione.

Importante

Se in precedenza il tuo servizio utilizzava una risoluzione metrica di 60 secondi, i parametri 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 aver completato la distribuzione del servizio.

Fase 1: Aggiorna la risoluzione del monitoraggio

  1. Nella pagina Cluster, 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 il 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, seleziona 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. È possibile monitorare l'avanzamento nella pagina dei dettagli del servizio nella scheda Implementazioni.

    Nota

    Le opzioni di metrica di scalabilità ad alta risoluzione sono disattivate nella sezione Service Auto Scaling fino al completamento dell'implementazione e tutte le attività vengono eseguite con una risoluzione di 20 secondi.

Fase 2: Configurazione della 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 politica di scalabilità (o modifica una politica 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 obiettivo, inserisci la percentuale di utilizzo target.

  6. In Impostazioni aggiuntive, configura quanto segue:

    1. Per Scale-out il periodo di recupero, inserite il periodo di attesa, in secondi, che deve trascorrere prima che una precedente attività di scalabilità orizzontale abbia effetto.

    2. Per Scale-in il periodo di cooldown, inserisci la quantità di tempo in secondi dopo il completamento di un'attività scalabile prima che possa iniziare un'altra attività scalabile.

  7. Scegliere Crea una policy di dimensionamento.

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

  2. Nella sezione Service auto scaling, scegli Use 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.

Fase 1: Aggiorna la risoluzione del monitoraggio

  1. Aggiorna il servizio con la configurazione di monitoraggio utilizzando il comando 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 verificando 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 della revisione attiva del servizio dall'output, describe-services quindi esegui:

    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 } ] } } ] }
Fase 2: Configurazione della politica di scalabilità ad alta risoluzione

  1. Registra il servizio come destinazione scalabile se non è già registrato, utilizzando il comando register-scalable-target.

    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 politica di ridimensionamento del tracciamento del target con una metrica predefinita ad alta risoluzione utilizzando il comando put-scaling-policy. L'esempio seguente mira a un utilizzo della CPU 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 una scalabilità automatica dei servizi più rapida

Parte 1: Verifica della pubblicazione delle metriche ad alta risoluzione

  1. Vai alla console. CloudWatch

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

  3. Scegli il namespace AWS/ECS.

  4. ScegliClusterName,. ServiceName

  5. Individua le MemoryUtilization metriche CPUUtilization e le metriche del tuo servizio.

  6. Imposta il periodo su 20 secondi. Dovresti visualizzare 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

    Conferma che PredefinedMetricType nella risposta sia impostata una metrica ad alta risoluzione.

Considerazioni

  • Il monitoraggio delle modifiche alla configurazione crea una nuova revisione del servizio e richiede l'implementazione del servizio. La metrica di scalabilità ad alta risoluzione non è disponibile fino al completamento dell'implementazione e tutte le attività vengono eseguite con una risoluzione di 20 secondi.

  • High-resolution le metriche sono supportate per i servizi che utilizzano Application Load Balancer e Network Load Balancers. 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 CODE_DEPLOY o di EXTERNAL distribuzione.

  • È possibile visualizzare la configurazione di monitoraggio per il servizio utilizzandoDescribeServiceRevisions. La configurazione di monitoraggio non viene restituita nelle CreateService nostre UpdateService risposte.