Annullamento delle modifiche tramite un rollback - 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à.

Annullamento delle modifiche tramite un rollback

Puoi eseguire il rollback di un aggiornamento dell'istanza quando l'operazione è ancora in corso, non quando è stata completata. Tuttavia, puoi aggiornare nuovamente il gruppo con scalabilità automatica avviando un nuovo aggiornamento dell'istanza.

Durante il rollback, Dimensionamento automatico Amazon EC2 sostituisce le istanze implementate fino a quel momento. Le nuove istanze corrispondono all'ultima configurazione salvata nel gruppo con scalabilità automatica prima di avviare l'aggiornamento dell'istanza.

Dimensionamento automatico Amazon EC2 offre i seguenti metodi per eseguire il rollback:

  • Rollback manuale: l'avvio manuale di un rollback consente di rimuovere gli elementi implementati fino al punto di rollback.

  • Rollback automatico: Amazon EC2 Auto Scaling inverte automaticamente ciò che è stato distribuito se l'aggiornamento dell'istanza non riesce per qualche motivo o se CloudWatch vengono attivati degli allarmi specificati. ALARM

Considerazioni

Le seguenti considerazioni si applicano quando si utilizza il rollback:

  • L'opzione rollback è disponibile solo se specifichi una configurazione desiderata come parte dell'avvio di un aggiornamento dell'istanza.

  • Puoi ripristinare una versione precedente di un modello di avvio solo se la versione è una versione numerata specifica. L'opzione di rollback non è disponibile se il gruppo con dimensionamento automatico è configurato per utilizzare la versione del modello di lancio $Latest o $Default.

  • Inoltre, non è possibile tornare a un modello di avvio configurato per utilizzare un alias AMI dal AWS Systems Manager Parameter Store.

  • L’ultima configurazione salvata nel gruppo con dimensionamento automatico deve essere stabile. In caso contrario, il flusso di lavoro del rollback proseguirà ma alla fine l'operazione avrà esito negativo. Finché non si risolve il problema, il gruppo con scalabilità automatica potrebbe trovarsi in uno stato non riuscito, in cui non è in grado di avviare correttamente le istanze. Ciò potrebbe influire sulla disponibilità del servizio o dell'applicazione.

Avvio manuale di un rollback

Console
Per avviare manualmente un rollback dell'aggiornamento dell'istanza (console)
  1. Apri la console Amazon EC2 all'indirizzo https://console.aws.amazon.com/ec2/ e scegli Gruppi con dimensionamento automatico dal pannello di navigazione.

  2. Seleziona la casella di controllo accanto al gruppo con dimensionamento automatico.

  3. Nella scheda Aggiornamento istanza, in Aggiornamento dell'istanza attivo, scegli Operazioni, quindi Avvia rollback.

  4. Quando viene richiesta la conferma, seleziona Confirm (Conferma).

AWS CLI
Per avviare manualmente un rollback dell'aggiornamento dell'istanza (AWS CLI)

Usa il comando rollback-instance-refresh dalla AWS CLI e fornisci il nome del gruppo con scalabilità automatica.

aws autoscaling rollback-instance-refresh --auto-scaling-group-name my-asg

Output di esempio:

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

Se questo comando genera un errore, assicurati di averlo aggiornato AWS CLI localmente alla versione più recente.

Avvio dell'aggiornamento di un'istanza con rollback automatico

Utilizzando la funzione di rollback automatico, puoi ripristinare automaticamente l'aggiornamento dell'istanza in caso di errore, ad esempio quando si verificano errori o viene attivato uno CloudWatch specifico allarme Amazon. ALARM

Se abiliti il rollback automatico e si verificano errori durante la sostituzione delle istanze, l'aggiornamento dell'istanza tenta di completare tutte le sostituzioni per un'ora prima che abbia esito negativo ed esegua il rollback. Questi errori sono in genere causati da errori di avvio di EC2, controlli dell'integrità configurati in modo errato o dalla mancata ignorazione o dalla mancata autorizzazione alla chiusura delle istanze nello stato Standby o protette dal dimensionamento verticale.

La specificazione degli CloudWatch allarmi è facoltativa. Per specificare un allarme, devi prima crearlo. Puoi specificare sia allarmi dei parametri che allarmi compositi in. Per informazioni sulla creazione dell'allarme, consulta la Amazon CloudWatch User Guide. Utilizzando i parametri di Elastic Load Balancing come esempio, se utilizzi un Application Load Balancer, puoi utilizzare i parametri HTTPCode_ELB_5XX_Count e HTTPCode_ELB_4XX_Count.

Considerazioni
  • Se si specifica un CloudWatch avviso ma non si abilita il rollback automatico e lo stato dell'allarme passa aALARM, l'aggiornamento dell'istanza fallisce senza il rollback.

  • Quando avvii l'aggiornamento di un'istanza puoi scegliere un massimo di 10 allarmi.

  • Quando si sceglie un CloudWatch allarme, quest'ultimo deve essere in uno stato compatibile. Se lo stato dell'allarme è INSUFFICIENT_DATA o ALARM, ricevi un errore quando tenti di avviare l'aggiornamento dell'istanza.

  • Quando crei un allarme da utilizzare per Dimensionamento automatico Amazon EC2, l'allarme deve includere come trattare i punti dati mancanti. Se un parametro è spesso privo di punti di dati in base per progettazione, lo stato dell'allarme è INSUFFICIENT_DATA durante tali periodi. In questo caso, Dimensionamento automatico Amazon EC2 non può sostituire le istanze finché non vengono trovati nuovi punti dati. Per forzare l'allarme a mantenere il precedente stato ALARM o OK, puoi scegliere di ignorare i dati mancanti. Per ulteriori informazioni, consulta Configurazione del modo in cui gli allarmi trattano i dati mancanti nella Amazon CloudWatch User Guide.

Console
Per avviare l'aggiornamento dell'istanza con il rollback automatico (console)
  1. Apri la console Amazon EC2 all'indirizzo https://console.aws.amazon.com/ec2/ e scegli Gruppi con dimensionamento automatico dal pannello di navigazione.

  2. Seleziona la casella di controllo accanto al gruppo con dimensionamento automatico.

  3. Nella scheda Aggiornamento istanza in Active instance refresh (Aggiornamento attivo istanza), scegli Start instance refresh (Avvia aggiornamento istanza).

  4. Segui la procedura Avvio dell'aggiornamento di un'istanza (console) e configura le impostazioni di aggiornamento dell'istanza in base alle esigenze.

  5. (Facoltativo) In Aggiorna impostazioni, per CloudWatch allarmi, scegli Abilita CloudWatch allarmi, quindi scegli uno o più allarmi per identificare eventuali problemi e fallire l'operazione se un allarme entra nello stato. ALARM

  6. In Impostazioni di rollback, seleziona Abilita rollback automatico per eseguire il rollback automatico di un aggiornamento dell'istanza non riuscito alla configurazione salvata l'ultima volta nel gruppo con dimensionamento automatico prima di avviare l'aggiornamento dell'istanza.

  7. Controlla le selezioni, quindi scegli Avvia aggiornamento dell'istanza.

AWS CLI
Per avviare l'aggiornamento dell'istanza con il rollback automatico (AWS CLI)

Utilizza il comando start-instance-refresh e specifica true per l'opzione AutoRollback in Preferences.

L'esempio seguente mostra come avviare un aggiornamento dell'istanza che verrà ripristinato automaticamente in caso di errore. Sostituisci i valori del parametro italicized con i tuoi valori.

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

Contenuto di config.json.

{ "AutoScalingGroupName": "my-asg", "DesiredConfiguration": { "LaunchTemplate": { "LaunchTemplateName": "my-launch-template", "Version": "1" } }, "Preferences": { "AutoRollback": true } }

In alternativa, per eseguire automaticamente il rollback quando l'aggiornamento dell'istanza fallisce o quando uno specifico CloudWatch allarme è nello ALARM stato, specifica l'AlarmSpecificationopzione Preferences e fornisci il nome dell'allarme, come nell'esempio seguente. Sostituisci i valori del parametro italicized con i tuoi valori.

{ "AutoScalingGroupName": "my-asg", "DesiredConfiguration": { "LaunchTemplate": { "LaunchTemplateName": "my-launch-template", "Version": "1" } }, "Preferences": { "AutoRollback": true, "AlarmSpecification": { "Alarms": [ "my-alarm" ] } } }

Se il comando viene eseguito correttamente, verrà visualizzato un output simile al seguente:

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

Se questo comando genera un errore, assicurati di averlo aggiornato AWS CLI localmente alla versione più recente.