Recupero dello stato del ciclo di vita di destinazione tramite i metadati dell'istanza - Dimensionamento automatico Amazon EC2

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

Recupero dello stato del ciclo di vita di destinazione tramite i metadati dell'istanza

Ogni istanza Auto Scaling avviata passa attraverso diversi stati del ciclo di vita. Per richiamare operazioni personalizzate dall’interno di un’istanza che esegue operazioni su specifici passaggi allo stato del ciclo di vita specifico, devi recuperare lo stato del ciclo di vita di destinazione tramite i metadati dell’istanza.

Ad esempio, potrebbe essere necessario un meccanismo per rilevare la terminazione dell'istanza dall'interno dell'istanza per eseguire del codice sull'istanza prima che venga terminata. Puoi farlo scrivendo il codice che esamina lo stato del ciclo di vita di un'istanza direttamente dall'istanza. Se desidero continuare, puoi quindi aggiungere un hook del ciclo di vita al gruppo con dimensionamento automatico per mantenere l'istanza in esecuzione fino all'invio del comando complete-lifecycle-action da parte del codice.

Il ciclo di vita dell'istanza Auto Scaling ha due stati stabili primari, InService e Terminated, e due stati stabili secondari, Detached e Standby. Se utilizzi un warm pool, il ciclo di vita ha quattro stati stabili aggiuntivi: Warmed:Hibernated, Warmed:Running, Warmed:Stopped e Warmed:Terminated.

Quando un'istanza si prepara a passare a uno degli stati stabili precedenti, Amazon EC2 Auto Scaling aggiorna il valore dell'elemento di metadati dell'istanza autoscaling/target-lifecycle-state. Per ottenere lo stato del ciclo di vita di destinazione dall'interno dell'istanza, è necessario utilizzare il servizio di metadati di istanza per recuperarlo dai metadati dell'istanza.

Nota

I metadati dell'istanza sono dati relativi a un'istanza Amazon EC2 che le applicazioni possono utilizzare per interrogare l'istanza. Il servizio di metadati di istanza è un componente su istanza utilizzato dal codice locale per accedere ai metadati dell'istanza. Il codice locale può includere script di dati utente o applicazioni in esecuzione sull'istanza.

Il codice locale può accedere ai metadati di istanza da un'istanza in esecuzione utilizzando due metodi alternativi: Instance Metadata Service versione 1 (IMDSv1) o Instance Metadata Service versione 2 (IMDSv2). IMDSv2 utilizza le richieste orientate alla sessione e attenua diversi tipi di vulnerabilità che potrebbero essere utilizzate per tentare di accedere ai metadati dell'istanza. Per dettagli su questi due metodi, consulta Use IMDSv2 nella Amazon EC2 User Guide.

IMDSv2
[ec2-user ~]$ TOKEN=`curl -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600"` \ && curl -H "X-aws-ec2-metadata-token: $TOKEN" -v http://169.254.169.254/latest/meta-data/autoscaling/target-lifecycle-state
IMDSv1
[ec2-user ~]$ curl http://169.254.169.254/latest/meta-data/autoscaling/target-lifecycle-state

Di seguito è riportato un output di esempio.

InService

Lo stato del ciclo di vita di destinazione è lo stato a cui l'istanza sta passando. Lo stato del ciclo di vita corrente è lo stato in cui si trova l'istanza. I due stati possono coincidere quando l'operazione del ciclo di vita viene completata e l'istanza termina la transizione allo stato del ciclo di vita di destinazione. Non è possibile recuperare lo stato del ciclo di vita corrente dell'istanza dai metadati dell'istanza.

Amazon EC2 Auto Scaling ha iniziato a generare lo stato del ciclo di vita di destinazione il 10 marzo 2022. Se l'istanza passa a uno degli stati del ciclo di vita di destinazione dopo tale data, l'elemento dello stato del ciclo di vita di destinazione è presente nei metadati dell'istanza. In caso contrario, non è presente e ricevi un errore HTTP 404.

Per ulteriori informazioni sul recupero dei metadati dell'istanza, consulta Recupera i metadati dell'istanza nella Amazon EC2 User Guide.

Consulta la sezione Tutorial: configurazione dei dati utente per recuperare lo stato del ciclo di vita di destinazione tramite i metadati dell'istanza per un tutorial che mostra come creare un hook del ciclo di vita con un'operazione personalizzata in uno script di dati utente che utilizza lo stato del ciclo di vita di destinazione.

Importante

Per assicurarti di poter richiamare un'azione personalizzata il prima possibile, il codice locale deve interrogare spesso IMDS e riprovare a correggere gli errori.