Sostituisci i volumi root durante l'aggiornamento dell'istanza - Amazon EC2 Auto Scaling

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

Sostituisci i volumi root durante l'aggiornamento dell'istanza

Come funziona

La sostituzione del volume root aggiorna le istanze sostituendo solo il volume EBS principale mantenendo l'istanza in esecuzione. Ciò elimina la necessità di avviare nuove istanze ed evita potenziali limiti di capacità. Questo processo preserva tutte le altre risorse dell'istanza, tra cui:

  • Interfacce di rete e indirizzi IP

  • Volumi EBS non root

  • Volumi e dati dell'archivio di istanze

  • Gruppi di sicurezza e ruoli IAM

Durante la sostituzione del volume root, l'applicazione continua a funzionare sull'istanza esistente. Il volume root originale viene scollegato, viene creato un nuovo volume root dall'AMI specificato e quindi collegato alla stessa istanza. I volumi root originali vengono eliminati automaticamente dopo una corretta sostituzione.

Quando si utilizza la strategia Replace Root Volume, le istanze attraversano i seguenti stati del ciclo di vita:

  1. ReplacingRootVolume- Inizia la sostituzione del volume principale

  2. ReplacingRootVolume:Wait- Attende il completamento del ciclo di vita del hook (se configurato)

  3. ReplacingRootVolume:Proceed- Procede con la sostituzione

  4. RootVolumeReplaced- Sostituzione completata con successo

Una volta completata la sostituzione del volume root, Auto Scaling effettua controlli sullo stato delle istanze aggiornate. Se la sostituzione del volume root fallisce per un'istanza, Auto Scaling contrassegna l'istanza per la terminazione e la sostituisce con una nuova istanza.

Requisiti

  • Il gruppo Auto Scaling deve utilizzare una politica a istanze miste

  • Tutte le sostituzioni nella politica relativa alle istanze miste devono specificare un ImageId

  • AMIs deve contenere un solo volume radice

  • Tutte le istanze devono corrispondere alla configurazione del modello di lancio del gruppo

  • È necessario avviare l'aggiornamento dell'istanza con la configurazione desiderata con una politica per istanze miste contenente le sostituzioni. ImageId

Avvia un aggiornamento dell'istanza con Replace Root Volume

Per avviare l'aggiornamento di un'istanza con Replace Root Volume ()AWS CLI

Utilizzate il start-instance-refreshcomando seguente per avviare l'aggiornamento di un'istanza da. AWS CLI Puoi specificare le preferenze che desideri modificare in un file di configurazione JSON. Quando fai riferimento al file di configurazione, fornisci il percorso e il nome del file come illustrato nell'esempio seguente.

aws autoscaling start-instance-refresh --cli-input-json file://config.json

Contenuto di config.json:

Esempio
{ "AutoScalingGroupName": "my-asg", "Strategy" : "ReplaceRootVolume", "DesiredConfiguration":{ "MixedInstancesPolicy":{ "LaunchTemplate": { "LaunchTemplateSpecification": { "LaunchTemplateId":"my-launch-template", "Version": "1" }, "Overrides": [ { "InstanceType":"c5.large", "ImageId":"ami-1234example" }, { "InstanceType":"m5.large", "ImageId":"ami-2345example" } ] } } }, "Preferences": { "InstanceWarmup": 60, "MinHealthyPercentage": 90, "AutoRollback": true, "ScaleInProtectedInstances": Ignore, "StandbyInstances": Ignore } }

Se le preferenze non vengono fornite, vengono utilizzati i valori predefiniti. Per ulteriori informazioni, consulta Informazioni sui valori predefiniti per l'aggiornamento di un'istanza.

Output di esempio:

{ "InstanceRefreshId": "08b91cf7-8fa6-48af-b6a6-d227f40f1b9b" }

Limitazioni

  • Non puoi avviare un aggiornamento dell'istanza con Replace Root Volume se il gruppo EC2 Auto Scaling o la configurazione desiderata per l'aggiornamento dell'istanza utilizzano $Latest la versione del modello o lanciano. $Default

  • Non puoi avviare un aggiornamento dell'istanza con Replace Root Volume su un gruppo Amazon EC2 Auto Scaling se contiene istanze il cui tipo di istanza non è presente nella politica delle istanze miste.

  • Durante l'aggiornamento di un'istanza con Replace Root Volume, puoi collegare solo istanze con tipi presenti nella politica relativa alle istanze miste della configurazione desiderata.

  • Non puoi avviare un aggiornamento dell'istanza con Replace Root Volume su un gruppo di Auto Scaling EC2 dotato di un pool caldo.

  • Non puoi aggiungere un pool caldo a un gruppo Amazon EC2 Auto Scaling che ha un aggiornamento attivo dell'istanza con Replace Root Volume.

Usa gli hook del ciclo di vita con Replace Root Volume

Le istanze sottoposte a sostituzione del volume root seguono le proprie transizioni del ciclo di vita, consentendoti di richiamare azioni (ad esempio, una funzione Lambda) prima della sostituzione. and/or Per ulteriori informazioni sugli stati del ciclo di vita durante la sostituzione del volume root, consulta. Transizioni dello stato del ciclo di vita per le istanze in fase di sostituzione del volume root

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.

Prima della sostituzione del volume root, un lifecycle hook può essere utile nei seguenti scenari:

  • Si desidera chiudere correttamente l'applicazione prima che il volume root venga sostituito e l'istanza venga riavviata.

  • Volete spostare i dati dal volume principale a un'altra posizione prima che il volume venga sostituito.

Dopo la sostituzione del volume root, un lifecycle hook può essere utile nei seguenti scenari:

  • Vuoi verificare che la tua istanza sia completamente pronta con la nuova AMI prima che inizi a ricevere traffico.

  • Desideri avviare il bootstrap dei dati dell'applicazione che esistevano in precedenza nel volume principale.

Quando aggiungi gli hook del ciclo di vita, considera quanto segue:

  • Quando un lifecycle hook è configurato per l'azione del autoscaling:EC2_INSTANCE_TERMINATING ciclo di vita, un'istanza che sta per essere sostituita dal volume root si ferma per eseguire un'azione personalizzata quando raggiunge lo stato. ReplacingRootVolume:Wait

  • Quando un lifecycle hook è configurato per l'azione del autoscaling:EC2_INSTANCE_LAUNCHING ciclo di vita, un'istanza a cui è stato appena sostituito il volume root si interrompe per eseguire un'azione personalizzata quando raggiunge lo stato. Pending:Wait

Quando le istanze raggiungono uno stato di attesa, Dimensionamento automatico Amazon EC2 invia una notifica. Le notifiche Hook del ciclo di vita di Auto Scaling contengono un Action campo con un valore che indica che l'istanza è ReplaceRootVolume in fase di sostituzione del volume root.

Esempi di queste notifiche sono disponibili nella EventBridge sezione di questa guida. Per ulteriori informazioni, consulta L'aggiornamento dell'istanza sostituisce gli eventi del ciclo di vita del volume root.