Utilizza il ribilanciamento della capacità per gestire le interruzioni spot di Amazon EC2 - 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à.

Utilizza il ribilanciamento della capacità per gestire le interruzioni spot di Amazon EC2

Puoi configurare Amazon EC2 Auto Scaling per monitorare e rispondere automaticamente alle modifiche che influiscono sulla disponibilità delle istanze Spot. Il ribilanciamento della capacità consente di mantenere la disponibilità del carico di lavoro aumentando proattivamente il parco istanze con una nuova istanza spot prima che un'istanza in esecuzione venga interrotta da Amazon EC2.

L'obiettivo del ribilanciamento della capacità è di mantenere l'elaborazione del carico di lavoro senza interruzioni. Quando le istanze Spot sono ad alto rischio di interruzione, il servizio Spot Amazon EC2 notifica ad Amazon EC2 Auto Scaling un suggerimento di ribilanciamento dell'istanza EC2.

Quando abiliti il ribilanciamento della capacità per il gruppo con scalabilità automatica, Amazon EC2 Auto Scaling cerca di sostituire proattivamente le istanze Spot del gruppo per cui è suggerito il ribilanciamento. È possibile decidere di ribilanciare il carico di lavoro su Istanze Spot nuove o esistenti che non presentano un rischio elevato di interruzione. Ciò significa che il carico di lavoro può continuare a elaborare le operazioni, mentre Amazon EC2 Auto Scaling avvia una nuova Istanza Spot prima che un'istanza esistente venga interrotta.

Quando non utilizzi il ribilanciamento della capacità, Dimensionamento automatico Amazon EC2 non sostituisce le istanze Spot dopo fino a quando il servizio Amazon EC2 Spot non interrompe le istanze e il controllo dell'integrità fallisce. Prima di interrompere un'istanza, Amazon EC2 dà sempre sia una raccomandazione di ribilanciamento dell'istanza EC2 che un avviso di interruzione dell'istanza Spot di due minuti.

Panoramica

Per utilizzare il ribilanciamento della capacità con il gruppo con dimensionamento automatico, i passaggi di base sono:

  1. Configurare l'utilizzo di più tipi di istanze e zone di disponibilità da parte del tuo gruppo con dimensionamento automatico. In questo modo, Dimensionamento automatico Amazon EC2 può esaminare la capacità disponibile per le istanze Spot in ogni zona di disponibilità. Per ulteriori informazioni, consulta Gruppi Auto Scaling con più tipi di istanze e opzioni di acquisto.

  2. Se necessario, aggiungi gli hook del ciclo di vita per eseguire un arresto graduale dell'applicazione all'interno delle istanze che ricevono la notifica di ribilanciamento. Per ulteriori informazioni, consulta Hook del ciclo di vita di Amazon EC2 Auto Scaling.

    Di seguito sono riportati alcuni motivi per cui è possibile utilizzare un hook del ciclo di vita:

    • Permettere l'arresto regolare dei dipendenti Amazon SQS

    • Completare la deregistrazione dal Domain Name System (DNS)

    • Eseguire il pull o i log dell’applicazione e caricarli su Amazon Simple Storage Service (Amazon S3)

  3. Sviluppa un'azione personalizzata per l'hook del ciclo di vita. Per richiamare l'azione personalizzata il prima possibile, devi sapere quando un'istanza è pronta per essere terminata. Scoprilo rilevando lo stato del ciclo di vita dell'istanza.

    • Per richiamare un'azione all'esterno dell'istanza, scrivi una EventBridge regola e automatizza l'azione da intraprendere quando un modello di evento corrisponde alla regola.

    • Per richiamare un'azione all'interno dell'istanza, configura l'istanza per eseguire uno script di spegnimento e recuperare lo stato del ciclo di vita tramite i metadati dell'istanza.

    È fondamentale progettare l'azione personalizzata in modo che venga completata in meno di due minuti. In questo modo si garantisce che ci sia abbastanza tempo per completare le attività prima della chiusura dell'istanza.

Dopo aver completato questi passaggi, puoi iniziare a utilizzare il ribilanciamento della capacità.

Comportamento di ribilanciamento della capacità

Con il ribilanciamento della capacità, Dimensionamento automatico Amazon EC2 si comporta nel modo seguente quando un'istanza riceve una raccomandazione di ribilanciamento della capacità:

  • Quando avvii la nuova istanza spot, Dimensionamento automatico Amazon EC2 attende che la nuova istanza superi il controllo dell'integrità, prima di terminare quella vecchia. Quando sostituisci più istanze, la terminazione di ogni istanza precedente inizia dopo l'avvio della nuova istanza e il controllo dell'integrità.

  • Poiché Amazon EC2 Auto Scaling tenta di avviare nuove istanze prima di terminare quelle vecchie, se si è raggiunta o si sta per raggiungere la capacità massima specificata potrebbe ostacolare o bloccare completamente le attività di ribilanciamento. Per evitare questo problema, Dimensionamento automatico Amazon EC2 può temporaneamente superare la dimensione massima del gruppo fino al 10% della capacità desiderata.

  • Se non hai aggiunto un hook del ciclo di vita, il tuo gruppo con dimensionamento automatico Amazon EC2 inizia a terminare le istanze precedenti non appena le nuove istanze superano il controllo dell'integrità.

  • Aggiungendo un hook del ciclo di vita aumenti il tempo necessario prima di iniziare a terminare le istanze precedenti in base al valore di timeout specificato per l'hook del ciclo di vita.

  • Se si utilizzano policy di dimensionamento o di dimensionamento pianificato, le attività di dimensionamento vengono eseguite in parallelo. Se è in corso un'attività di dimensionamento e il gruppo con scalabilità automatica è inferiore alla nuova capacità desiderata, le dimensioni di Amazon EC2 Auto Scaling vengono aumentate orizzontalmente prima che le istanze precedenti vengano terminate.

Se non è presente alcuna capacità per i tipi di istanza in una zona di disponibilità non riesce, Dimensionamento automatico Amazon EC2 continua a tentare di avviare istanze Spot nelle zone di disponibilità specificate fino a quando non riesce.

Nella peggiore delle ipotesi, se le nuove istanze non vengono avviate o vengono avviate ma il controllo dell'integrità non riesce, Dimensionamento automatico Amazon EC2 continua a tentare di riavviarle. Mentre cerca di avviare nuove istanze, quelle vecchie vengono infine interrotte e terminate forzatamente con un avviso di interruzione di due minuti.

Considerazioni

Quando utilizzi il ribilanciamento della capacità, considera quanto segue:

Progetta la tua applicazione in modo che sia tollerante alle interruzioni Spot

L'applicazione dovrebbe essere in grado di gestire modifiche dinamiche nel numero delle istanze e la possibilità che un'istanza spot venga interrotta in anticipo. Ad esempio, se il tuo gruppo con dimensionamento automatico si trova dietro un sistema di bilanciamento del carico di Elastic Load Balancing, Dimensionamento automatico Amazon EC2 attende che l'istanza deregistrata dal load balancer prima di chiamare l'hook del ciclo di vita. Se scaricare le connessioni e completare l’operazione del ciclo di vita richiede troppo tempo, l'istanza potrebbe essere interrotta mentre Dimensionamento automatico Amazon EC2 è in attesa della sua terminazione prima della terminazione dell’istanza.

Per Amazon EC2 non è sempre possibile inviare il segnale di raccomandazione per il ribilanciamento prima dell'avviso di interruzione dell'istanza spot di due minuti. Talvolta, il segnale di raccomandazione di ribilanciamento arriva insieme all'avviso di interruzione di due minuti. In questo caso, Dimensionamento automatico Amazon EC2 chiama l’hook del ciclo di vita e tenta di avviare immediatamente una nuova istanza Spot.

Evitare un rischio elevato di interruzione delle istanze spot sostitutive

Le Istanze spot sostitutive possono comportare un elevato rischio di interruzione se si utilizza la strategia di allocazione lowest-price. Questo perché avviamo le istanze nel pool con capacità disponibile al prezzo più basso in quel momento, anche se è probabile che le istanze Spot sostitutive vengano interrotte subito dopo l'avvio. Per evitare un rischio elevato di interruzioni, è vivamente consigliato di non utilizzare la strategia di allocazione lowest-price. Consigliamo invece la strategia di allocazione price-capacity-optimized. Questa strategia avvia istanze Spot sostitutive nei pool Spot che hanno il prezzo più basso possibile e meno probabilità di interruzioni. Pertanto, è meno probabile che vengano interrotti nelle prossime future.

Dimensionamento automatico Amazon EC2 avvierà una nuova istanza solo se la disponibilità è uguale o migliore

Uno degli obiettivi del ribilanciamento della capacità è migliorare la disponibilità di un'istanza spot. Se un'istanza spot esistente riceve una raccomandazione di ribilanciamento, Dimensionamento automatico Amazon EC2 avvierà una nuova istanza solo se la nuova istanza fornisce una disponibilità uguale o migliore rispetto all'istanza esistente. Se il rischio di interruzione è maggiore dell'istanza esistente, Dimensionamento automatico Amazon EC2 non avvierà una nuova istanza. Tuttavia, Dimensionamento automatico Amazon EC2 continuerà a valutare i pool di capacità Spot sulla base delle informazioni fornite dal servizio Amazon EC2 Spot e avvierà una nuova istanza se la disponibilità migliorerà.

È possibile che l'istanza esistente venga interrotta senza che Dimensionamento automatico Amazon EC2 avvii in modo proattivo una nuova istanza. In questo caso, Dimensionamento automatico Amazon EC2 tenterà di avviare una nuova istanza non appena riceve l'avviso di interruzione dell'istanza spot. Ciò accade indipendentemente dal fatto che la nuova istanza presenta un rischio elevato di interruzione.

Il ribilanciamento della capacità non aumenta il tasso di interruzione dell'istanza Spot

Quando si abilita il ribilanciamento della capacità, non aumenta il tasso di interruzione dell'istanza spot (il numero di istanze Spot che vengono recuperate quando Amazon EC2 ha bisogno di capacità). Tuttavia, se il ribilanciamento della capacità rileva che un'istanza è a rischio di interruzione, Dimensionamento automatico Amazon EC2 proverà immediatamente ad avviare una nuova istanza. Pertanto, potrebbero essere sostituite più istanze che se avessi aspettato che Dimensionamento automatico Amazon EC2 avesse avviato una nuova istanza dopo l'interruzione di quella a rischio.

Sebbene sia possibile sostituire più istanze mediante l'abilitazione del ribilanciamento della capacità, è meglio prendersi più tempo. In questo modo avrai più tempo per agire prima che le istanze vengano interrotte. Con un Avviso di interruzione dell'istanza Spot, in genere hai solo fino a due minuti per interrompere l'istanza. Con il ribilanciamento della capacità che avvia una nuova istanza in anticipo, offri ai processi esistenti maggiori possibilità di completamento sull'istanza a rischio. È inoltre possibile avviare le procedure di chiusura dell'istanza, impedire la pianificazione di nuovi lavori sull'istanza a rischio e preparare l'istanza appena avviata per il controllo dell'applicazione. Con la sostituzione proattiva offerta dal ribilanciamento della capacità, puoi beneficiare di una continuità regolare.

Il seguente esempio dimostra i rischi e i benefici dell'utilizzo del ribilanciamento della capacità:

  • 14:00: viene ricevuto un suggerimento di ribilanciamento per l'istanza A e Dimensionamento automatico Amazon EC2 inizia immediatamente a provare ad avviare un'istanza sostitutiva B, dandoti il tempo di iniziare le procedure di arresto.

  • 14:30: viene ricevuto un suggerimento di ribilanciamento per l'istanza B, sostituita con l'istanza C, dandoti il tempo di iniziare le procedure di arresto.

  • 14:32: se il ribilanciamento della capacità non fosse abilitato e se un avviso di interruzione dell'istanza Spot fosse stato ricevuto alle 14:32 per l'istanza A, avresti avuto solo fino a due minuti per agire. Tuttavia, l'istanza A avrebbe continuato a funzionare fino a quel momento.