

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

# Usa modelli storici per scalare i servizi Amazon ECS con scalabilità predittiva
<a name="predictive-auto-scaling"></a>

Il dimensionamento predittivo analizza i dati di caricamento passati provenienti dai flussi di traffico per analizzare i modelli giornalieri o settimanali. Poi utilizza l'analisi per anticipare le esigenze future e aumentare in modo proattivo le attività del tuo servizio secondo necessità.

Il dimensionamento automatico predittivo è particolarmente utile nelle seguenti situazioni:
+ Traffico ciclico: un uso elevato di risorse durante i normali orari di ufficio e un utilizzo ridotto di risorse durante la notte e il weekend.
+ Modelli di on-and-off carico di lavoro ricorrenti ‐ Gli esempi includono l'elaborazione in batch, i test o l'analisi periodica dei dati.
+ Applicazioni con tempi di inizializzazione lunghi: possono influire sulle prestazioni delle applicazioni durante gli eventi di aumento orizzontale, causando una notevole latenza.

Se le applicazioni richiedono molto tempo per l'inizializzazione e il traffico aumenta con uno schema regolare, è consigliabile utilizzare il dimensionamento predittivo. Aiuta a scalare più velocemente aumentando in modo proattivo il numero di attività per i carichi previsti, anziché utilizzare solo politiche di dimensionamento dinamico, come Target Tracking o Step Scaling. Aiutando a evitare la possibilità di effettuare un provisioning eccessivo del numero di attività, il dimensionamento predittivo può anche consentire di risparmiare denaro.

Ad esempio, consideriamo un'applicazione che ha un utilizzo elevato durante l'orario di lavoro e uno ridotto durante la notte. All'inizio di ogni giornata lavorativa, il dimensionamento predittivo può aumentare orizzontalmente le attività prima del primo afflusso di traffico. Ciò permette all'applicazione di mantenere elevata disponibilità e prestazioni quando si passa da un periodo di utilizzo inferiore a un periodo di utilizzo più elevato. Non è necessario attendere che il dimensionamento dinamico reagisca alla variazione di traffico. Inoltre, non è necessario dedicare tempo alla verifica dei modelli di carico dell'applicazione e al tentativo di pianificare la giusta quantità di attività con il dimensionamento programmato.

Il dimensionamento predittivo è una funzionalità a livello di servizio che ridimensiona l'attività del servizio indipendentemente dal dimensionamento della capacità di calcolo sottostante (ad esempio, EC2 o Fargate). Per Fargate, AWS gestisce e ridimensiona automaticamente la capacità sottostante in base ai requisiti delle attività. Per quanto riguarda la capacità di EC2, è possibile utilizzare i provider di capacità del gruppo Auto Scaling per scalare automaticamente le istanze EC2 sottostanti in base ai requisiti di dimensionamento delle attività.

**Topics**
+ [Panoramica del dimensionamento predittivo](#predictive-auto-scaling-overview)
+ [Creazione di una policy di dimensionamento predittivo](predictive-scaling-create-policy.md)
+ [Valutazione delle policy di dimensionamento predittivo](predictive-scaling-graphs.md)
+ [Sovrascrivere la previsione](predictive-scaling-overriding-forecast-capacity.md)
+ [Utilizzare parametri personalizzati](predictive-scaling-custom-metrics.md)

## Funzionamento del dimensionamento predittivo in Amazon ECS
<a name="predictive-auto-scaling-overview"></a>

Qui si possono scoprire le considerazioni sull'utilizzo del dimensionamento predittivo, come funziona e quali sono i limiti.

### Considerazioni sull'utilizzo del dimensionamento predittivo
<a name="predictive-auto-scaling-considerations"></a>
+ Il dimensionamento predittivo deve essere adeguato al carico di lavoro. Si può verificare configurando le policy di dimensionamento in modalità **solo previsione** e vedere cosa consiglia la console. È necessario valutare la previsione e i consigli prima di iniziare a utilizzare il dimensionamento predittivo.
+ Prima che il dimensionamento predittivo possa avviare la previsione, servono almeno 24 ore di dati cronologici. Maggiore è il numero di dati cronologici disponibili, più efficace è la previsione, con un periodo ideale di due settimane. Si dovrà inoltre attendere 24 ore prima che il dimensionamento predittivo possa generare nuove previsioni quando si elimina un servizio Amazon ECS e se ne crea uno nuovo. Un modo per velocizzare questa operazione è utilizzare parametri personalizzati per aggregare i parametri tra il vecchio e il nuovo servizio Amazon ECS.
+ Scegliere una metrica di carico che rappresenta con precisione il carico completo dell'applicazione ed è l'aspetto dell'applicazione su cui è più importante basare il dimensionamento.
+ Il dimensionamento dinamico con dimensionamento predittivo consente di seguire da vicino la richiesta della propria applicazione, in modo ridurre le attività durante le pause e aumentarle durante gli aumenti imprevisti del traffico. Quando sono attive più policy di dimensionamento, ciascuna di esse determina il numero desiderato di attività in modo indipendente, che viene impostato al massimo.
+ È possibile utilizzare il dimensionamento predittivo insieme alle policy di dimensionamento dinamico, come il monitoraggio della destinazione o il dimensionamento graduale, in modo che le applicazioni si scalino in base a modelli storici e in tempo reale. Di per sé, il dimensionamento predittivo non consente di ridurre orizzontalmente le attività. 
+ Se si utilizza un ruolo personalizzato durante la chiamata all'`register-scalable-target`API, si potrebbe ricevere un errore che indica che la policy di dimensionamento predittivo può funzionare solo con SLR abilitata. In questo caso, è necessario chiamare di nuovo `register-scalable-target` ma senza role-arn. Usare SLR per registrare la destinazione scalabile e chiamare l'API `put-scaling-policy`.

### Funzionamento del dimensionamento predittivo
<a name="predictive-auto-scaling-details"></a>

Utilizzate la scalabilità predittiva creando una politica di scalabilità predittiva che specifica la metrica da monitorare e analizzare. CloudWatch Per avviare valori futuri di previsione, il dimensionamento predittivo richiede almeno 24 ore di dati.

Dopo aver creato la policy, il dimensionamento predittivo inizia ad analizzare i dati metrici relativi agli ultimi 14 giorni per identificare i modelli. Questa analisi viene utilizzata per generare previsioni orarie dei requisiti per le prossime 48 ore. I CloudWatch dati più recenti vengono utilizzati per aggiornare la previsione ogni sei ore. Con l'arrivo di nuovi dati, il dimensionamento predittivo migliora continuamente l'accuratezza delle previsioni future.

La prima volta che si abilita il dimensionamento predittivo, questo viene eseguito in modalità di *sola previsione*. Genera previsioni in questa modalità, ma non dimensiona il servizio Amazon ECS in base a tali previsioni. Ciò significa che è possibile valutare l'accuratezza e l'idoneità della previsione. È possibile visualizzare i dati di previsione utilizzando l'operazione API `GetPredictiveScalingForecast` o la Console di gestione AWS.

Quando si decide di iniziare a utilizzare il dimensionamento predittivo, si deve passare dalla policy di dimensionamento alla modalità di *previsione e scalabilità*. In questa modalità si verifica quanto segue.

Per impostazione predefinita, il servizio Amazon ECS viene ridimensionato all'inizio di ogni ora in base alla previsione per quell'ora. È possibile scegliere di iniziare prima utilizzando la proprietà `SchedulingBufferTime` nell'operazione API `PutScalingPolicy`. Ciò consente l'avvio di nuove attività prima della domanda della previsione e si dispone del tempo per l'avvio e la preparazione a gestire il traffico.

### Limite massimo di attività
<a name="predictive-scaling-maximum-tasks-limit"></a>

Quando si registrano i servizi Amazon ECS per il dimensionamento, si definisce un numero massimo di attività che possono essere avviate per ogni servizio. Per impostazione predefinita, quando vengono impostate le policy di dimensionamento, non possono aumentare il numero di attività oltre il limite massimo.

In alternativa, è possibile consentire l'aumento automatico del numero massimo di attività del servizio se la previsione si avvicina o supera il numero massimo di attività del servizio Amazon ECS.

**avvertimento**  
Fare attenzione quando si consente l'aumento automatico del numero massimo di attività. Ciò può comportare l'avvio di più attività del previsto, se l'aumento del numero massimo di attività non viene monitorato e gestito. L'aumento del numero massimo di attività diventa quindi il nuovo normale numero massimo per il servizio Amazon ECS fino a quando non viene aggiornato manualmente. Il numero massimo di attività non torna automaticamente al massimo originale.

### Regioni supportate
<a name="predictive-auto-scaling-supported-regions"></a>
+ Stati Uniti orientali (Virginia settentrionale)
+ Stati Uniti orientali (Ohio)
+ Stati Uniti occidentali (California settentrionale)
+ Stati Uniti occidentali (Oregon)
+ Africa (Città del Capo)
+ Asia Pacifico (Hong Kong)
+ Asia Pacifico (Giacarta)
+ Asia Pacifico (Mumbai)
+ Asia Pacifico (Osaka)
+ Asia Pacifico (Seoul)
+ Asia Pacifico (Singapore)
+ Asia Pacifico (Sydney)
+ Asia Pacifico (Tokyo)
+ Canada (Centrale)
+ Cina (Pechino)
+ Cina (Ningxia)
+ Europa (Francoforte)
+ Europa (Irlanda)
+ Europa (Londra)
+ Europa (Milano)
+ Europa (Parigi)
+ Europa (Stoccolma)
+ Medio Oriente (Bahrein)
+ Sud America (San Paolo)
+ AWS GovCloud (Stati Uniti orientali)
+ AWS GovCloud (Stati Uniti occidentali)

# Creazione di una policy di dimensionamento predittivo per dimensionamento automatico del servizio Amazon ECS
<a name="predictive-scaling-create-policy"></a>

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.

## Console
<a name="predictive-scaling-policy-aws-console"></a>

1. 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](auto-scaling-IAM.md).

1. Determinare le metriche da utilizzare per la policy. Sono disponibili i seguenti parametri:
   +  **ECSServiceMedio CPUUtilization**: l'utilizzo medio della CPU che il servizio dovrebbe utilizzare. 
   + **ECSServiceAverageMemoryUtilization**— Utilizzo medio della memoria che il servizio dovrebbe utilizzare. 
   + **ALBRequestCountPerTarget**— Il numero medio di richieste al minuto che l'attività dovrebbe idealmente ricevere.

   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.

1. Apri la console alla [https://console.aws.amazon.com/ecs/v2](https://console.aws.amazon.com/ecs/v2).

1. Nella pagina **Cluster**, scegliere il cluster.

1. Nella pagina dei dettagli del cluster, nella sezione **Servizi**, selezionare il servizio.

   Si apre la pagina dei dettagli del servizio.

1. Scegliere **Dimensionamento automatico del servizio**, quindi scegliere **Imposta il numero di attività**.

1. Nella sezione **Conteggio delle attività del servizio di Amazon ECS**, scegliere **Utilizzare il dimensionamento automatico**.

   Si apre la **Sezione dedicata al conteggio delle attività**.

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

   1. Scegli **Save** (Salva).

      Si apre la pagina delle policy.

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

   Si apre la pagina **Crea policy**.

1. Per **Tipo di policy di dimensionamento**, scegliere **Dimensionamento predittivo**.

1. In **Nome policy**, inserire il nome della policy.

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

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

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

## AWS CLI
<a name="predictive-scaling-policy-aws-cli"></a>

Utilizza AWS CLI quanto segue per configurare le politiche di scalabilità predittiva per il tuo servizio Amazon ECS. Sostituisci ogni *user input placeholder* con le tue informazioni.

Per ulteriori informazioni sui CloudWatch parametri che puoi specificare, consulta il riferimento alle API [PredictiveScalingMetricSpecification](https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_PredictiveScalingMetricSpecification.html)di *Amazon EC2 Auto* Scaling.

### Esempio 1: una policy di dimensionamento predittivo con memoria predefinita.
<a name="predictive-scaling-cli-example-one"></a>

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 [put-scaling-policy](https://docs.aws.amazon.com/cli/latest/reference/autoscaling/put-scaling-policy.html)comando con il file di configurazione specificato.

```
aws application-autoscaling put-scaling-policy \
--service-namespace ecs \
--region us-east-1 \
--policy-name predictive-scaling-policy-example \
--resource-id service/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.
<a name="predictive-scaling-cli-example-two"></a>

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 politica eseguendo il [put-scaling-policy](https://docs.aws.amazon.com/cli/latest/reference/autoscaling/put-scaling-policy.html)comando con il file di configurazione specificato.

```
aws aas put-scaling-policy \
--service-namespace ecs \
--region us-east-1 \
--policy-name predictive-scaling-policy-example \
--resource-id service/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": []
}
```

# Valutazione delle policy di dimensionamento predittivo per Amazon ECS
<a name="predictive-scaling-graphs"></a>

Prima di utilizzare una policy di dimensionamento predittivo per scalare i servizi, esaminare i consigli e gli altri dati per la policy nella console di Amazon ECS. È un'opzione importante per assicurarsi che le previsioni siano accurate prima di applicare una policy di dimensionamento predittivo che dimensioni la capacità effettiva.

Se il servizio è nuovo, attendere 24 ore per creare la prima previsione.

Quando AWS crea una previsione, utilizza dati storici. Se il servizio non dispone ancora di molti dati cronologici recenti, il dimensionamento automatico potrebbe temporaneamente riempire la previsione con aggregati creati dagli aggregati storici attualmente disponibili. Le previsioni vengono popolate per un massimo di due settimane prima della data di creazione di una policy.

## Visualizzazione dei suggerimenti per il dimensionamento predittivo
<a name="view-predictive-scaling-recommendations"></a>

Per un'analisi efficace, il dimensionamento automatico del servizio dovrebbe avere almeno due policy di dimensionamento predittivo da confrontare. Tuttavia, è ancora possibile esaminare i risultati per una singola policy. Quando crei più policy, puoi valutare una policy che utilizza un parametro rispetto a un parametro che ne utilizza uno diverso. Puoi anche valutare l'impatto di diverse combinazioni di valori di destinazione e parametri. Dopo aver creato le policy di dimensionamento predittivo, Amazon ECS inizia immediatamente a valutare quale policy è in grado di dimensionare il gruppo in modo ottimale.

**Per visualizzare i suggerimenti nella console Amazon ECS**

1. Apri la console alla [https://console.aws.amazon.com/ecs/v2](https://console.aws.amazon.com/ecs/v2).

1. Nella pagina **Cluster**, scegliere il cluster.

1. Nella pagina dei dettagli del cluster, nella sezione **Servizi**, selezionare il servizio.

   Si apre la pagina dei dettagli del servizio.

1. Scegliere **Dimensionamento automatico del servizio**.

1. Scegliere la policy di dimensionamento predittivo, quindi scegliere **Operazioni**, **dimensionamento predittivo**, **Visualizza consigli**.

   È possibile visualizzare i dettagli di una policy e i relativi suggerimenti. Il suggerimento indica se l'utilizzo della policy di dimensionamento predittivo garantisce risultati migliori rispetto al non utilizzo. 

   Se non sei sicuro che una policy di dimensionamento predittivo sia appropriata per il tuo gruppo, consulta le colonne **Impatto sulla disponibilità** e **Impatto sui costi** per scegliere quella giusta. Le informazioni di ogni colonna indicano l'impatto della policy. 
   + **Impatto sulla disponibilità**: indica se l'utilizzo della policy eviterebbe un impatto negativo sulla disponibilità eseguendo il provisioning di un numero sufficiente di attività per gestire il carico di lavoro, rispetto al mancato utilizzo della policy.
   + **Impatto sui costi**: indica se l'utilizzo della policy eviterebbe un impatto negativo sui costi non eseguendo un provisioning eccessivo delle attività, rispetto al mancato utilizzo della policy. Se il provisioning è eccessivo, i servizi risultano sottoutilizzati o inattivi, comportando un maggiore impatto sui costi.

   Se disponi di più policy, accanto al nome della policy che offre i maggiori vantaggi in termini di disponibilità a un costo inferiore viene visualizzato il tag **Previsione migliore**. Viene attribuito un peso maggiore all'impatto sulla disponibilità. 

1. (Facoltativo) Per selezionare il periodo di tempo desiderato per i risultati dei suggerimenti, scegliere il valore preferito dal menu a discesa **Periodo di valutazione**: **2 giorni**, **1 settimana** o **2 settimane**. Per impostazione predefinita, il periodo di valutazione è rappresentato dalle ultime due settimane. Un periodo di valutazione maggiore fornisce più punti dati per i risultati del suggerimento. Tuttavia, l'aggiunta di più punti dati potrebbe non migliorare i risultati se i modelli di carico sono cambiati, ad esempio dopo un periodo di domanda eccezionalmente elevata. In questo caso, puoi ottenere un suggerimento più mirato esaminando i dati più recenti.

**Nota**  
I suggerimenti vengono generati solo per le policy in modalità **solo previsione**. Questa funzione restituisce i risultati migliori quando una policy è in modalità **solo previsione** per tutto il periodo di valutazione. Se avvii una policy in modalità **Previsione e dimensionamento** e in un secondo momento la modifichi in una modalità **solo previsione**, è probabile che i risultati siano falsati. Questo accade perché la policy ha già contribuito alla capacità effettiva.

## Analisi dei grafici di monitoraggio di dimensionamento predittivo
<a name="review-predictive-scaling-monitoring-graphs"></a>

Nella console, è possibile esaminare le previsioni dei giorni, delle settimane o dei mesi precedenti per visualizzare le prestazioni della policy nel tempo. È inoltre possibile utilizzare queste informazioni per valutare l'accuratezza delle previsioni nel momento in cui si decide di applicare la policy per dimensionare il numero effettivo di attività.

**Per esaminare i grafici di monitoraggio di dimensionamento predittivo nella console Amazon ECS**

1. Apri la console nella [https://console.aws.amazon.com/ecs/v2](https://console.aws.amazon.com/ecs/v2).

1. Nella pagina **Cluster**, scegliere il cluster.

1. Nella pagina dei dettagli del cluster, nella sezione **Servizi**, selezionare il servizio.

   Si apre la pagina dei dettagli del servizio.

1. Scegliere **dimensionamento automatico del servizio**.

1. Scegliere la policy di dimensionamento predittivo, quindi scegliere **Operazioni**, **dimensionamento predittivo**, **Visualizza grafico**.

1. Nella sezione **Monitoraggio**, puoi visualizzare le previsioni passate e future della policy in termini di carico e capacità rispetto ai valori effettivi. Il grafico **Carico** mostra la previsione di carico e i valori effettivi per il parametro di carico scelto. Il grafico **Capacità** mostra il numero di attività previste dalla policy e il numero effettivo di attività avviate. La linea verticale separa i valori storici dalle previsioni future. Questi grafici diventano disponibili poco dopo la creazione della policy. 

1. (Facoltativo) Per modificare la quantità di dati cronologici mostrati nel grafico, scegli il valore desiderato dal menu a discesa **Periodo di valutazione**, nella parte superiore della pagina. Il periodo di valutazione non trasforma in alcun modo i dati di questa pagina, ma modifica soltanto la quantità di dati cronologici mostrati.

**Confronto dei dati nel grafico **Carico****  
Ogni riga orizzontale rappresenta un diverso insieme di punti dati riportati a intervalli di un'ora:

1. **Carico effettivo osservato** utilizza la statistica SUM per il parametro di carico scelto per mostrare il carico orario totale in passato.

1. **Carico previsto dalla policy** mostra la previsione del carico orario. Questa previsione si basa sulle due settimane precedenti di osservazioni del carico effettivo.

**Confronto dei dati nel grafico **Capacità****  
Ogni riga orizzontale rappresenta un diverso insieme di punti dati riportati a intervalli di un'ora:

1. **Numero effettivo osservato di attività** mostra la capacità effettiva del servizio Amazon ECS in passato, che dipende dalle altre policy di ridimensionamento e dalla dimensione minima del gruppo in vigore per il periodo di tempo selezionato.

1. **Capacità prevista dalla policy** mostra la capacità di base che si prevede di avere all'inizio di ogni ora, quando la policy è in modalità **Previsione e dimensionamento**.

1. Il **numero dedotto richiesto di attività** mostra il numero ideale di attività nel servizio per mantenere il parametro di dimensionamento al valore target scelto.

1. Il **numero minimo delle attività** indica il numero minimo di attività nel servizio.

1. La **capacità massima** indica il numero massimo di attività nel servizio.

Per calcolare la capacità richiesta differita, partiamo dal presupposto che ogni attività sia utilizzata allo stesso modo a un determinato valore target. In pratica, il numero di attività non viene utilizzato allo stesso modo. Tuttavia, ipotizzando che l'utilizzo sia distribuito uniformemente tra le attività, possiamo fare una stima verosimile della quantità di capacità necessaria. Il requisito per il numero di attività viene quindi calcolato in modo che sia inversamente proporzionale al parametro di dimensionamento utilizzato per la relativa policy. In altre parole, all'aumentare del numero di attività, il parametro di dimensionamento diminuisce alla stessa velocità. Ad esempio, se il numero delle attività raddoppia, il parametro di dimensionamento si dimezza. 

La formula per la capacità richiesta differita è:

 `sum of (actualServiceUnits*scalingMetricValue)/(targetUtilization)`

Ad esempio, prendiamo `actualServiceUnits` (`10`) e `scalingMetricValue` (`30`) per una determinata ora. Prendiamo quindi il valore `targetUtilization` specificato nella policy di dimensionamento predittivo (`60`) e calcoliamo la capacità richiesta differita per la stessa ora. Viene restituito il valore `5`. Ciò significa che cinque è la quantità di capacità richiesta necessaria per mantenere tale capacità in modo direttamente inversamente proporzionale al valore target del parametro di dimensionamento.

**Nota**  
Sono disponibili diversi fattori per regolare e migliorare i risparmi sui costi e la disponibilità dell'applicazione.  
Utilizza il dimensionamento predittivo per la capacità di base e il dimensionamento dinamico per gestire la capacità aggiuntiva. Il dimensionamento dinamico funziona indipendentemente dal dimensionamento predittivo, riducendo e aumentando orizzontalmente in base all'utilizzo corrente. Innanzitutto, Amazon ECS calcola il numero consigliato di attività per ogni policy di dimensionamento non pianificato. Quindi, effettua il dimensionamento in base alla policy che fornisce il maggior numero di attività.
Per consentire la riduzione orizzontale quando il carico diminuisce, il servizio deve sempre disporre di almeno una policy di dimensionamento predittivo con la porzione di riduzione orizzontale abilitata.
Puoi migliorare le prestazioni di dimensionamento assicurandoti che la capacità minima e massima non siano troppo restrittive. Una policy con un numero consigliato di attività che non rientra nell'intervallo di capacità minima e massima non sarà in grado di effettuare l'aumento o la riduzione orizzontale.

# Monitora i parametri di scalabilità predittiva per Amazon ECS con CloudWatch
<a name="predictive-scaling-monitoring"></a>

Puoi usare Amazon CloudWatch per monitorare i tuoi dati per la scalabilità predittiva. Una policy di dimensionamento predittivo raccoglie i dati che vengono utilizzati per prevedere il carico futuro. I dati raccolti vengono archiviati automaticamente CloudWatch a intervalli regolari e possono essere utilizzati per visualizzare le prestazioni della politica nel tempo. Puoi anche creare CloudWatch allarmi per avvisarti quando gli indicatori di performance cambiano oltre i limiti che hai definito.

## Visualizzazione dei dati di previsione storici
<a name="visualize-historical-forecast-data"></a>

I dati di previsione del carico per una politica di scalabilità predittiva possono essere visualizzati CloudWatch e possono essere utili quando si visualizzano le previsioni rispetto ad altre CloudWatch metriche in un unico grafico. Si possono anche vedere le tendenze visualizzando un intervallo di tempo più ampio. Puoi accedere ai parametri cronologici fino a 15 mesi per avere una prospettiva migliore sulle performance di una policy.

**Per visualizzare i dati di previsione storici utilizzando la console CloudWatch**

1. Apri la CloudWatch console all'indirizzo [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. Nel pannello di navigazione, scegli **Metrics (Parametri)**, quindi scegli **All metrics (Tutti i parametri)**.

1. Scegliere il parametro del namespace **Dimensionamento automatico delle applicazioni**.

1. Scegliere **Previsioni del carico di dimensionamento predittivo**.

1. Nel campo di ricerca, immettere il nome della policy di dimensionamento predittivo o il nome del gruppo di servizio Amazon ECS, quindi premere Invio per filtrare i risultati. 

1. Per creare il grafico di un parametro, seleziona la casella di controllo accanto al parametro. Per modificare il nome del grafico, seleziona l'icona a forma di matita. Per modificare l'intervallo di tempo, seleziona uno dei valori predefiniti o scegli **custom** (personalizzato). Per ulteriori informazioni, consulta la sezione [Rappresentazione grafica di una metrica](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/graph_a_metric.html) nella *Amazon CloudWatch User Guide*.

1. Per modificare la statistica, seleziona la scheda **Graphed metrics** (Parametri nel grafico). Scegli l'intestazione di colonna o un valore singolo, quindi scegli un'altra statistica. Sebbene sia possibile scegliere qualsiasi statistica per ogni metrica, non tutte le statistiche sono utili per le metriche. **PredictiveScalingLoadForecast** Ad esempio, le statistiche **media**, **minimo** e **massimo** sono utili, ma la statistica **somma** non lo è.

1. Per aggiungere un altro parametro al grafico, in **Browse** (Sfoglia), scegli **All** (Tutti), trova il parametro specifico, quindi seleziona la casella di controllo accanto a esso. Puoi aggiungere fino a 10 parametri.

1. (Facoltativo) Per aggiungere il grafico a una CloudWatch dashboard, scegli **Azioni**, **Aggiungi alla** dashboard.

## Creazione di parametri di precisione utilizzando la matematica dei parametri
<a name="create-accuracy-metrics"></a>

Con la matematica metrica, puoi interrogare più CloudWatch metriche e utilizzare espressioni matematiche per creare nuove serie temporali basate su queste metriche. Puoi visualizzare le serie temporali risultanti sulla CloudWatch console e aggiungerle ai dashboard. *Per ulteriori informazioni sulla matematica dei parametri, consulta [Using metric Math nella](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/using-metric-math.html) Amazon User Guide. CloudWatch *

Utilizzando la matematica dei parametri, è possibile rappresentare graficamente i dati generati dal dimensionamento automatico del servizio per il dimensionamento predittivo in diversi modi. Questo ti aiuta a monitorare le prestazioni delle policy nel tempo e ti aiuta a capire se la tua combinazione di parametri può essere migliorata.

Ad esempio, è possibile utilizzare un'espressione matematica dei parametri per monitorare il [errore percentuale assoluto medio](https://en.wikipedia.org/wiki/Mean_absolute_percentage_error) (MAPE). Il parametro MAPE aiuta a monitorare la differenza tra i valori previsti e i valori effettivi osservati durante una determinata finestra di previsione. Le modifiche nel valore di MAPE possono indicare se le prestazioni della policy stanno peggiorando nel tempo in quanto la natura della tua applicazione cambia. Un aumento del MAPE segnala un divario più ampio tra i valori previsti e i valori effettivi. 

**Esempio: espressione matematica dei parametri**

Per iniziare a utilizzare questo tipo di grafico, puoi creare un'espressione matematica dei parametri come quella mostrata nell'esempio seguente.



Invece di un singolo parametro, è disponibile una serie di strutture di query di dati dei parametri per `MetricDataQueries`. Ogni articolo in `MetricDataQueries` ottiene un parametro o esegue un'espressione matematica. Il primo articolo, `e1`, è l'espressione matematica. L'espressione designata imposta il parametro `ReturnData` a `true`, che alla fine produce una singola serie temporale. Per tutte le altre parametri, il valore `ReturnData` è `false`. 

Nell'esempio, l'espressione designata utilizza i valori effettivi e previsti come input e restituisce la nuova metrica (MAPE). `m1`è la CloudWatch metrica che contiene i valori di carico effettivi (supponendo che l'utilizzo della CPU sia la metrica di carico originariamente specificata per la policy denominata). `my-predictive-scaling-policy` `m2`è la CloudWatch metrica che contiene i valori di carico previsti. La sintassi matematica per il parametro MAPE è la seguente:

*Media di (abs ((Effettivo - Previsto)/(Effettivo)))*

### Visualizza i parametri di precisione e imposta allarmi
<a name="visualize-accuracy-metrics-set-alarms"></a>

Per visualizzare i dati delle metriche di precisione, seleziona la scheda **Metriche** nella console. CloudWatch È possibile rappresentare graficamente i dati da lì. Per ulteriori informazioni, consulta [Aggiungere un'espressione matematica a un CloudWatch grafico](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/using-metric-math.html#adding-metrics-expression-console) nella *Amazon CloudWatch User Guide*.

Puoi anche impostare un allarme su un parametro che stai monitorando dalla sezione **Metrics** (Parametri). Nella scheda **Graphed metrics** (Parametri nel grafico), seleziona l'icona **Create alarm** (Crea allarme) nella colonna **Actions** (Operazioni). L'icona **Create alarm** (Crea allarme) è rappresentata come una piccola campana. Per ulteriori informazioni e opzioni di notifica, consulta [Creazione di un CloudWatch allarme basato su un'espressione matematica metrica](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Create-alarm-on-metric-math-expression.html) e [Notifica agli utenti delle modifiche agli allarmi](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Notify_Users_Alarm_Changes.html) nella *Amazon CloudWatch * User Guide.

In alternativa, puoi utilizzare [GetMetricData](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_GetMetricData.html)ed [PutMetricAlarm](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_PutMetricAlarm.html)eseguire calcoli utilizzando la matematica metrica e creare allarmi in base all'output.

# Utilizzare azioni pianificate per sovrascrivere i valori di previsione per Amazon ECS
<a name="predictive-scaling-overriding-forecast-capacity"></a>

Talvolta, potrebbero essere disponibili ulteriori informazioni sui requisiti futuri dell'applicazione che il calcolo del forecast non è in grado di prendere in considerazione. Ad esempio, i calcoli del forecast potrebbero sottovalutare le attività necessarie per un evento di marketing imminente. È possibile utilizzare le operazioni pianificate per sostituire temporaneamente il forecast nei periodi di tempo futuri. Le operazioni pianificate possono essere eseguite su base periodica o in una data e un'ora specifiche in cui si manifestino variazioni della domanda una tantum. 

Ad esempio, è possibile creare un'operazione pianificata con un numero di attività superiore a quello previsto. In fase di runtime, Amazon ECS aggiorna il numero minimo di attività del servizio. Poiché il dimensionamento predittivo ottimizza il numero di attività, viene osservata un'azione pianificata con un numero di attività minimo superiore ai valori previsti. Ciò fa sì che il numero di attività non sia inferiore al previsto. Per interrompere l'override della previsione, utilizza una seconda operazione pianificata per riportare il numero di attività minimo all'impostazione originale.

La procedura seguente descrive le fasi per sostituire il forecast nei periodi di tempo futuri. 

**Topics**
+ [Fase 1: analizza i dati di serie temporali (opzionale)](#analyzing-time-series-data)
+ [Fase 2: creazione di due operazioni pianificate](#scheduling-capacity)

**Importante**  
Questo argomento presuppone che si stia cercando di sostituire la previsione per passare a una capacità superiore a quella prevista. Se è necessario ridurre temporaneamente il numero di attività senza interferenze dovute a una policy di dimensionamento predittivo, utilizzare invece la modalità di *sola previsione*. In modalità di sola previsione, il dimensionamento predittivo continuerà a generare previsioni, ma non aumenterà automaticamente il numero di attività. È quindi possibile monitorare l'utilizzo delle risorse e ridurre manualmente il numero di attività in base alle esigenze. 

## Fase 1: analizza i dati di serie temporali (opzionale)
<a name="analyzing-time-series-data"></a>

Inizia analizzando i dati delle serie temporali dei forecast. Si tratta di un passaggio facoltativo, ma è utile se desideri comprendere i dettagli del forecast.

1. **Recupero del forecast**

   Dopo aver creato il forecast, puoi avviare una query per un periodo di tempo specifico nel forecast. L'obiettivo della query è ottenere lo scenario completo dei dati delle serie temporali per un periodo di tempo specifico. 

   La query può includere fino a due giorni di dati di forecast futuro. Se utilizzi il dimensionamento predittivo per un certo periodo di tempo, puoi anche accedere ai dati dei forecast precedenti. Tuttavia, la durata massima tra l'ora di inizio e di fine è 30 giorni. 

   Per ottenere la previsione utilizzando il [get-predictive-scaling-forecast](https://docs.aws.amazon.com/cli/latest/reference/autoscaling/get-predictive-scaling-forecast.html) AWS CLI comando, fornite i seguenti parametri nel comando: 
   + Inserire il nome del cluster nel parametro `resource-id`. 
   + Inserire il nome della policy nel parametro `--policy-name`. 
   + Inserisci l'ora di inizio nel parametro `--start-time` affinché restituisca solo i dati di forecast per il periodo di tempo o dopo l'intervallo di tempo specificato.
   + Inserisci l'ora di fine nel parametro `--end-time` affinché restituisca solo i dati di forecast per il periodo di tempo precedente all'intervallo di tempo specificato. 

   ```
   aws application-autoscaling get-predictive-scaling-forecast \
       --service-namespace ecs \
       --resource-id service/MyCluster/test \
       --policy-name cpu40-predictive-scaling-policy \
       --scalable-dimension ecs:service:DesiredCount \
       --start-time "2021-05-19T17:00:00Z" \
       --end-time "2021-05-19T23:00:00Z"
   ```

   Se riuscito, il comando restituirà dati simili a quelli dell'esempio seguente: 

   ```
   {
       "LoadForecast": [
           {
               "Timestamps": [
                   "2021-05-19T17:00:00+00:00",
                   "2021-05-19T18:00:00+00:00",
                   "2021-05-19T19:00:00+00:00",
                   "2021-05-19T20:00:00+00:00",
                   "2021-05-19T21:00:00+00:00",
                   "2021-05-19T22:00:00+00:00",
                   "2021-05-19T23:00:00+00:00"
               ],
               "Values": [
                   153.0655799339254,
                   128.8288551285919,
                   107.1179447150675,
                   197.3601844551528,
                   626.4039934516954,
                   596.9441277518481,
                   677.9675713779869
               ],
               "MetricSpecification": {
                   "TargetValue": 40.0,
                   "PredefinedMetricPairSpecification": {
                       "PredefinedMetricType": "ASGCPUUtilization"
                   }
               }
           }
       ],
       "CapacityForecast": {
           "Timestamps": [
               "2021-05-19T17:00:00+00:00",
               "2021-05-19T18:00:00+00:00",
               "2021-05-19T19:00:00+00:00",
               "2021-05-19T20:00:00+00:00",
               "2021-05-19T21:00:00+00:00",
               "2021-05-19T22:00:00+00:00",
               "2021-05-19T23:00:00+00:00"
           ],
           "Values": [
               2.0,
               2.0,
               2.0,
               2.0,
               4.0,
               4.0,
               4.0
           ]
       },
       "UpdateTime": "2021-05-19T01:52:50.118000+00:00"
   }
   ```

   La risposta include due forecast: `LoadForecast` e `CapacityForecast`. `LoadForecast` mostra il forecast del carico orario.`CapacityForecast` mostra i valori di forecast per la capacità necessaria su base oraria per gestire il carico previsto pur mantenendo un `TargetValue` di 40,0 (40% utilizzo medio della CPU).

1. **Identificazione del periodo di tempo di destinazione**

   Identifica l'ora o le ore in cui deve avvenire la variazione della domanda una tantum. Ricorda che le date e le ore mostrate nel forecast sono in UTC.

## Fase 2: creazione di due operazioni pianificate
<a name="scheduling-capacity"></a>

Ora crea quindi due operazioni pianificate per un periodo di tempo specifico in cui l'applicazione avrà un carico superiore a quello previsto. Ad esempio, se è previsto un evento di marketing che genererà traffico nel tuo sito per un periodo di tempo limitato, puoi pianificare un'operazione singola per aggiornare la capacità minima all'ora di inizio prevista. Quindi, pianifica un'altra operazione per riportare la capacità minima all'impostazione originale al termine dell'evento. 

1. Apri la console alla [https://console.aws.amazon.com/ecs/v2](https://console.aws.amazon.com/ecs/v2).

1. Nella pagina **Cluster**, scegliere il cluster.

1. Nella pagina dei dettagli del cluster, nella sezione **Servizi**, selezionare il servizio.

   Si apre la pagina dei dettagli del servizio.

1. Scegliere **Dimensionamento automatico del servizio**.

   Si apre la pagina delle policy.

1. Scegliere **Operazioni pianificate** e poi scegliere **Crea**.

   Si apre la pagina **Crea operazione pianificata**.

1. Per **Nome operazione**, inserire un nome univoco.

1. In **Time zone (Fuso orario)**, scegli un fuso orario.

   Tutti i fusi orari elencati provengono dal database del fuso orario IANA. Per ulteriori informazioni, consultare [List of tz database time zones](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones).

1. Per **Ora di inizio**, inserire la **data** e l'**ora** di inizio dell'operazione.

1. Per **Recurrence (Ricorrenza)**, scegliere **Once (Una tantum)**.

1. In **Regolazione delle attività**, per Minimo, inserire un valore inferiore o uguale al numero massimo di attività.

1. Scegli **Crea operazione pianificata**.

   Si apre la pagina delle policy.

1. Configurare una seconda operazione programmata per ripristinare l'impostazione originale del numero di attività minimo alla fine dell'evento. Il dimensionamento predittivo può dimensionare il numero di attività solo quando il valore impostato per **Minimo** è inferiore ai valori di previsione.

**Come creare due operazioni pianificate per eventi singoli (AWS CLI)**  
Per utilizzare il AWS CLI per creare le azioni pianificate, usa il comando [put-scheduled-update-group-action](https://docs.aws.amazon.com/cli/latest/reference/autoscaling/put-scheduled-update-group-action.html). 

Ad esempio, definiamo una pianificazione che mantenga una capacità minima di tre istanze il 19 maggio alle 17:00 per otto ore. I comandi seguenti mostrano come implementare questo scenario.

Il primo comando [put-scheduled-update-group-action](https://docs.aws.amazon.com/cli/latest/reference/autoscaling/put-scheduled-update-group-action.html) indica ad Amazon EC2 Auto Scaling di aggiornare la capacità minima del gruppo Auto Scaling specificato alle 17:00 UTC del 19 maggio 2021. 

```
aws autoscaling put-scheduled-update-group-action --scheduled-action-name my-event-start \
  --auto-scaling-group-name my-asg --start-time "2021-05-19T17:00:00Z" --minimum-capacity 3
```

Il secondo comando indica ad Amazon EC2 Auto Scaling di impostare la capacità minima del gruppo su una alle 1:00 UTC del 20 maggio 2021. 

```
aws autoscaling put-scheduled-update-group-action --scheduled-action-name my-event-end \
  --auto-scaling-group-name my-asg --start-time "2021-05-20T01:00:00Z" --minimum-capacity 1
```

Dopo aver aggiunto queste operazioni pianificate al gruppo Auto Scaling, Amazon EC2 Auto Scaling esegue le seguenti operazioni: 
+ Alle 17:00 UTC del 19 maggio 2021, viene eseguita la prima operazione pianificata. Se il gruppo include meno di tre istanze, il gruppo si dimensiona su tre istanze. Durante questo periodo e per le otto ore successive, Amazon EC2 Auto Scaling può continuare a essere aumentato orizzontalmente, se la capacità prevista è superiore alla capacità effettiva o se è in atto una policy di dimensionamento dinamico. 
+ All' 01:00 UTC del 20 maggio 2021, viene eseguita la seconda operazione pianificata. Questo restituisce la capacità minima all'impostazione originale alla fine dell'evento.

### Dimensionamento in base a pianificazioni ricorrenti
<a name="scheduling-recurring-actions"></a>

Per sostituire il forecast per lo stesso periodo di tempo ogni settimana, crea due operazioni pianificate e fornisci la logica di data e ora utilizzando un'espressione cron. 

Il formato dell'espressione cron è costituito da cinque campi separati da spazi: [Minute] [Hour] [Day\$1of\$1Month] [Month\$1of\$1Year] [Day\$1of\$1Week]. I campi possono contenere tutti i valori consentiti, inclusi i caratteri speciali. 

Ad esempio, la seguente espressione cron campi esegue un'operazione ogni giorno alle 06:30. L'asterisco viene utilizzato come carattere jolly per abbinare tutti i valori di un campo.

```
30 6 * * 2
```

### Consulta anche
<a name="scheduling-scaling-see-also"></a>

Per ulteriori informazioni su come gestire le operazioni pianificate, consultare [Usa azioni pianificate per scalare i servizi Amazon ECS](service-autoscaling-schedulescaling.md).

# Configurazioni avanzate delle policy di dimensionamento predittivo utilizzando parametri personalizzati per Amazon ECS
<a name="predictive-scaling-custom-metrics"></a>

In una policy di dimensionamento predittivo, è possibile utilizzare parametri predefiniti o personalizzati. I parametri personalizzati sono utili quando i parametri predefiniti, ad esempio la CPU, la memoria, ecc.) non sono sufficienti per descrivere sufficientemente il carico dell'applicazione.

Quando crei una politica di scalabilità predittiva con metriche personalizzate, puoi specificare altre metriche fornite da. CloudWatch AWS In alternativa, è possibile specificare le metriche definite e pubblicate autonomamente. Puoi anche utilizzare la matematica metrica per aggregare e trasformare le metriche esistenti in una nuova serie temporale che non viene tracciata automaticamente. AWS Un esempio consiste nel combinare valori nei dati calcolando nuove somme o medie, un processo detto *aggregazione*. I dati risultanti sono chiamati *aggregato*.

La sezione seguente contiene le best practice e alcuni esempi di come costruire la struttura JSON per la policy.

## Prerequisiti
<a name="predictive-scaling-custom-metrics-prerequisites"></a>

Per aggiungere parametri personalizzati alla tua policy di dimensionamento predittivo, devi disporre delle autorizzazioni `cloudwatch:GetMetricData`.

Per specificare le tue metriche anziché le metriche AWS fornite da te, devi prima pubblicarle su. CloudWatch Per ulteriori informazioni, consulta [Pubblicazione di metriche personalizzate](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/publishingMetrics.html) nella *Amazon CloudWatch User Guide*. 

Quando pubblichi i tuoi parametri, assicurati di pubblicare i punti dati con una frequenza minima di cinque minuti. I punti dati vengono recuperati in CloudWatch base alla durata del periodo necessario. Ad esempio, la specifica della metrica di carico utilizza metriche orarie per misurare il carico sull'applicazione. CloudWatch utilizza i dati metrici pubblicati per fornire un unico valore di dati per ogni periodo di un'ora aggregando tutti i punti dati con timestamp che rientrano in ogni periodo di un'ora.

## Best practice
<a name="predictive-scaling-custom-metrics-best-practices"></a>

Le seguenti best practice consentono di utilizzare i parametri personalizzati in modo più efficace:
+ Il parametro più utile per la specifica del parametro di carico è un parametro che rappresenta il carico su un gruppo Auto Scaling nel suo complesso.
+ Il parametro più utile per la specifica del parametro di dimensionamento con cui effettuare la scalabilità è il throughput medio o utilizzo medio per parametro di attività.
+ L'utilizzo di destinazione deve corrispondere al tipo di parametro di dimensionamento. Per una configurazione di policy che usa l'utilizzo della CPU, questa è ad esempio una percentuale di destinazione.
+ Se questi suggerimenti non vengono seguiti, i valori futuri previsti della serie temporale probabilmente non saranno corretti. Per verificare che i dati siano corretti, è possibile visualizzare i valori previsti nella console. In alternativa, dopo aver creato la politica di scalabilità predittiva, ispeziona gli oggetti restituiti da una chiamata all'`LoadForecast`API. [GetPredictiveScalingForecast](https://docs.aws.amazon.com/autoscaling/application/APIReference/API_GetPredictiveScalingForecast.html)
+ Ti suggeriamo vivamente di configurare il dimensionamento predittivo in modalità Solo previsione, in modo da poter valutare il Forecast prima che il dimensionamento predittivo inizi attivamente la capacità.

## Limitazioni
<a name="predicitve-scaling-custom-metrics-limitations"></a>
+ Puoi eseguire query su punti dati con un massimo di 10 parametri in un'unica specifica del parametro.
+ Ai fini di questo limite, un'espressione conta come un parametro.

## Risoluzione dei problemi di una policy di dimensionamento predittivo con parametri personalizzati
<a name="predictive-scaling-custom-metrics-troubleshooting"></a>

Se si verifica un problema durante l'utilizzo di parametri personalizzati, si consiglia di procedere come segue:
+ Se riscontri un problema in una blue/green distribuzione durante l'utilizzo di un'espressione di ricerca, assicurati di aver creato un'espressione di ricerca che cerchi una corrispondenza parziale e non una corrispondenza esatta. È anche necessario verificare che la query trovi solo i gruppi Auto Scaling che eseguono l'applicazione specifica. Per ulteriori informazioni sulla sintassi delle espressioni di ricerca, consulta la sintassi delle [espressioni di CloudWatch ricerca](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/search-expression-syntax.html) nella *Amazon CloudWatch User Guide*.
+ Il [put-scaling-policy](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/put-scaling-policy.html)comando convalida un'espressione quando crei la tua politica di scalabilità. Tuttavia, vi è la possibilità che questo comando non riesca a identificare la causa esatta degli errori rilevati. Per risolvere i problemi, risolvete gli errori che ricevete in risposta a una richiesta al comando. [get-metric-data](https://docs.aws.amazon.com/cli/latest/reference/cloudwatch/get-metric-data.html) È inoltre possibile risolvere i problemi relativi all'espressione dalla console. CloudWatch
+ Devi specificare `false` per `ReturnData` se `MetricDataQueries` specifica la funzione SEARCH() da sola senza una funzione matematica come SUM(). Questo perché le espressioni di ricerca possono restituire più serie temporali e una specifica del parametro basata su un'espressione può restituire solo una serie temporale.
+ Tutti i parametri coinvolti in un'espressione di ricerca devono avere la stessa risoluzione.

# Creazione di JSON per il dimensionamento predittivo di metriche personalizzate con Amazon ECS
<a name="predictive-scaling-custom-metrics-example"></a>

La sezione seguente contiene esempi su come configurare la scalabilità predittiva da cui interrogare i dati. CloudWatch Esistono due metodi diversi per configurare questa opzione e il metodo scelto influisce sul formato utilizzato per costruire il JSON per la policy di scalabilità predittiva. Quando si utilizza la formula per i parametri, il formato del JSON varia ulteriormente in base alla formula eseguita.

1. Per creare una policy che ottenga i dati direttamente da altre CloudWatch metriche fornite da AWS o da metriche su cui pubblichi, consulta. CloudWatch [Esempio di politica di scalabilità predittiva con metriche di carico e scalabilità personalizzate utilizzando AWS CLI](#predictive-scaling-custom-metrics-example1)

## Esempio di politica di scalabilità predittiva con metriche di carico e scalabilità personalizzate utilizzando AWS CLI
<a name="predictive-scaling-custom-metrics-example1"></a>

Per creare una politica di scalabilità predittiva con metriche di carico e scalabilità personalizzate con AWS CLI, memorizza gli argomenti per in un file JSON denominato. `--predictive-scaling-configuration` `config.json`

Inizi ad aggiungere parametri personalizzati sostituendo i valori sostituibili nell'esempio seguente con quelli dei tuoi parametri e del tuo obiettivo di destinazione.

```
{
  "MetricSpecifications": [
    {
      "TargetValue": 50,
      "CustomizedScalingMetricSpecification": {
        "MetricDataQueries": [
          {
            "Id": "scaling_metric",
            "MetricStat": {
              "Metric": {
                "MetricName": "MyUtilizationMetric",
                "Namespace": "MyNameSpace",
                "Dimensions": [
                  {
                    "Name": "MyOptionalMetricDimensionName",
                    "Value": "MyOptionalMetricDimensionValue"
                  }
                ]
              },
              "Stat": "Average"
            }
          }
        ]
      },
      "CustomizedLoadMetricSpecification": {
        "MetricDataQueries": [
          {
            "Id": "load_metric",
            "MetricStat": {
              "Metric": {
                "MetricName": "MyLoadMetric",
                "Namespace": "MyNameSpace",
                "Dimensions": [
                  {
                    "Name": "MyOptionalMetricDimensionName",
                    "Value": "MyOptionalMetricDimensionValue"
                  }
                ]
              },
              "Stat": "Sum"
            }
          }
        ]
      }
    }
  ]
}
```

Per ulteriori informazioni, consulta il riferimento [MetricDataQuery](https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_MetricDataQuery.html)all'*API Amazon EC2 Auto Scaling*.

**Nota**  
Di seguito sono riportate alcune risorse aggiuntive che possono aiutarti a trovare nomi di metriche, namespace, dimensioni e statistiche per le metriche: CloudWatch   
Per informazioni sui parametri disponibili per AWS i servizi, consulta i [AWS servizi che pubblicano CloudWatch metriche](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/aws-services-cloudwatch-metrics.html) nella *Amazon CloudWatch User* Guide.
[Per ottenere il nome esatto della metrica, lo spazio dei nomi e le dimensioni (se applicabili) di una CloudWatch metrica con, consulta list-metrics. AWS CLI](https://docs.aws.amazon.com/cli/latest/reference/cloudwatch/list-metrics.html) 

Per creare questo criterio, esegui il [put-scaling-policy](https://docs.aws.amazon.com/cli/latest/reference/autoscaling/put-scaling-policy.html)comando utilizzando il file JSON come input, come illustrato nell'esempio seguente.

```
aws application-autoscaling put-scaling-policy --policy-name my-predictive-scaling-policy \
  --auto-scaling-group-name my-asg --policy-type PredictiveScaling \
  --predictive-scaling-configuration file://config.json
```

In caso di esito positivo, questo comando restituisce l'Amazon Resource Name (ARN) della policy.

```
{
  "PolicyARN": "arn:aws:autoscaling:region:account-id:scalingPolicy:2f4f5048-d8a8-4d14-b13a-d1905620f345:autoScalingGroupName/my-asg:policyName/my-predictive-scaling-policy",
  "Alarms": []
}
```

# Utilizzare le espressioni matematiche del parametro
<a name="predictive-scaling-math-expression"></a>

La sezione seguente fornisce informazioni sull'utilizzo della matematica delle metriche con policy di dimensionamento predittivo nella policy. 

## Comprendere la matematica dei parametri
<a name="predictive-scaling-custom-metrics-math"></a>

Se tutto ciò che vuoi fare è aggregare i dati metrici esistenti, la matematica metrica ti consente di risparmiare lo sforzo e il costo della pubblicazione di un'altra CloudWatch metrica su. CloudWatch Puoi utilizzare qualsiasi metrica AWS fornita e puoi anche utilizzare le metriche che definisci come parte delle tue applicazioni.

Per ulteriori informazioni, consulta [Using metric Math](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/using-metric-math.html) nella *Amazon CloudWatch User Guide*. 

Se si sceglie di utilizzare un'espressione matematica dei parametri nella policy di dimensionamento predittivo, considerare i seguenti punti:
+ Le operazioni matematiche metriche utilizzano i punti dati della combinazione univoca di nome della metrica, namespace e coppie di metriche dimensionali. keys/value 
+ È possibile utilizzare qualsiasi operatore aritmetico (\$1 - \$1/^), funzione statistica (come AVG o SUM) o altra funzione che supporti. CloudWatch 
+ È possibile utilizzare i parametri e i risultati di altre espressioni matematiche nelle formule dell'espressione matematica. 
+ Le espressioni matematiche dei parametri possono essere costituite da aggregazioni diverse. Tuttavia, per il risultato finale dell'aggregazione è una best practice utilizzare `Average` per il parametro di dimensionamento e `Sum` per il parametro del carico.
+ Qualsiasi espressione utilizzata in una specifica dei parametri deve restituire una singola serie temporale.

Per utilizzare i parametri matematici, procedi come segue:
+ Scegli una o più metriche. CloudWatch Quindi, crea l'espressione. Per ulteriori informazioni, consulta [Using metric Math](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/using-metric-math.html) nella *Amazon CloudWatch User Guide*. 
+ Verifica che l'espressione matematica della metrica sia valida utilizzando la CloudWatch console o l'API. CloudWatch [GetMetricData](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_GetMetricData.html)

## Esempio di policy di dimensionamento predittivo che combina parametri utilizzando la formula dei parametri (AWS CLI)
<a name="custom-metrics-ex2"></a>

A volte, invece di specificare direttamente il parametro, potrebbe essere necessario prima elaborarne i dati in qualche modo. Ad esempio, potresti avere un'applicazione che estrae il lavoro da una coda Amazon SQS e potresti utilizzare il numero di elementi nella coda come policy di dimensionamento predittivo. Il numero di messaggi nella coda non definisce esclusivamente il numero di istanze necessarie. Pertanto, è necessario più lavoro per creare un parametro che si può utilizzare per calcolare il backlog per istanza.

Di seguito viene illustrato un esempio di policy di dimensionamento predittivo per questo scenario. Specifica i parametri di dimensionamento e del carico basati sul parametro `ApproximateNumberOfMessagesVisible` di Amazon SQS, ovvero il numero di messaggi disponibili per il recupero dalla coda. Utilizza anche il parametro `GroupInServiceInstances`di Amazon EC2 Auto Scaling e un'espressione matematica per calcolare il backlog per istanza del parametro di dimensionamento.

```
aws application-autoscaling put-scaling-policy --policy-name my-sqs-custom-metrics-policy \
  --policy-type PredictiveScaling \
  --predictive-scaling-configuration file://config.json
  --service-namespace ecs \
  --resource-id service/MyCluster/test \
  "MetricSpecifications": [
    {
      "TargetValue": 100,
      "CustomizedScalingMetricSpecification": {
        "MetricDataQueries": [
          {
            "Label": "Get the queue size (the number of messages waiting to be processed)",
            "Id": "queue_size",
            "MetricStat": {
              "Metric": {
                "MetricName": "ApproximateNumberOfMessagesVisible",
                "Namespace": "AWS/SQS",
                "Dimensions": [
                  {
                    "Name": "QueueName",
                    "Value": "my-queue"
                  }
                ]
              },
              "Stat": "Sum"
            },
            "ReturnData": false
          },
          {
            "Label": "Get the group size (the number of running instances)",
            "Id": "running_capacity",
            "MetricStat": {
              "Metric": {
                "MetricName": "GroupInServiceInstances",
                "Namespace": "AWS/AutoScaling",
                "Dimensions": [
                  {
                    "Name": "AutoScalingGroupName",
                    "Value": "my-asg"
                  }
                ]
              },
              "Stat": "Sum"
            },
            "ReturnData": false
          },
          {
            "Label": "Calculate the backlog per instance",
            "Id": "scaling_metric",
            "Expression": "queue_size / running_capacity",
            "ReturnData": true
          }
        ]
      },
      "CustomizedLoadMetricSpecification": {
        "MetricDataQueries": [
          {
            "Id": "load_metric",
            "MetricStat": {
              "Metric": {
                "MetricName": "ApproximateNumberOfMessagesVisible",
                "Namespace": "AWS/SQS",
                "Dimensions": [
                  {
                    "Name": "QueueName",
                    "Value": "my-queue"
                  }
                ],
              },
              "Stat": "Sum"
            },
            "ReturnData": true
          }
        ]
      }
    }
  ]
}
```

L'esempio restituisce l'ARN della policy.

```
{
  "PolicyARN": "arn:aws:autoscaling:region:account-id:scalingPolicy:2f4f5048-d8a8-4d14-b13a-d1905620f345:autoScalingGroupName/my-asg:policyName/my-sqs-custom-metrics-policy",
  "Alarms": []
}
```