

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
<a name="target-tracking-faster-auto-scaling"></a>

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
<a name="faster-auto-scaling-create-service"></a>

### Console
<a name="faster-auto-scaling-create-service-console"></a>

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

1. Nella sezione **Servizi**, scegli **Crea**.

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

1. Per **il nome della metrica**, seleziona la metrica che desideri raccogliere ad alta risoluzione. Scegli `CPUUtilization` o `MemoryUtilization`.

1. **Per **Risoluzione (secondi)**, seleziona 20.**

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

1. Nella sezione **Service auto scaling**, scegli **Use service auto scaling**.

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

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

1. In **Tipo di policy di dimensionamento**, scegli **Monitoraggio obiettivi**.

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

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

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

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

1. **Scegli Crea per creare il servizio.**

### AWS CLI
<a name="faster-auto-scaling-create-service-cli"></a>

1. Crea il servizio con la configurazione di monitoraggio utilizzando il comando [create-service](https://docs.aws.amazon.com/cli/latest/reference/ecs/create-service.html).

   ```
   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}]"
   ```

1. [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}}
   ```

1. [Crea una politica 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}}
   ```

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 \
       --region {{us-east-1}}
   ```

## Aggiorna un servizio esistente per utilizzare metriche ad alta risoluzione per una scalabilità automatica più rapida
<a name="faster-auto-scaling-update-service"></a>

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.

### Console
<a name="faster-auto-scaling-update-service-console"></a>

**Fase 1: Aggiorna la risoluzione del monitoraggio**  


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

1. Nella sezione **Servizi**, seleziona il servizio e scegli **Aggiorna**.

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

1. Per **il nome della metrica**, seleziona la metrica che desideri raccogliere ad alta risoluzione. Scegli `CPUUtilization` o `MemoryUtilization`.

1. **Per **Risoluzione (secondi)**, seleziona 20.**

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

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

1. 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**.

1. Scegli **Crea politica di scalabilità** (o modifica una politica esistente).

1. In **Tipo di policy di dimensionamento**, scegli **Monitoraggio obiettivi**.

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

1. Per **Valore obiettivo**, inserisci la percentuale di utilizzo target.

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

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

1. Scegliere **Crea una policy di dimensionamento**.

Opzione B: modulo di aggiornamento del servizio  

1. Nella pagina dei dettagli del servizio, scegli **Aggiorna**.

1. Nella sezione **Service auto scaling**, scegli **Use service auto scaling** (se non è già abilitato).

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

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

1. In **Tipo di policy di dimensionamento**, scegli **Monitoraggio obiettivi**.

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

1. Per **Valore Target**, inserisci la percentuale di utilizzo target.

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

1. Scegli **Aggiorna** per inviare la modifica.

### AWS CLI
<a name="faster-auto-scaling-update-service-cli"></a>

**Fase 1: Aggiorna la risoluzione del monitoraggio**  


1. Aggiorna il servizio con la configurazione di monitoraggio utilizzando il comando [update-service](https://docs.aws.amazon.com/cli/latest/reference/ecs/update-service.html).

   ```
   aws ecs update-service --region {{us-east-1}} \
       --cluster {{my-cluster}} \
       --service {{my-service}} \
       --monitoring "metricConfigurations=[{metricNames=[CPUUtilization,MemoryUtilization],resolutionSeconds=20}]"
   ```

1. Attendi il completamento della distribuzione. È possibile monitorare l'avanzamento utilizzando il comando [describe-services](https://docs.aws.amazon.com/cli/latest/reference/ecs/describe-services.html) e verificando lo stato della distribuzione.

   ```
   aws ecs describe-services --region {{us-east-1}} \
       --cluster {{my-cluster}} \
       --services {{my-service}}
   ```

1. 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.](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}}
   ```

1. [Crea una politica 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) 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}}
   ```

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 \
       --region {{us-east-1}}
   ```

## Convalida una scalabilità automatica dei servizi più rapida
<a name="faster-auto-scaling-validate"></a>

**Parte 1: Verifica della pubblicazione delle metriche ad alta risoluzione**  


1. Vai alla console. CloudWatch 

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

1. Scegli il namespace **AWS/ECS**.

1. **ScegliClusterName,. ServiceName**

1. Individua le `MemoryUtilization` metriche `CPUUtilization` e le metriche del tuo servizio.

1. 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**.

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

1. 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
<a name="faster-auto-scaling-considerations"></a>
+ 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 utilizzando`DescribeServiceRevisions`. La configurazione di monitoraggio non viene restituita nelle `CreateService` nostre `UpdateService` risposte.