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à.
Interrompi in modo sicuro i carichi di lavoro Amazon ECS in esecuzione sulle istanze EC2
Il drenaggio delle istanze gestite facilita la terminazione 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. Usando il drenaggio delle istanze gestite, 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 tue applicazioni.
Il drenaggio delle istanze gestite da Amazon ECS funziona con le istanze di gruppo Auto 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 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 Auto Scaling: usa l'aggiornamento dell'istanza per eseguire la sostituzione graduale delle istanze Amazon EC2 nel gruppo Auto Scaling invece di eseguirla manualmente in batch. Ciò è utile quando è necessario sostituire un numero elevato di istanze, L'aggiornamento dell'istanza viene avviato tramite la console Amazon EC2 o l'API
StartInstanceRefresh. Assicurati di selezionareReplaceper ottenere la protezione scalabile quando chiamiStartInstanceRefreshse usi la protezione dalla terminazione gestita. -
Durata massima dell'istanza: puoi definire una durata massima quando devi sostituire le istanze del gruppo Auto Scaling. Ciò è utile per pianificare le istanze sostitutive in base a policy di sicurezza interne o alla conformità.
-
Riduzione orizzontale automatica del gruppo Auto Scaling: basato su policy di dimensionamento e azioni di dimensionamento pianificate, il gruppo Auto Scaling supporta il dimensionamento automatico delle istanze. Usando un gruppo Auto Scaling come provider di capacità Amazon ECS, puoi ridurre orizzontalmente le istanze di gruppo Auto Scaling quando non è in esecuzione alcuna attività.
-
Controlli dell'integrità del gruppo Auto Scaling: il gruppo Auto Scaling supporta molti controlli di integrità per gestire la terminazione delle 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 Auto Scaling cerca di sostituire in modo proattivo le istanze spot con un rischio di interruzione più elevato sulla base dell'avviso di ribilanciamento della capacità di Amazon EC2. Il gruppo Auto Scaling termina l'istanza precedente quando quella sostitutiva viene avviata e risulta 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.
Hook del ciclo di vita di Amazon EC2 Auto Scaling con drenaggio delle istanze gestite
Gli hook del ciclo di vita del gruppo Auto Scaling consentono ai clienti di creare soluzioni che vengono attivate da determinati eventi nel ciclo di vita dell'istanza ed eseguono 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. 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, è 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 Auto Scaling e hai anche abilitato il drenaggio delle istanze gestite da 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 Auto Scaling, consulta Hook del ciclo di vita di Amazon EC2 Auto Scaling nella Guida per l'utente di Amazon EC2 Auto Scaling.
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 le istanze Amazon EC2 che eseguono attività dalla terminazione causata da eventi di riduzione orizzontale. 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 le istanze Amazon EC2 che eseguono attività dal dimensionamento. Tuttavia, tutte le istanze che vengono terminate vengono svuotate in modo corretto. |
|
Abilitato |
Disabilitato | Amazon ECS protegge le istanze Amazon EC2 che eseguono attività dalla terminazione causata da eventi di riduzione orizzontale. 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 | Le istanze Amazon EC2 possono essere ridotte orizzontalmente o terminate in qualsiasi momento, anche se eseguono attività 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 delle istanze gestite da Amazon ECS facilita lo spegnimento graduale delle istanze Amazon EC2 in fase di terminazione per diverse ragioni, non solo per una terminazione spot. Ad esempio, è possibile utilizzare il ribilanciamento della capacità di Amazon EC2 Auto Scaling per sostituire in modo proattivo le istanze spot a elevato rischio di interruzione, mentre il drenaggio delle istanze gestite esegue lo spegnimento graduale delle istanze spot sostituite. Quando si utilizza il drenaggio gestito delle istanze, non è necessario abilitare separatamente il drenaggio delle istanze spot, quindi ECS_ENABLE_SPOT_INSTANCE_DRAINING nei dati utente del gruppo Auto Scaling è ridondante. 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 Auto Scaling invia un EventBridge evento 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
La terminazione di Amazon ECS Managed Instances assicura transizioni agevoli dei carichi di lavoro, ottimizzando al contempo i costi e mantenendo lo stato 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
- Terminazione avviata dal cliente
-
Consente il controllo diretto sulla rimozione delle istanze quando bisogna rimuovere immediatamente le istanze di container dal servizio. Invochi 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
-
Amazon ECS Managed Instances monitora continuamente e ottimizza in modo proattivo i costi chiudendo le istanze di container Amazon ECS inattive che non eseguono alcuna attività. ECS utilizza un ritardo euristico per dare alle istanze di container la possibilità di acquisire attività appena avviate prima di essere terminate. Questo può essere personalizzato con il parametro di configurazione del provider di capacità di
scaleInAfterAmazon ECS Managed Instances. - Terminazione dell'aggiornamento dell'infrastruttura
-
Amazon ECS Managed Instances gestisce e aggiorna automaticamente il software sulle istanze di container gestite per garantire sicurezza e conformità mantenendo al contempo la disponibilità del carico di lavoro. Per ulteriori informazioni, consulta la sezione Applicazione di patch in Amazon ECS Managed Instances.
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.