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 i lifecycle hook con una piscina calda nel gruppo Auto Scaling
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 API operazioni utilizzate per aggiungere e gestire i lifecycle hook e completare le azioni 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. 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.
Per le istanze che entrano nel warm pool, potrebbe essere necessario un hook del ciclo di vita per uno dei seguenti motivi:
-
Vuoi avviare EC2 istanze da un dispositivo AMI che impiega molto tempo per completare l'inizializzazione.
-
Vuoi 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 impiegare del tempo extra per preparare le EC2 istanze da utilizzare. 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
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:
¹ 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 statoWarmed:Pending:Wait
, quindi nuovamente quando viene riavviata e raggiunge lo statoPending: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 statoTerminating: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 statoWarmed:Pending:Wait
per l'operazioneEC2_INSTANCE_TERMINATING
del ciclo di vita. -
Se la richiesta dell'applicazione esaurisce il pool caldo, Amazon Auto EC2 Scaling può avviare le istanze direttamente nel gruppo Auto Scaling purché il gruppo non abbia ancora raggiunto la 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 i lifecycle hook, le istanze rimangono in uno stato di attesa finché non comunichi ad Amazon Auto Scaling EC2 che l'azione specificata del ciclo di vita è stata completata o fino al termine del periodo di timeout (un'ora per impostazione predefinita).
Di seguito viene riepilogato il flusso per un evento di aumento orizzontale.
Quando le istanze raggiungono uno stato di attesa, Amazon EC2 Auto Scaling 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.
Destinazioni di notifica supportate
Amazon EC2 Auto Scaling fornisce supporto per la definizione di uno qualsiasi dei seguenti elementi come obiettivi di notifica per le notifiche del ciclo di vita:
-
EventBridge regole
-
SNSArgomenti Amazon
-
SQSCode Amazon
Importante
Ricorda che, se disponi di uno script di dati utente (cloud-init) nel modello di avvio o nella configurazione di avvio che configura le istanze al momento dell'avvio, non è necessario ricevere una notifica per eseguire operazioni 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 creare una EventBridge 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.
SNSArgomenti Amazon: per ricevere una notifica quando un'istanza viene messa in uno stato di attesa, devi creare un SNS argomento Amazon e quindi configurare il filtro dei SNS messaggi Amazon 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.
SQSCode Amazon: per configurare un punto di consegna per le notifiche relative al ciclo di vita in cui un consumatore interessato possa raccoglierle ed elaborarle, puoi creare una SQS coda Amazon e un consumatore in 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.