

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

# Riduci la latenza per le applicazioni con tempi di avvio lunghi utilizzando pool caldi
<a name="ec2-auto-scaling-warm-pools"></a>

Un warm pool offre la possibilità di ridurre la latenza per le applicazioni che hanno tempi di avvio eccezionalmente lunghi, ad esempio, perché le istanze devono scrivere enormi quantità di dati su disco. Con i warm pool, è possibile gestire la latenza per migliorare le prestazioni delle applicazioni evitando di eseguire un provisioning dei gruppi di Auto Scaling oltre il necessario. Per ulteriori informazioni, consulta il seguente post sul blog [Scalabilità più rapida delle applicazioni con i warm pool EC2 Auto Scaling](https://aws.amazon.com/blogs/compute/scaling-your-applications-faster-with-ec2-auto-scaling-warm-pools/).

**Importante**  
Creare un warm pool quando non è necessario può generare costi inutili. Se il primo avvio non causa problemi di latenza evidenti per l'applicazione, probabilmente non è necessario utilizzare un warm pool.

**Topics**
+ [Concetti principali](#warm-pool-core-concepts)
+ [Prerequisiti](#warm-pool-prerequisites)
+ [Aggiornamento di istanze in un pool caldo](#update-warm-pool)
+ [Risorse correlate](#warm-pools-related-resources)
+ [Limitazioni](#warm-pools-limitations)
+ [Utilizzare un hook del ciclo di vita](warm-pool-instance-lifecycle.md)
+ [Creazione di un pool caldo per un gruppo con dimensionamento automatico](create-warm-pool.md)
+ [Visualizzare lo stato del controllo dell'integrità](warm-pools-health-checks-monitor-view-status.md)
+ [AWS CLI esempi di utilizzo di piscine calde](examples-warm-pools-aws-cli.md)

## Concetti principali
<a name="warm-pool-core-concepts"></a>

Prima di iniziare, acquisisci familiarità con i concetti principali riportati di seguito:

**Warm pool**  
Un warm pool è un pool di istanze EC2 pre-inizializzate che si trova accanto a un gruppo con scalabilità automatica. Ogni volta che l'applicazione deve essere dimensionata, il gruppo con scalabilità automatica può sviluppare sul warm pool per soddisfare la nuova capacità desiderata. L'obiettivo è garantire che le istanze siano pronte per iniziare rapidamente a servire il traffico delle applicazioni, accelerando la risposta a un evento di aumento orizzontale. Man mano che le istanze lasciano il warm pool, contano per la capacità desiderata del gruppo. Si tratta del cosiddetto *avvio a caldo*.   
Mentre le istanze sono nel periodo di riscaldamento, le policy di scalabilità vengono dimensionate orizzontalmente solo se il valore del parametro delle istanze che si trovano nello stato `InService` è maggiore della soglia massima di allarme della policy di dimensionamento (che è uguale all'utilizzo di destinazione di una policy di dimensionamento con monitoraggio degli obiettivi).

**Dimensione di un warm pool**  
Per impostazione predefinita, la dimensione del warm pool viene calcolata come la differenza tra la capacità massima del gruppo con scalabilità automatica e la capacità desiderata. Ad esempio, se la capacità desiderata del gruppo con scalabilità automatica è 6 e la capacità massima è 10, la dimensione del warm pool sarà 4 quando imposti il warm pool e questo viene inizializzato.   
Per specificare separatamente la capacità massima della piscina calda, utilizzate l'opzione custom specifications (`MaxGroupPreparedCapacity`) e impostate un valore personalizzato maggiore della capacità corrente del gruppo. Se fornite un valore personalizzato, la dimensione del pool caldo viene calcolata come la differenza tra il valore personalizzato e la capacità corrente desiderata del gruppo. Ad esempio, se la capacità desiderata del gruppo Auto Scaling è 6, se la capacità massima è 20 e se il valore personalizzato è 8, la dimensione della piscina calda sarà 2 quando si configura per la prima volta la piscina calda e il pool si sta inizializzando.   
Potrebbe essere necessario utilizzare l'opzione custom specifications (`MaxGroupPreparedCapacity`) solo quando si lavora con gruppi di Auto Scaling di grandi dimensioni per gestire i vantaggi economici derivanti dall'avere una piscina calda. Ad esempio, un gruppo con scalabilità automatica con 1000 istanze, una capacità massima di 1500 (per fornire capacità extra per picchi di traffico di emergenza) e un warm pool di 100 istanze potrebbero aiutarti a raggiungere gli obiettivi meglio che mantenere 500 istanze riservate per un uso futuro all'interno del warm pool.

**Dimensione minima del warm pool**  
Prendi in considerazione l'utilizzo dell'impostazione della dimensione minima (`MinSize`) per impostare staticamente il numero minimo di istanze da mantenere nel pool caldo. Per impostazione predefinita, non è impostata alcuna dimensione minima. L'`MinSize`impostazione è utile quando si specifica di `MaxGroupPreparedCapacity` garantire che venga mantenuto un numero minimo di istanze nel pool caldo anche quando la capacità desiderata del gruppo Auto Scaling è superiore alla. `MaxGroupPreparedCapacity`

**Stato delle istanze del warm pool**  
È possibile mantenere istanze nel warm pool in uno dei tre stati: `Stopped`, `Running` o `Hibernated`. Mantenere le istanze nello stato `Stopped` è un modo efficace per ridurre al minimo i costi. Con le istanze arrestate, paghi solo per i volumi utilizzati e gli indirizzi IP elastici assegnati alle istanze.  
In alternativa, si possono mantenere le istanze nello stato `Hibernated` per arrestarle senza eliminare i contenuti della memoria (RAM). Quando un'istanza viene ibernata, al sistema operativo viene segnalato di salvare i contenuti della RAM nel volume root Amazon EBS. Quando l'istanza viene riavviata, il volume root viene ripristinato allo stato precedente e i contenuti RAM vengono ricaricati. Mentre le istanze sono in ibernazione, si paga solo per i volumi EBS, inclusa l'archiviazione dei contenuti RAM e gli indirizzi IP elastici associati alle istanze.  
Inoltre, è possibile mantenere delle istanze nello stato `Running` all'interno del warm pool, ma è vivamente sconsigliato, per evitare di incorrere in spese inutili. Quando le istanze vengono interrotte o ibernate, si risparmia il costo delle istanze stesse. Paghi per le istanze solo quando sono in esecuzione.

**Hook del ciclo di vita**  
Gli [hook del ciclo di vita](warm-pool-instance-lifecycle.md) consentono di mettere le istanze in uno stato di attesa in modo da poter eseguire operazioni personalizzate sulle istanze. Le operazioni personalizzate vengono eseguite all’avvio o prima della fine delle istanze.  
In una configurazione di pool caldo, gli hook del ciclo di vita ritardano l'arresto o l'ibernazione delle istanze ed evitano che vengano messe in esecuzione durante un evento di aumento orizzontale fino a quando non hanno terminato l'inizializzazione. Se si aggiunge un warm pool al gruppo con scalabilità automatica senza un hook del ciclo di vita, le istanze che richiedono molto tempo per terminare l'inizializzazione potrebbero essere arrestate o ibernate e quindi messe in esecuzione durante un evento di aumento orizzontale prima che siano pronte.

**Policy per il riutilizzo delle istanze**  
Per impostazione predefinita, Dimensionamento automatico Amazon EC2 termina le istanze quando il gruppo con scalabilità automatica si dimensiona. Quindi, avvia nuove istanze nel warm pool per sostituire quelle che sono state terminate.   
Se invece si desidera restituire le istanze al warm pool, è possibile specificare una policy per il riutilizzo delle istanze. Ciò consente di riutilizzare le istanze già configurate per servire il traffico delle applicazioni. Per assicurarsi che sul warm pool non venga effettuato l'over-provisioning, Dimensionamento automatico Amazon EC2 può terminare le istanze nel warm pool per ridurne le dimensioni quando sono più grandi del necessario in base alle impostazioni. Quando vengono terminate le istanze nel warm pool, si utilizza la [policy di terminazione di default](ec2-auto-scaling-termination-policies.md#default-termination-policy) per scegliere quali istanze terminare per prime.   
Se si desidera ibernare le istanze durante la riduzione orizzontale e ci sono istanze esistenti nel gruppo con scalabilità automatica, devono soddisfare i requisiti, ad esempio l'ibernazione. In caso contrario, quando le istanze ritornano nel warm pool, vengono nuovamente arrestate e non ibernate.
Attualmente, si può specificare una policy per il riutilizzo delle istanze solo utilizzando la AWS CLI o un SDK. Questa funzionalità non è disponibile dalla console.

## Prerequisiti
<a name="warm-pool-prerequisites"></a>

Prima di creare un pool caldo per il gruppo con dimensionamento automatico, decidi come utilizzare gli hook del ciclo di vita per inizializzare nuove istanze con uno stato iniziale appropriato.

Per eseguire azioni personalizzate sulle istanze mentre sono in stato di attesa a causa di un hook del ciclo di vita, hai due opzioni:
+ Per scenari semplici in cui si desidera eseguire comandi sulle istanze all'avvio, è possibile includere uno script di dati utente quando si crea un modello di avvio o una configurazione di avvio per il gruppo con scalabilità automatica. Gli script dei dati utente sono solo normali script o cloud-init direttive di shell che vengono eseguiti all'avvio delle istanze. cloud-init Lo script può controllare anche quando le istanze passano allo stato successivo utilizzando l'ID dell'istanza su cui viene eseguito. Se non lo stai già facendo, aggiorna lo script per recuperare l'ID istanza dai metadati dell'istanza. Per ulteriori informazioni, consulta [Access Instance metadata](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instancedata-data-retrieval.html) nella *Amazon EC2* User Guide.
**Suggerimento**  
Per eseguire script di dati utente al riavvio di un'istanza, i dati utente devono essere nel formato multiparte MIME e specificare quanto segue nella sezione `#cloud-config` dei dati utente:  

  ```
  #cloud-config
  cloud_final_modules:
   - [scripts-user, always]
  ```
+ Per scenari avanzati in cui è necessario un servizio, ad esempio per eseguire operazioni mentre le istanze entrano o escono dal pool caldo, è possibile creare un lifecycle hook per il gruppo Auto Scaling e configurare il servizio di destinazione per eseguire azioni personalizzate basate sulle notifiche del ciclo di vita. AWS Lambda Per ulteriori informazioni, consulta [Destinazioni di notifica supportate](warm-pool-instance-lifecycle.md#warm-pools-supported-notification-targets).

**Preparazione delle istanze all'ibernazione**  
*Per preparare le istanze di Auto Scaling all'utilizzo dello stato del `Hibernated` pool, crea un nuovo modello di avvio o una configurazione di avvio configurata correttamente per supportare l'ibernazione dell'istanza, come descritto nell'[argomento Prerequisiti di ibernazione](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/hibernating-prerequisites.html) nella Guida per l'utente di Amazon EC2.* Quindi, associa il nuovo modello di avvio o la configurazione di avvio al gruppo con scalabilità automatica e avvia un aggiornamento delle istanze per sostituire quelle associate a un modello di avvio o alla configurazione di avvio precedenti. Per ulteriori informazioni, consulta [Usa un aggiornamento dell'istanza per aggiornare le istanze in un gruppo di Auto Scaling](asg-instance-refresh.md).

## Aggiornamento di istanze in un pool caldo
<a name="update-warm-pool"></a>

Per aggiornare le istanze in un pool caldo, devi creare un nuovo modello o una nuova configurazione di avvio e associarla al gruppo con dimensionamento automatico. Tutte le nuove istanze vengono avviate utilizzando la nuova AMI e gli altri aggiornamenti specificati nel modello o nella configurazione di avvio, ma le istanze esistenti non sono interessate.

Per forzare l'avvio di istanze del pool caldo sostitutive che utilizzano il nuovo modello o la nuova configurazione di avvio puoi avviare un aggiornamento in sequenza del tuo gruppo. Un aggiornamento delle istanze sostituisce le istanze `InService` per prime. Quindi sostituisce le istanze nel warm pool. Per ulteriori informazioni, consulta [Usa un aggiornamento dell'istanza per aggiornare le istanze in un gruppo di Auto Scaling](asg-instance-refresh.md).

## Risorse correlate
<a name="warm-pools-related-resources"></a>

Puoi visitare il nostro [GitHubrepository](https://github.com/aws-samples/amazon-ec2-auto-scaling-group-examples) per esempi di lifecycle hook per piscine calde. 

## Limitazioni
<a name="warm-pools-limitations"></a>
+ Limitazioni del pool caldo per un gruppo di Auto Scaling con tipi di istanze misti:
  + I pool caldi non sono supportati con gruppi di istanze miste ponderati. Se il gruppo Auto Scaling utilizza la ponderazione delle istanze, non è possibile aggiungere un pool caldo.
  + I pool caldi non supportano le istanze Spot all'interno di gruppi di istanze miste. La politica relativa alle istanze miste deve essere configurata per le istanze On-Demand solo quando si utilizzano pool caldi.
  + Quando si utilizzano pool caldi con gruppi di istanze miste in stato di ibernazione, è necessario eseguire la configurazione `HibernationOptions` nel modello di avvio. 
+ Dimensionamento automatico Amazon EC2 può inserire un'istanza in stato `Stopped`o `Hibernated`solo se ha un volume Amazon EBS come root. Le istanze che utilizzano archivi di istanze per il dispositivo root non possono essere arrestate o ibernate.
+ *Amazon EC2 Auto Scaling può mettere un'istanza `Hibernated` in uno stato solo se soddisfa tutti i requisiti elencati nell'argomento Prerequisiti di ibernazione [nella Guida per l'](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/hibernating-prerequisites.html)utente di Amazon EC2.* 
+ Se il warm pool è esaurito quando c'è un evento di aumento orizzontale, le istanze verranno avviate direttamente nel gruppo con scalabilità automatica (*avvio a freddo*). Gli avvii a freddo possono verificarsi anche nel caso di inaccessibilità di una zona di disponibilità.
+ Se un'istanza all'interno del pool caldo riscontra un problema durante il processo di avvio che le impedisce di raggiungere lo `InService` stato, l'istanza verrà considerata un avvio non riuscito e terminata. Ciò vale indipendentemente dalla causa sottostante, ad esempio un errore di capacità insufficiente o qualsiasi altro fattore.
+ Se provi a utilizzare un warm pool con un gruppo di nodi gestiti Amazon Elastic Kubernetes Service (Amazon EKS), le istanze ancora in fase di inizializzazione potrebbero essere registrate con il cluster Amazon EKS. Di conseguenza, il cluster potrebbe pianificare i lavori su un'istanza che si sta preparando per essere arrestata o ibernata.
+ Allo stesso modo, se provi a utilizzare un warm pool con un cluster Amazon ECS, le istanze potrebbero registrarsi con il cluster prima che completino l'inizializzazione. Per risolvere il problema, devi configurare un modello di avvio o una configurazione di avvio che includa una variabile di configurazione di agente speciale nei dati utente. Per ulteriori informazioni, consulta la sezione [Utilizzo di un warm pool per un gruppo con scalabilità automatica](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/asg-capacity-providers.html#using-warm-pool) nella *Guida per gli sviluppatori di Amazon Elastic Container Service*.

# Usa i lifecycle hook con una piscina calda nel gruppo Auto Scaling
<a name="warm-pool-instance-lifecycle"></a>

Le istanze di un warm pool mantengono il proprio ciclo di vita indipendente per facilitare la creazione delle operazioni personalizzate appropriate per ogni transizione. Questo ciclo di vita è progettato per aiutarti a richiamare operazioni in un servizio di destinazione (ad esempio, una funzione Lambda) mentre un'istanza viene inizializzata e prima che venga messa in esecuzione. 

**Nota**  
Le operazioni API utilizzate per aggiungere e gestire gli hook del ciclo di vita e le operazioni complete del ciclo di vita non vengono modificate. Viene modificato solo il ciclo di vita dell'istanza. 

Per ulteriori informazioni sull'aggiunta di un hook del ciclo di vita, consulta [Aggiungi gli hook del ciclo di vita al tuo gruppo Auto Scaling](adding-lifecycle-hooks.md). Per ulteriori informazioni sul completamento di un'operazione del ciclo di vita, consulta [Completa un'azione del ciclo di vita in un gruppo Auto Scaling](completing-lifecycle-hooks.md).

Per le istanze che entrano nel warm pool, potrebbe essere necessario un hook del ciclo di vita per uno dei seguenti motivi:
+ È consigliabile avviare istanze EC2 da un'AMI che richiede molto tempo per terminare l'inizializzazione.
+ È consigliabile eseguire script di dati utente per avviare le istanze EC2.

Per le istanze che escono dal warm pool, potrebbe essere necessario un hook del ciclo di vita per uno dei seguenti motivi:
+ Puoi utilizzare un periodo di tempo aggiuntivo per preparare le istanze EC2 per l'uso. Ad esempio, puoi disporre di servizi da eseguire al riavvio di un'istanza prima che l'applicazione funzioni correttamente.
+ È consigliabile compilare precedentemente i dati della cache, in modo che un nuovo server non venga avviato con una cache vuota.
+ È consigliabile registrare le nuove istanze come istanze gestite con il servizio di gestione della configurazione.

## Transizioni dello stato del ciclo di vita delle istanze in un warm pool
<a name="lifecycle-state-transitions"></a>

Un'istanza Auto Scaling può passare attraverso molti stati nel corso del ciclo di vita.

Il diagramma seguente mostra la transizione tra gli stati Auto Scaling quando utilizzi un warm pool:

![\[Le transizioni dello stato del ciclo di vita delle istanze in un warm pool.\]](http://docs.aws.amazon.com/it_it/autoscaling/ec2/userguide/images/warm-pools-lifecycle-diagram.png)


¹ Questo stato varia in base all'impostazione dello stato del warm pool. Se lo stato del pool è impostato su `Running`, in tal caso è `Warmed:Running`. Se lo stato del pool è impostato su `Hibernated`, in tal caso è `Warmed:Hibernated`.

Quando aggiungi gli hook del ciclo di vita, considera quanto segue:
+ Quando un hook del ciclo di vita è configurato per l'azione `autoscaling:EC2_INSTANCE_LAUNCHING` del ciclo di vita, un'istanza appena avviata viene sospesa per eseguire un'azione personalizzata quando raggiunge lo stato `Warmed:Pending:Wait`, quindi nuovamente quando viene riavviata e raggiunge lo stato `Pending:Wait`.
+ Quando un hook del ciclo di vita è configurato per l'opzione `EC2_INSTANCE_TERMINATING`, un'istanza in fase di terminazione viene sospesa per eseguire un'azione personalizzata quando raggiunge lo stato `Terminating:Wait`. Tuttavia, se specifichi una policy di riutilizzo delle istanze per restituire le istanze al warm pool su scala interna anziché terminarle, un'istanza che sta tornando al warm pool viene sospesa per eseguire un'azione personalizzata nello stato `Warmed:Pending:Wait` per l'operazione `EC2_INSTANCE_TERMINATING` del ciclo di vita.
+ Se la domanda sulla tua applicazione esaurisce il warm pool, Dimensionamento automatico Amazon EC2 può avviare le istanze direttamente nel gruppo con scalabilità automatica finché il gruppo non raggiunge la sua capacità massima. Se le istanze vengono avviate direttamente nel gruppo, vengono sospese solo per eseguire un'operazione personalizzata nello stato `Pending:Wait`.
+ Per controllare per quanto tempo un'istanza rimane in uno stato di attesa prima di passare allo stato successivo, configura l'azione personalizzata per utilizzare il comando **complete-lifecycle-action**. Con gli hook del ciclo di vita, le istanze rimangono in stato di attesa finché non si notifica a Dimensionamento automatico Amazon EC2 che l'operazione del ciclo di vita specificata è completa o fino alla fine del periodo di timeout (un'ora per impostazione predefinita). 

Di seguito viene riepilogato il flusso per un evento di aumento orizzontale.

![\[Un diagramma a flusso di un evento di aumento orizzontale.\]](http://docs.aws.amazon.com/it_it/autoscaling/ec2/userguide/images/warm-pools-scale-out-event-diagram.png)


Quando le istanze raggiungono uno stato di attesa, Dimensionamento automatico Amazon EC2 invia una notifica. Esempi di queste notifiche sono disponibili nella EventBridge sezione di questa guida. Per ulteriori informazioni, consulta [Esempi di eventi e modelli relativi al pool caldo](warm-pools-eventbridge-events.md).

## Destinazioni di notifica supportate
<a name="warm-pools-supported-notification-targets"></a>

Dimensionamento automatico Amazon EC2 fornisce supporto per la definizione di una delle seguenti destinazioni di notifica per le notifiche del ciclo di vita:
+ EventBridge regole
+ Argomenti di Amazon SNS 
+ Code Amazon SQS
+ AWS Lambda funzioni

**Importante**  
Se nel modello di avvio o nella configurazione di avvio è presente uno script di dati utente (cloud-init) che configura le istanze all'avvio, non è necessario ricevere notifiche per eseguire azioni personalizzate sulle istanze in fase di avvio o riavvio.

Le sezioni seguenti contengono collegamenti alla documentazione che descrive come configurare le destinazioni di notifica:

**EventBridge regole** — Per eseguire il codice quando Amazon EC2 Auto Scaling mette un'istanza in uno stato di attesa, puoi EventBridge creare una regola e specificare una funzione Lambda come destinazione. Per richiamare diverse funzioni Lambda basate su notifiche del ciclo di vita diverse, puoi creare più regole e associare ciascuna regola a uno specifico modello di eventi e a una funzione Lambda. Per ulteriori informazioni, consulta [Crea EventBridge regole per eventi in piscina riscaldata](warm-pool-events-eventbridge-rules.md).

**Argomenti di Amazon SNS**: per ricevere una notifica quando un'istanza viene messa in stato di attesa, devi creare un argomento Amazon SNS e quindi configurare il filtro dei messaggi di Amazon SNS per distribuire le notifiche del ciclo di vita in modo diverso in base a un attributo del messaggio. Per ulteriori informazioni, consulta [Ricezione di notifiche tramite Amazon SNS](prepare-for-lifecycle-notifications.md#sns-notifications).

**Code Amazon SQS**: per configurare un punto di consegna per le notifiche del ciclo di vita in cui un consumatore interessato possa raccoglierle ed elaborarle, puoi creare una coda Amazon SQS e un consumatore di coda che elabori i messaggi dalla coda SQS. Se desideri che la coda di tipo consumer elabori le notifiche del ciclo di vita in modo diverso in base a un attributo del messaggio, devi impostarla in modo che analizzi e agisca sul messaggio quando un attributo specifico corrisponde al valore desiderato. Per ulteriori informazioni, consulta [Ricezione di notifiche tramite Amazon SQS](prepare-for-lifecycle-notifications.md#sqs-notifications).

**AWS Lambda funzioni**: per eseguire codice personalizzato quando Amazon EC2 Auto Scaling mette un'istanza in uno stato di attesa, puoi specificare una funzione Lambda come destinazione della notifica. La funzione Lambda viene richiamata con i dati di notifica del ciclo di vita e consente di eseguire azioni personalizzate come la configurazione dell'istanza, la configurazione dell'applicazione o l'integrazione con altri servizi. AWS È necessario configurare la politica basata sulle risorse della funzione Lambda per consentire al ruolo collegato al servizio Auto Scaling di richiamare la funzione. Per ulteriori informazioni, consulta [Indirizza le notifiche direttamente a AWS Lambda](prepare-for-lifecycle-notifications.md#lambda-notification).

# Creazione di un pool caldo per un gruppo con dimensionamento automatico
<a name="create-warm-pool"></a>

In questo argomento viene descritto come creare un pool caldo per il gruppo con dimensionamento automatico. 

**Importante**  
Prima di continuare, completa i [prerequisiti](ec2-auto-scaling-warm-pools.md#warm-pool-prerequisites) per la creazione di un pool caldo e conferma di aver creato un hook del ciclo di vita per il tuo gruppo con dimensionamento automatico.

## Creazione di un warm pool
<a name="create-a-warm-pool"></a>

Per creare un pool caldo per il gruppo con dimensionamento automatico, utilizza la procedura seguente.

**Creazione di un warm pool (console)**

1. Apri la console Amazon EC2 all'indirizzo [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)e scegli **Auto Scaling** Groups dal pannello di navigazione.

1. Seleziona la casella di controllo accanto a un gruppo esistente.

   Si aprirà un riquadro diviso nella parte inferiore della pagina. 

1. Seleziona la scheda**Instance management (Gestione delle istanze)**. 

1. In **Warm pool (warm pool)**, scegli **Create warm pool (Crea warm pool)**. 

1. Per configurare un warm pool, procedi come indicato di seguito:

   1. In **Warm pool instance state (Stato dell'istanza del warm pool)**, scegli a quale stato desideri passare le istanze quando entrano nel warm pool. Il valore predefinito è `Stopped`. 

   1. In **Minimum warm pool size (Dimensione minima del warm pool)**, inserisci il numero minimo di istanze da mantenere nel pool.

   1. Per **Riutilizzo delle istanze**, seleziona la casella di controllo **Riutilizza su scala in** per consentire alle istanze del gruppo Auto Scaling di tornare al pool caldo su scala in. 

   1. Per le **dimensioni della piscina Warm**, scegli una delle opzioni disponibili: 
      + **Specificazione predefinita**: la dimensione della piscina calda è determinata dalla differenza tra la capacità massima e quella desiderata del gruppo Auto Scaling. Questa opzione semplifica la gestione della piscina calda. Dopo aver creato la piscina calda, le sue dimensioni possono essere facilmente aggiornate semplicemente regolando la capacità massima del gruppo.
      + **Specifiche personalizzate**: la dimensione della piscina calda è determinata dalla differenza tra un valore personalizzato e la capacità desiderata del gruppo Auto Scaling. Questa opzione offre la flessibilità necessaria per gestire le dimensioni della piscina calda indipendentemente dalla capacità massima del gruppo. 

1. Visualizza la sezione **Dimensioni stimate della piscina calda in base alle impostazioni correnti** per confermare in che modo le specifiche predefinite o personalizzate si applicano alle dimensioni della piscina calda. Ricorda che la dimensione della piscina calda dipende dalla capacità desiderata del gruppo Auto Scaling, che cambierà se il gruppo si ridimensiona.

1. Scegli **Create** (Crea). 

## Selezione del tipo di istanza con gruppi di istanze misti
<a name="warm-pool-mixed-instance-types"></a>

Auto Scaling dà la priorità ai tipi di istanze già presenti nel pool caldo durante gli eventi di scaling quando il gruppo è configurato con una politica di istanze miste. Comportamento di avvio:

1. Auto Scaling tenta di avviare istanze utilizzando i tipi di istanza disponibili nel pool caldo.

1. Se l'avvio a caldo fallisce, Auto Scaling tenta l'avvio a freddo utilizzando tutti i tipi di istanze rimanenti nella politica sulle istanze miste.

**Example**  
**Esempio**  
Se configuri il gruppo Auto Scaling con 10 tipi di istanze e il pool caldo contiene 6 di questi tipi di istanze. Durante lo scale-out, Auto Scaling prova innanzitutto i 6 tipi di istanze dal pool caldo. In caso di esito negativo, Auto Scaling prova tutti i tipi di istanza configurati tramite avvio a freddo.

In questo modo, quando possibile, si ottengono vantaggi in termini di prestazioni del pool caldo, pur mantenendo la flessibilità della configurazione completa delle istanze miste.

## Eliminazione di un warm pool
<a name="delete-warm-pool"></a>

Quando il warm pool non ti serve più, utilizza la seguente procedura per eliminarlo.

**Come eliminare il warm pool (console)**

1. Apri la console Amazon EC2 all'indirizzo [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)e scegli **Auto Scaling** Groups dal pannello di navigazione.

1. Seleziona la casella di controllo accanto a un gruppo esistente.

   Si aprirà un riquadro diviso nella parte inferiore della pagina. 

1. Seleziona la scheda**Instance management (Gestione delle istanze)**. 

1. Per **Warm pool** (Pool caldo), scegli **Actions** (Operazioni, quindi **Delete** (Elimina).

1. Quando viene richiesta la conferma, seleziona **Elimina**. 

# Visualizzare lo stato del controllo dell'integrità e il motivo degli errori relativi ad esso.
<a name="warm-pools-health-checks-monitor-view-status"></a>

I controlli dell'integrità permettono a Dimensionamento automatico Amazon EC2 di determinare quando un'istanza non è integra e deve essere terminata. Per le istanze di warm pool mantenute nello stato `Stopped`, si avvale della conoscenza che Amazon EBS ha di un'stanza `Stopped`, per identificare le istanze non integre. Lo fa chiamando il metodo API `DescribeVolumeStatus` per determinare lo stato del volume EBS collegato all'istanza. Per le istanze di warm pool mantenute nello stato `Running`, per determinare l'integrità dell'istanza si basa sui controlli di stato EC2. Sebbene non vi sia alcun periodo di tolleranza del controllo dell'integrità per le istanze del warm pool, Dimensionamento automatico Amazon EC2 non avvia il controllo fino al termine dell'hook del ciclo di vita. 

Quando un'istanza viene rilevata non integra, Dimensionamento automatico Amazon EC2 elimina automaticamente l'istanza non integra e ne crea una nuova per sostituirla. Le istanze sono di solito terminate entro pochi minuti dopo il fallimento del controllo dell'integrità. Per ulteriori informazioni, consulta [Come visualizzare il motivo dei fallimenti dei controlli dell'integrità](replace-unhealthy-instance.md).

Sono supportati anche controlli di integrità personalizzati. Ciò può essere utile se disponi di un tuo sistema di controllo dell'integrità in grado di rilevare l'integrità di un'istanza e inviare queste informazioni a Dimensionamento automatico Amazon EC2. Per ulteriori informazioni, consulta [Imposta un controllo dello stato personalizzato per il tuo gruppo Auto Scaling](set-up-a-custom-health-check.md).

Nella console Dimensionamento automatico Amazon EC2 è possibile visualizzare lo stato (integro o non integro) delle istanze del warm pool. Puoi anche visualizzare il loro stato di salute utilizzando AWS CLI o uno dei. SDKs 

**Come visualizzare lo stato delle istanze del pool attivo (console)**

1. Apri la console Amazon EC2 all'indirizzo [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)e scegli **Auto Scaling** Groups dal pannello di navigazione.

1. Seleziona la casella di controllo accanto al gruppo con scalabilità automatica. 

   Si aprirà un riquadro diviso nella parte inferiore della pagina **Gruppi Auto Scaling**. 

1. Nella scheda **Instance management (Gestione istanze)** in **Warm pool instances (Istanze warm pool)**, la colonna **Lifecycle (Ciclo di vita)** contiene lo stato delle istanze.

   La colonna **Health status (Stato di integrità)** mostra la valutazione che Dimensionamento automatico Amazon EC2 ha fatto dello stato dell'istanza.
**Nota**  
Le nuove istanze inizialmente sono integre. Fino al termine dell'hook del ciclo di vita, l'integrità di un'istanza non viene verificata.

**Come visualizzare il motivo dei fallimenti dei controlli dell'integrità (console)**

1. Apri la console Amazon EC2 all'indirizzo [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)e scegli **Auto Scaling** Groups dal pannello di navigazione.

1. Seleziona la casella di controllo accanto al gruppo con scalabilità automatica. 

   Si aprirà un riquadro diviso nella parte inferiore della pagina **Gruppi Auto Scaling**. 

1. Nella scheda **Activity (Attività)** in **Activity history (Cronologia attività)**, la colonna **Status (Stato)** indica se il gruppo con scalabilità automatica ha avviato o terminato correttamente le istanze.

   Se ha terminato eventuali istanze non integre, il campo **Cause (Causa)** mostra la data e l'ora della terminazione e il motivo dell'errore di controllo dell'integrità. Ad esempio, "At 2021-04-01T21:48:35Z an instance was taken out of service in response to EBS volume health check failure" (Al 2021-04-01T21:48:35Z un'istanza è stata messa fuori servizio in risposta al fallimento del controllo dell'integrità del volume EBS). 

**Come visualizzare lo stato delle istanze del warm pool (AWS CLI)**  
Visualizzate la piscina calda per un gruppo di Auto Scaling utilizzando il seguente [describe-warm-pool](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/describe-warm-pool.html)comando.

```
aws autoscaling describe-warm-pool --auto-scaling-group-name my-asg
```

Output di esempio:

```
{
    "WarmPoolConfiguration": {
        "MinSize": 0,
        "PoolState": "Stopped"
    },
    "Instances": [
        {
            "InstanceId": "i-0b5e5e7521cfaa46c",
            "InstanceType": "t2.micro",
            "AvailabilityZone": "us-west-2a",
            "LifecycleState": "Warmed:Stopped",
            "HealthStatus": "Healthy",
            "LaunchTemplate": {
                "LaunchTemplateId": "lt-08c4cd42f320d5dcd",
                "LaunchTemplateName": "my-template-for-auto-scaling",
                "Version": "1"
            }
        },
        {
            "InstanceId": "i-0e21af9dcfb7aa6bf",
            "InstanceType": "t2.micro",
            "AvailabilityZone": "us-west-2a",
            "LifecycleState": "Warmed:Stopped",
            "HealthStatus": "Healthy",
            "LaunchTemplate": {
                "LaunchTemplateId": "lt-08c4cd42f320d5dcd",
                "LaunchTemplateName": "my-template-for-auto-scaling",
                "Version": "1"
            }
        }
    ]
}
```

**Come visualizzare il motivo dei fallimenti dei controlli dell'integrità (AWS CLI)**  
Utilizza il seguente comando [describe-scaling-activities](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/describe-scaling-activities.html). 

```
aws autoscaling describe-scaling-activities --auto-scaling-group-name my-asg
```

Di seguito è riportata una risposta di esempio, dove `Description` indica che il gruppo con scalabilità automatica ha terminato un'istanza e `Cause` indica il motivo del fallimento del controllo dell'integrità. 

Le attività di dimensionamento vengono ordinate in base all'ora di inizio. Le attività ancora in corso vengono descritte per prime. 

```
{
  "Activities": [
    {
      "ActivityId": "4c65e23d-a35a-4e7d-b6e4-2eaa8753dc12",
      "AutoScalingGroupName": "my-asg",
      "Description": "Terminating EC2 instance: i-04925c838b6438f14",
      "Cause": "At 2021-04-01T21:48:35Z an instance was taken out of service in response to EBS volume health check failure.",
      "StartTime": "2021-04-01T21:48:35.859Z",
      "EndTime": "2021-04-01T21:49:18Z",
      "StatusCode": "Successful",
      "Progress": 100,
      "Details": "{\"Subnet ID\":\"subnet-5ea0c127\",\"Availability Zone\":\"us-west-2a\"...}",
      "AutoScalingGroupARN": "arn:aws:autoscaling:us-west-2:123456789012:autoScalingGroup:283179a2-f3ce-423d-93f6-66bb518232f7:autoScalingGroupName/my-asg"
    },
...
  ]
}
```

# Esempi di creazione e gestione di piscine calde con AWS CLI
<a name="examples-warm-pools-aws-cli"></a>

È possibile creare e gestire piscine calde utilizzando Console di gestione AWS, AWS Command Line Interface (AWS CLI) o SDKs.

Negli esempi seguenti viene illustrato come creare e gestire warm pool utilizzando la AWS CLI.

**Topics**
+ [Esempio 1: mantenimento delle istanze nello stato `Stopped`](#warm-pool-configuration-ex1)
+ [Esempio 2: mantenimento delle istanze nello stato `Running`](#warm-pool-configuration-ex2)
+ [Esempio 3: mantenimento delle istanze nello stato `Hibernated`](#warm-pool-configuration-ex3)
+ [Esempio 4: restituzione delle istanze al warm pool durante la riduzione orizzontale](#warm-pool-configuration-ex4)
+ [Esempio 5: specificazione del numero minimo di istanze nel warm pool](#warm-pool-configuration-ex5)
+ [Esempio 6: definire la dimensione della piscina calda utilizzando una specifica personalizzata](#warm-pool-configuration-ex6)
+ [Esempio 7: definizione di una dimensione assoluta del warm pool](#warm-pool-configuration-ex7)
+ [Esempio 8: eliminazione di un warm pool](#delete-warm-pool-cli)

## Esempio 1: mantenimento delle istanze nello stato `Stopped`
<a name="warm-pool-configuration-ex1"></a>

L'[put-warm-pool](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/put-warm-pool.html)esempio seguente crea un pool caldo che mantiene le istanze in uno `Stopped` stato.

```
aws autoscaling put-warm-pool --auto-scaling-group-name my-asg /
  --pool-state Stopped
```

## Esempio 2: mantenimento delle istanze nello stato `Running`
<a name="warm-pool-configuration-ex2"></a>

L'[put-warm-pool](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/put-warm-pool.html)esempio seguente crea un pool caldo che mantiene le istanze in uno `Running` stato anziché in uno stato. `Stopped` 

```
aws autoscaling put-warm-pool --auto-scaling-group-name my-asg /
  --pool-state Running
```

## Esempio 3: mantenimento delle istanze nello stato `Hibernated`
<a name="warm-pool-configuration-ex3"></a>

L'[put-warm-pool](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/put-warm-pool.html)esempio seguente crea un pool caldo che mantiene le istanze in uno `Hibernated` stato anziché in uno stato. `Stopped` Ciò consente di arrestare le istanze senza eliminare i contenuti della memoria (RAM).

```
aws autoscaling put-warm-pool --auto-scaling-group-name my-asg /
  --pool-state Hibernated
```

## Esempio 4: restituzione delle istanze al warm pool durante la riduzione orizzontale
<a name="warm-pool-configuration-ex4"></a>

L'[put-warm-pool](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/put-warm-pool.html)esempio seguente crea un pool caldo che mantiene le istanze in uno `Stopped` stato e include l'`--instance-reuse-policy`opzione. Il valore della policy per il riutilizzo delle istanze `'{"ReuseOnScaleIn": true}'`indica a Dimensionamento automatico Amazon EC2 di restituire le istanze al warm pool quando il gruppo con scalabilità automatica si dimensiona.

```
aws autoscaling put-warm-pool --auto-scaling-group-name my-asg /
  --pool-state Stopped --instance-reuse-policy '{"ReuseOnScaleIn": true}'
```

## Esempio 5: specificazione del numero minimo di istanze nel warm pool
<a name="warm-pool-configuration-ex5"></a>

L'[put-warm-pool](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/put-warm-pool.html)esempio seguente crea un pool caldo che mantiene un minimo di 4 istanze, in modo che siano disponibili almeno 4 istanze per gestire i picchi di traffico. 

```
aws autoscaling put-warm-pool --auto-scaling-group-name my-asg /
  --pool-state Stopped --min-size 4
```

## Esempio 6: definire la dimensione della piscina calda utilizzando una specifica personalizzata
<a name="warm-pool-configuration-ex6"></a>

Per impostazione predefinita, Amazon EC2 Auto Scaling gestisce la dimensione del pool caldo come differenza tra la capacità massima e quella desiderata del gruppo Auto Scaling. Tuttavia, puoi gestire le dimensioni della piscina calda indipendentemente dalla capacità massima del gruppo utilizzando l'opzione. `--max-group-prepared-capacity`

L'[put-warm-pool](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/put-warm-pool.html)esempio seguente crea un pool caldo e imposta il numero massimo di istanze che possono esistere contemporaneamente sia nel pool caldo che nel gruppo Auto Scaling. Se il gruppo ha una capacità desiderata di 800, il pool caldo avrà inizialmente una dimensione di 100 quando verrà inizializzato dopo l'esecuzione di questo comando. 

```
aws autoscaling put-warm-pool --auto-scaling-group-name my-asg /
  --pool-state Stopped --max-group-prepared-capacity 900
```

Per mantenere un numero minimo di istanze nel warm pool, includi l'opzione `--min-size` con il comando, come segue. 

```
aws autoscaling put-warm-pool --auto-scaling-group-name my-asg /
  --pool-state Stopped --max-group-prepared-capacity 900 --min-size 25
```

## Esempio 7: definizione di una dimensione assoluta del warm pool
<a name="warm-pool-configuration-ex7"></a>

Se imposti i valori per le opzioni `--max-group-prepared-capacity` e `--min-size` allo stesso valore, il warm pool avrà una dimensione assoluta. L'[put-warm-pool](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/put-warm-pool.html)esempio seguente crea un pool caldo che mantiene una dimensione costante del pool caldo di 10 istanze.

```
aws autoscaling put-warm-pool --auto-scaling-group-name my-asg /
  --pool-state Stopped --min-size 10 --max-group-prepared-capacity 10
```

## Esempio 8: eliminazione di un warm pool
<a name="delete-warm-pool-cli"></a>

Utilizzate il seguente [delete-warm-pool](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/delete-warm-pool.html)comando per eliminare una piscina calda. 

```
aws autoscaling delete-warm-pool --auto-scaling-group-name my-asg
```

Se ci sono istanze nella piscina calda o se sono in corso attività di ridimensionamento, usa il [delete-warm-pool](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/delete-warm-pool.html)comando con l'`--force-delete`opzione. Questa opzione termina anche le istanze Amazon EC2 e le eventuali operazioni del ciclo di vita in sospeso.

```
aws autoscaling delete-warm-pool --auto-scaling-group-name my-asg --force-delete
```