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 sulle 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 di non terminazione. La manutenzione e gli aggiornamenti dell'infrastruttura vengono eseguiti senza preoccuparsi di interrompere i carichi di lavoro. Utilizzando il drenaggio gestito delle istanze, semplifichi i flussi di lavoro di gestione dell'infrastruttura che richiedono la sostituzione delle EC2 istanze Amazon, garantendo al contempo la resilienza e la disponibilità delle applicazioni.
Il drenaggio gestito delle istanze di Amazon ECS funziona con le istanze di gruppo Amazon Auto EC2 Scaling sostitutive. In base all'aggiornamento delle istanze e alla durata massima delle stesse, i clienti possono garantire la conformità con i più recenti requisiti di sistema operativo e sicurezza per la loro capacità.
Il drenaggio delle istanze gestite da Amazon ECS può essere usato 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 Amazon EC2 Auto Scaling utilizzando la console AWS CLI Amazon ECS o l'SDK.
Gli eventi riportati di seguito sono coperti dal drenaggio delle istanze gestite da Amazon ECS.
-
Aggiornamento delle istanze di gruppo Amazon EC2 Auto Scaling ‐ Utilizza l'aggiornamento delle istanze per eseguire la sostituzione progressiva delle EC2 istanze Amazon nel gruppo Amazon Auto EC2 Scaling anziché eseguirla manualmente in batch. Ciò è utile quando è necessario sostituire un numero elevato di istanze, L'aggiornamento dell'istanza viene avviato tramite la EC2 console Amazon o l'
StartInstanceRefreshAPI. Assicurati di selezionareReplaceper ottenere la protezione scalabile quando chiamiStartInstanceRefreshse usi la protezione dalla terminazione gestita. -
Durata massima dell'istanza ‐ È possibile definire una durata massima quando si tratta di sostituire le istanze di gruppo Amazon EC2 Auto Scaling. Ciò è utile per pianificare le istanze sostitutive in base a policy di sicurezza interne o alla conformità.
-
Scale-in del gruppo Amazon EC2 Auto Scaling ‐ Basato su politiche di scalabilità e azioni di scalabilità pianificate, il gruppo Amazon Auto Scaling supporta il ridimensionamento EC2 automatico delle istanze. Utilizzando un gruppo Amazon EC2 Auto Scaling come fornitore di capacità Amazon ECS, puoi scalare le istanze di gruppo Amazon Auto Scaling EC2 quando non vi è alcuna attività in esecuzione.
-
Controlli dello stato del gruppo Amazon EC2 Auto Scaling ‐ Il gruppo Amazon Auto EC2 Scaling supporta molti controlli di integrità per gestire la chiusura di istanze non integre.
-
CloudFormation aggiornamenti dello stack ‐ Puoi aggiungere un
UpdatePolicyattributo allo CloudFormation stack per eseguire aggiornamenti continui quando il gruppo cambia. -
Ribilanciamento della capacità Spot ‐ Il gruppo Amazon Auto EC2 Scaling cerca di sostituire in modo proattivo le istanze Spot che presentano un rischio di interruzione più elevato in base all'avviso di ribilanciamento della capacità di Amazon. EC2 Il gruppo Amazon EC2 Auto Scaling termina la vecchia istanza quando viene avviata la versione sostitutiva ed è funzionante. Il drenaggio delle istanze gestite da Amazon ECS drena le istanze spot allo stesso modo in cui drena le istanze non spot.
-
Interruzione spot: le istanze Spot vengono terminate con un preavviso di due minuti. Il drenaggio delle istanze gestite da Amazon ECS mette l'istanza in stato di drenaggio in risposta.
Il ciclo di vita di EC2 Amazon Amazon EC2 Auto Scaling si aggancia al drenaggio gestito delle istanze
Gli hook del ciclo di vita del gruppo Amazon EC2 Auto Scaling consentono ai clienti di creare soluzioni che vengono attivate da determinati eventi nel ciclo di vita dell'istanza ed eseguire un'azione personalizzata quando si verifica quel determinato evento. Un gruppo Amazon EC2 Auto Scaling consente fino a 50 hook. Possono esistere più hook di terminazione che vengono eseguiti in parallelo e il gruppo Amazon Auto EC2 Scaling attende il completamento di tutti gli hook prima di terminare un'istanza.
Oltre alla terminazione degli hook gestita da Amazon ECS, è anche possibile configurare hook di terminazione del ciclo di vita personalizzati. Gli hook del ciclo di vita hanno default action e suggeriamo di impostare continue come impostazione predefinita per garantire che altri hook, come l'hook gestito da Amazon ECS, non siano influenzati da eventuali errori degli hook personalizzati.
Se hai già configurato un hook del ciclo di vita di terminazione del gruppo Amazon EC2 Auto Scaling e hai anche abilitato il drenaggio gestito delle istanze di Amazon ECS, vengono eseguiti entrambi gli hook del ciclo di vita. Tuttavia, le tempistiche relative non sono garantite. Gli hook del ciclo di vita hanno un'impostazione default action per specificare l'azione da intraprendere allo scadere del timeout. In caso di errori, consigliamo di usare continue come risultato predefinito nel tuo hook personalizzato. Ciò garantisce che altri hook, in particolare quelli gestiti da Amazon ECS, non siano influenzati da eventuali errori nel tuo hook del ciclo di vita personalizzato. Il risultato alternativo di abandon comporta che tutti gli altri hook vengano ignorati, e questo dovrebbe essere evitato. Per ulteriori informazioni sugli hook del ciclo di vita del gruppo Amazon EC2 Auto Scaling, consulta gli hook del ciclo di vita di Amazon Amazon Auto EC2 Scaling nella Amazon Amazon EC2 Auto Scaling User Guide. EC2 EC2
Drenaggio delle istanze gestite e delle attività
Il drenaggio delle istanze gestite da Amazon ECS usa la funzionalità di drenaggio esistente presente nelle istanze di container. La funzionalità di drenaggio delle istanze di container esegue la sostituzione e l'interruzione delle attività di replica che appartengono a un servizio Amazon ECS. Un'attività autonoma, come quella invocata da RunTask, che si trova nello stato PENDING o RUNNING, rimane inalterata. È necessario attendere che queste attività vengano completate o interromperle manualmente. L'istanza di container rimane nello stato DRAINING fino a quando tutte le attività non vengono interrotte o non sono trascorse 48 ore. Le attività daemon sono le ultime a essere interrotte dopo che tutte le attività di replica sono state interrotte.
Drenaggio delle istanze gestite e protezione dalla terminazione gestita
Il drenaggio delle istanze gestite funziona anche se la terminazione gestita è disabilitata. Per informazioni sulla protezione da terminazione gestita, consulta Controlla le istanze terminate da Amazon ECS.
La seguente tabella riassume il comportamento per diverse combinazioni di terminazione gestita e drenaggio gestito.
| Terminazione gestita | Drenaggio gestito | Outcome |
|---|---|---|
|
Abilitato |
Abilitato | Amazon ECS protegge EC2 le istanze Amazon che eseguono attività dall'interruzione a causa di eventi di scalabilità. Tutte le istanze in fase di terminazione, ad esempio quelle per cui non è impostata la protezione dalla terminazione, che hanno subito una terminazione spot o sono state forzate dall'aggiornamento dell'istanza, vengono drenate correttamente. |
|
Disabilitato |
Abilitato | Amazon ECS non protegge EC2 le istanze Amazon che eseguono attività dalla scalabilità. Tuttavia, tutte le istanze che vengono terminate vengono svuotate in modo corretto. |
|
Abilitato |
Disabilitato | Amazon ECS protegge EC2 le istanze Amazon che eseguono attività dall'interruzione a causa di eventi di scalabilità. Tuttavia, le istanze possono comunque essere terminate da un'interruzione spot o da un aggiornamento forzato dell'istanza, oppure se non stanno eseguendo alcuna attività. Amazon ECS non esegue il drenaggio graduale per queste istanze e avvia attività di servizio sostitutive dopo il loro arresto. |
|
Disabilitato |
Disabilitato | EC2 Le istanze Amazon possono essere scalate o terminate in qualsiasi momento, anche se eseguono attività di Amazon ECS. Amazon ECS avvierà attività di servizio sostitutive dopo la loro interruzione. |
Drenaggio delle istanze gestite e drenaggio delle istanze spot
Con il drenaggio delle istanze spot, è possibile impostare una variabile di ambiente ECS_ENABLE_SPOT_INSTANCE_DRAINING sull'agente Amazon ECS che consente ad Amazon ECS di mettere un'istanza in 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 EC2 Amazon in fase di chiusura per molte ragioni, non solo per un'interruzione Spot. Ad esempio, puoi utilizzare il ribilanciamento della capacità di EC2 Amazon 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 utilizzi il drenaggio gestito delle istanze, non è necessario abilitare il drenaggio delle istanze Spot separatamente, quindi nel gruppo ECS_ENABLE_SPOT_INSTANCE_DRAINING Amazon Auto EC2 Scaling i dati degli utenti sono ridondanti. Per ulteriori informazioni sulle 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 Amazon EC2 Auto Scaling invia un evento EventBridge quando viene richiamato un hook 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 Amazon ECS e. APIs
-
EventBridge dispone di meccanismi di riprova integrati per mitigare i guasti temporanei.
Risoluzione dei problemi relativi al drenaggio delle istanze gestite da Amazon ECS
Potrebbe capitarti di dover risolvere i problemi relativi al drenaggio delle istanze gestite. Di seguito è riportato un esempio di un problema che potresti incontrare durante l'utilizzo e della relativa risoluzione.
Le istanze non terminano dopo aver superato la durata massima dell'istanza quando si utilizza il dimensionamento automatico.
Se le istanze non vengono terminate neppure dopo aver raggiunto e superato la durata massima prevista durante l'utilizzo di un gruppo Auto Scaling, è possibile che siano protette dalla riduzione orizzontale. È possibile disattivare la terminazione gestita e consentire il drenaggio gestito per gestire il riciclo delle istanze.
Comportamento di drenaggio per le istanze gestite da Amazon ECS
Le istanze gestite da Amazon ECS implementano sofisticati processi di drenaggio e terminazione che garantiscono transizioni fluide dei carichi di lavoro, ottimizzando i costi e mantenendo l'integrità del sistema. Il sistema di terminazione offre tre percorsi decisionali distinti per la terminazione delle istanze, ciascuno con caratteristiche temporali e profili di impatto sul cliente diversi.
Percorsi decisionali per la terminazione
Tutti i percorsi di terminazione convergono sullo stesso meccanismo di esecuzione tramite l'hook del ciclo di vita POST_DEREGISTER che attiva l'API di Node Manager per la chiusura immediata delle istanze Amazon. ReleaseNode EC2
- Terminazione avviata dal cliente
-
Consente il controllo diretto sulla rimozione delle istanze quando bisogna rimuovere immediatamente le istanze di container dal servizio. Si richiama l' DeregisterContainerInstance API con il flag force impostato su true, a indicare che è necessaria la terminazione immediata nonostante i carichi di lavoro in esecuzione.
- Terminazione dello stato di inattività avviata dal sistema
-
Ottimizza i costi grazie al rilevamento intelligente dei periodi di inattività, il quale identifica le istanze che non gestiscono più carichi di lavoro. Elastic Workload Service (EWS) implementa sofisticati algoritmi di rilevamento dell'inattività che monitorano l'uso delle istanze e avviano la terminazione delle istanze che rimangono inattive per periodi configurabili.
- Terminazione dell'aggiornamento dell'infrastruttura
-
Implementa la gestione proattiva dell'infrastruttura tramite la policy di decadimento naturale di Node Manager, in base alla quale le istanze vengono aggiornate periodicamente per garantire che funzionino sulle versioni più recenti della piattaforma e mantengano il livello di sicurezza. Node Manager implementa policy time-to-live (TTL) che avviano una terminazione graduale per le istanze che hanno raggiunto la loro durata operativa massima.
Drenaggio regolare e migrazione del carico di lavoro
Il sistema di drenaggio regolare implementa un sofisticato coordinamento con la gestione dei servizi Amazon ECS per garantire che le attività gestite dal servizio vengano correttamente migrate dalle istanze pianificate per la terminazione.
Coordinamento del drenaggio delle attività di servizio
Quando un'istanza passa allo stato DRAINING, il pianificatore di Amazon ECS interrompe automaticamente l'assegnazione di nuove attività all'istanza, implementando al contempo procedure di spegnimento graduale per le attività di servizio esistenti. Il drenaggio delle attività di servizio include il coordinamento con le strategie di implementazione dei servizi, i requisiti di controllo dell'integrità e le preferenze di drenaggio dell'utente, al fine di garantire tempi di migrazione ottimali e tassi di successo elevati.
Gestione delle attività autonome
Per le attività autonome è necessaria una gestione diversa perché non beneficiano della gestione automatica dei servizi. Il sistema valuta le caratteristiche delle attività autonome, tra cui le stime della durata delle attività, l'analisi della probabilità di completamento e la valutazione dell'impatto sui clienti. La strategia di completamento graduale consente alle attività autonome di completarsi naturalmente durante un periodo di tolleranza prolungato, mentre la terminazione forzata garantisce che l'aggiornamento dell'infrastruttura avvenga entro tempi accettabili quando le attività non sono state completate naturalmente.
Strategia di completamento in due fasi
Il sistema di terminazione implementa un approccio in due fasi che bilancia la continuità del carico di lavoro e i requisiti di gestione dell'infrastruttura.
Fase 1: periodo di completamento graduale
Durante questa fase, il sistema implementa strategie di drenaggio graduale che danno priorità alla continuità del carico di lavoro. Le attività di servizio subiscono un drenaggio graduale attraverso le normali attività di pianificazione di Amazon ECS, le attività autonome continuano ad essere eseguite e possono essere completate naturalmente, mentre il sistema monitora tutte le attività affinché raggiungano lo stato di arresto attraverso attività di completamento naturali.
Fase 2: applicazione di scadenze rigide
Quando il completamento graduale non consente di raggiungere gli obiettivi di terminazione entro tempi accettabili, il sistema applica una scadenza rigida. Solitamente, la scadenza rigida è fissata al momento dell'avvio del drenaggio più sette giorni, in modo da garantire un tempo sufficiente per il completamento dell'operazione nel rispetto dei requisiti operativi. L'applicazione prevede l'invocazione automatica delle procedure di annullamento forzato della registrazione e l'immediata terminazione di tutte le attività rimanenti, indipendentemente dal loro stato di completamento.
Coordinamento tra servizi e gestione dello stato
Il processo di terminazione richiede un coordinamento sofisticato tra il Cluster Management Backend Service (CMBS) e Node Manager per garantire che l'annullamento della registrazione dell'istanza del contenitore e la pulizia delle risorse EC2 Amazon avvengano nella sequenza corretta, mantenendo la coerenza.
Esecuzione dell'hook POST_DEREGISTER
L'hook del ciclo di vita POST_DEREGISTER rappresenta il punto di convergenza in cui tutti e tre i percorsi decisionali per la terminazione eseguono la stessa logica di pulizia. Quando un'istanza del contenitore raggiunge lo stato DEREGISTERED, l'hook POST_DEREGISTER attiva automaticamente l'API di Node Manager ReleaseNode per avviare le operazioni di pulizia delle risorse Amazon. EC2 L'implementazione dell'hook include una sofisticata gestione degli errori per vari scenari di errore, tra cui problemi di connettività di rete, problemi di disponibilità dei EC2 servizi Amazon e errori di coordinamento tra i componenti del sistema.
Pulizia e deallocazione EC2 delle risorse Amazon
Il processo di terminazione delle EC2 istanze Amazon implementa un coordinamento completo con AWS i servizi per garantire che le risorse di elaborazione sottostanti vengano deallocate correttamente. Ciò include la pulizia dell'interfaccia di rete per prevenire perdite di risorse, la gestione dei record del database con audit trail completi e meccanismi adeguati di gestione e ripristino degli errori per diversi scenari di errore.