Blocca in sicurezza i carichi di lavoro Amazon ECS in esecuzione su istanze EC2 - Amazon Elastic Container Service

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

Blocca in sicurezza i carichi di lavoro Amazon ECS in esecuzione su istanze EC2

Il drenaggio gestito delle istanze facilita la chiusura graduale delle istanze Amazon EC2. Ciò consente ai carichi di lavoro di interrompersi in sicurezza e di essere riprogrammati su istanze non terminanti. La manutenzione e gli aggiornamenti dell'infrastruttura vengono eseguiti senza preoccuparsi dell'interruzione dei carichi di lavoro. Utilizzando il drenaggio gestito delle istanze, semplifichi i flussi di lavoro di gestione dell'infrastruttura che richiedono la sostituzione delle istanze Amazon EC2, garantendo al contempo la resilienza e la disponibilità delle applicazioni.

Il drenaggio gestito delle istanze di Amazon ECS funziona con le istanze di gruppo Auto Scaling sostitutive. In base all'aggiornamento dell'istanza e alla durata massima dell'istanza, i clienti possono garantire la conformità ai più recenti requisiti di sistema operativo e di sicurezza relativi alla loro capacità.

Il drenaggio gestito delle istanze può essere utilizzato solo con i provider di capacità Amazon ECS. Puoi attivare il drenaggio gestito delle istanze quando crei o aggiorni i fornitori di capacità del gruppo Auto Scaling utilizzando la console AWS CLI Amazon ECS o l'SDK.

I seguenti eventi sono coperti dal drenaggio delle istanze gestite di Amazon ECS.

  • Aggiornamento delle istanze di gruppo Auto Scaling ‐ Utilizza l'aggiornamento dell'istanza per eseguire la sostituzione progressiva delle istanze Amazon EC2 nel gruppo Auto Scaling anziché eseguirla manualmente in batch. Ciò è utile quando è necessario sostituire un gran numero di istanze. L'aggiornamento dell'istanza viene avviato tramite la console Amazon EC2 o l'API. StartInstanceRefresh Assicurati di selezionare Replace la protezione Scale-in quando chiami StartInstanceRefresh se utilizzi la protezione gestita dalla terminazione.

  • Durata massima dell'istanza ‐ È possibile definire una durata massima quando si tratta di sostituire le istanze del gruppo Auto Scaling. Ciò è utile per pianificare le istanze sostitutive in base a politiche di sicurezza interne o alla conformità.

  • Scale-in del gruppo Auto Scaling ‐ Basato su politiche di scalabilità e azioni di scalabilità pianificate, il gruppo Auto Scaling supporta il ridimensionamento automatico delle istanze. Utilizzando un gruppo Auto Scaling come fornitore di capacità Amazon ECS, puoi scalare le istanze di gruppo Auto Scaling quando non sono in esecuzione alcuna attività.

  • Controlli di integrità del gruppo Auto Scaling ‐ Il gruppo Auto Scaling supporta molti controlli di integrità per gestire la chiusura delle istanze non integre.

  • AWS CloudFormation aggiornamenti dello stack ‐ È possibile aggiungere un UpdatePolicy attributo allo AWS CloudFormation stack per eseguire aggiornamenti continui quando il gruppo cambia.

  • Ribilanciamento della capacità Spot ‐ Il gruppo Auto Scaling cerca di sostituire in modo proattivo le istanze Spot che presentano un rischio di interruzione più elevato sulla base dell'avviso di ribilanciamento della capacità di Amazon EC2. Il gruppo Auto Scaling termina la vecchia istanza quando la variante sostitutiva viene lanciata ed è funzionante. Il drenaggio dell'istanza gestita di Amazon ECS prosciuga l'istanza Spot nello stesso modo in cui drena un'istanza non Spot.

  • Interruzione in loco - Le istanze Spot vengono chiuse con un preavviso di due minuti. Il drenaggio delle istanze gestito da Amazon ECS mette l'istanza in stato di drenaggio in risposta.

Agganci al ciclo di vita di Amazon EC2 Auto Scaling con drenaggio gestito delle istanze

Gli hook del ciclo di vita del gruppo Auto Scaling consentono al cliente di creare soluzioni attivate da determinati eventi nel ciclo di vita dell'istanza ed eseguire un'azione personalizzata quando si verifica quel determinato evento. Un gruppo Auto Scaling consente fino a 50 hook. Possono esistere più hook di terminazione che vengono eseguiti in parallelo e il gruppo Auto Scaling attende il completamento di tutti gli hook prima di terminare un'istanza.

Oltre alla terminazione degli hook gestita da Amazon ECS, puoi anche configurare i tuoi hook di terminazione del ciclo di vita. Gli hook del ciclo di vita dispongono di un default action hook e consigliamo di impostarlo continue come predefinito per garantire che altri hook, come l'hook gestito di Amazon ECS, non siano influenzati da errori causati dagli hook personalizzati.

Se hai già configurato un hook del ciclo di vita di terminazione del gruppo Auto Scaling e hai anche abilitato il drenaggio delle istanze gestite di Amazon ECS, vengono eseguiti entrambi gli hook del ciclo di vita. Le tempistiche relative, tuttavia, non sono garantite. I Lifecycle Hook hanno un'default actionimpostazione per specificare l'azione da intraprendere allo scadere del timeout. In caso di errori, consigliamo di utilizzare continue come risultato predefinito l'hook personalizzato. Ciò garantisce che altri hook, in particolare gli hook gestiti di Amazon ECS, non siano influenzati da errori nel tuo hook personalizzato del ciclo di vita. Il risultato alternativo di abandon fa sì che tutti gli altri hook vengano ignorati e dovrebbe essere evitato. Per ulteriori informazioni sugli hook del ciclo di vita del gruppo Auto Scaling, consulta gli hook del ciclo di vita di Amazon EC2 Auto Scaling nella Amazon EC2 Auto Scaling User Guide.

Attività e drenaggio gestito delle istanze

Il drenaggio gestito delle istanze di Amazon ECS utilizza la funzionalità di drenaggio esistente presente nelle istanze di container. La funzionalità di drenaggio delle istanze del contenitore esegue la sostituzione e l'interruzione delle attività di replica che appartengono a un servizio Amazon ECS. Un'attività autonoma, come quella richiamata daRunTask, che si trova nello stato or rimane inalterataPENDING. RUNNING È necessario attendere che vengano completate o interromperle manualmente. L'istanza del contenitore rimane nello DRAINING stato finché tutte le attività non vengono interrotte o non sono trascorse 48 ore. Le attività daemon sono le ultime a interrompersi dopo l'interruzione di tutte le attività di replica.

Drenaggio gestito delle istanze e protezione gestita dalla terminazione

Il drenaggio gestito delle istanze funziona anche se la terminazione gestita è disabilitata. Per informazioni sulla protezione gestita dalla terminazione, vedere. Controlla le istanze terminate da Amazon ECS

La tabella seguente riassume il comportamento delle diverse combinazioni di terminazione gestita e drenaggio gestito.

Terminazione gestita

Drenaggio gestito

Outcome

Abilitato

Abilitato Amazon ECS protegge le istanze Amazon EC2 che eseguono attività dall'interruzione a causa di eventi di scalabilità. Tutte le istanze in fase di chiusura, ad esempio quelle per cui non è impostata la protezione dalla terminazione, che hanno subito un'interruzione Spot o sono state forzate dall'aggiornamento dell'istanza, vengono esaurite senza problemi.

Disabilitato

Abilitato Amazon ECS non protegge le istanze Amazon EC2 che eseguono attività dalla scalabilità. Tuttavia, tutte le istanze che vengono terminate vengono svuotate correttamente.

Abilitato

Disabilitato Amazon ECS protegge le istanze Amazon EC2 che eseguono attività dall'interruzione a causa di eventi di scalabilità. Tuttavia, le istanze possono comunque essere interrotte dall'interruzione di Spot o dall'aggiornamento forzato dell'istanza o se non eseguono alcuna attività. Amazon ECS non esegue operazioni di drenaggio regolari per queste istanze e avvia attività di assistenza sostitutive dopo che queste si sono interrotte.

Disabilitato

Disabilitato Le istanze Amazon EC2 possono essere scalate o terminate in qualsiasi momento, anche se eseguono attività di Amazon ECS. Amazon ECS avvierà attività di assistenza sostitutive una volta interrotte.
Drenaggio gestito delle istanze e drenaggio delle istanze Spot

Con il drenaggio delle istanze Spot, puoi impostare una variabile di ambiente ECS_ENABLE_SPOT_INSTANCE_DRAINING sull'agente Amazon ECS che consente ad Amazon ECS di mettere un'istanza nello stato di drenaggio in risposta all'interruzione Spot di due minuti. Il drenaggio gestito delle istanze di Amazon ECS facilita l'arresto graduale delle istanze Amazon EC2 in fase di chiusura per molte ragioni, non solo per un'interruzione Spot. Ad esempio, puoi utilizzare il ribilanciamento della capacità di Amazon EC2 Auto Scaling per sostituire in modo proattivo l'istanza Spot con un rischio elevato di interruzione, mentre il drenaggio gestito delle istanze esegue l'arresto graduale dell'istanza Spot in fase di sostituzione. Quando si utilizza il drenaggio gestito delle istanze, non è necessario abilitare il drenaggio delle istanze Spot separatamente, quindi ECS_ENABLE_SPOT_INSTANCE_DRAINING nel gruppo Auto Scaling i dati degli utenti sono ridondanti. Per ulteriori informazioni sul drenaggio delle istanze Spot, consulta. Spot Instances

Come funziona il drenaggio gestito delle istanze con EventBridge

Gli eventi di drenaggio delle istanze gestite di Amazon ECS vengono pubblicati su Amazon EventBridge e Amazon ECS crea una regola EventBridge gestita nel bus predefinito del tuo account per supportare il drenaggio gestito delle istanze. Puoi filtrare questi eventi su altri AWS servizi come Lambda, Amazon SNS e Amazon SQS per monitorare e risolvere i problemi.

  • Amazon EC2 Auto Scaling invia un evento quando viene richiamato un hook EventBridge del ciclo di vita.

  • Gli avvisi di interruzione Spot vengono pubblicati su. EventBridge

  • Amazon ECS genera messaggi di errore che puoi recuperare tramite la console e le API di Amazon ECS.

  • EventBridge dispone di meccanismi di riprova integrati per mitigare i guasti temporanei.

Risoluzione dei problemi relativi al drenaggio delle istanze di Amazon ECS Managed

Potrebbe essere necessario risolvere i problemi relativi al drenaggio gestito delle istanze. Di seguito è riportato un esempio di un problema e di una risoluzione che potresti riscontrare durante l'utilizzo.

Le istanze non terminano dopo aver superato la durata massima dell'istanza quando si utilizza la scalabilità automatica.

Se le istanze non terminano nemmeno dopo aver raggiunto e superato la durata massima dell'istanza durante l'utilizzo di un gruppo con scalabilità automatica, è possibile che siano protette dalla scalabilità in entrata. Puoi disattivare la terminazione gestita e consentire il drenaggio gestito per gestire il riciclo delle istanze.