News

AWS Down: Come un Bug DNS ha Paralizzato Amazon per 14 Ore

Punti salienti dell'articolo:
  • Una race condition nel DNS di DynamoDB ha causato un blackout AWS di 14 ore il 20 ottobre
  • Il bug ha rimosso tutti gli indirizzi IP dell'endpoint regionale, rendendo il servizio inaccessibile
  • L'effetto domino ha paralizzato EC2, Lambda, ECS, EKS e servizi governativi globali
  • AWS ha disabilitato l'automazione del DNS fino all'implementazione di nuove salvaguardie
  • I danni economici stimati dall'outage AWS raggiungono centinaia di miliardi di dollari
  • Una singola latenza inaspettata in un componente apparentemente secondario ha innescato il disastro
  • Il postmortem rivela l'importanza critica della sincronizzazione nei sistemi distribuiti
AWS Down: Come un Bug DNS ha Paralizzato Amazon per 14 Ore

Introduzione

Il 20 ottobre 2024, un singolo bug nella gestione DNS di DynamoDB ha innescato una catena di fallimenti in cascata che ha paralizzato l'infrastruttura cloud di Amazon per oltre 14 ore. Amazon ha pubblicato un dettagliato postmortem che rivela come una race condition in un sistema automatizzato di gestione DNS abbia lasciato vuoto il record per l'endpoint regionale di DynamoDB, causando errori a catena su migliaia di servizi dipendenti e provocando danni stimati in centinaia di miliardi di dollari.

Cosa è Accaduto: La Sequenza dell'Outage AWS

L'incidente è iniziato alle 23:48 PDT del 19 ottobre (7:48 UTC del 20 ottobre) nella regione US-EAST-1 di Northern Virginia, quando i clienti hanno segnalato un aumento critico dei tassi di errore nelle API di DynamoDB. La causa radice risiedeva in una race condition nel sistema automatizzato di gestione DNS che ha creato uno stato incoerente impedendo gli aggiornamenti successivi.

La Race Condition nel Sistema DNS

Il sistema di gestione DNS di DynamoDB è composto da due componenti indipendenti per motivi di disponibilità: il DNS Planner, che monitora la salute dei load balancer e crea piani DNS, e il DNS Enactor, che applica le modifiche tramite Amazon Route 53. La race condition si è verificata quando un DNS Enactor ha subito ritardi inusualmente elevati mentre il DNS Planner continuava a generare nuovi piani. Un secondo DNS Enactor ha iniziato ad applicare i piani più recenti ed ha eseguito un processo di pulizia proprio mentre il primo Enactor completava la sua esecuzione ritardata, eliminando il piano precedente e rimuovendo tutti gli indirizzi IP dall'endpoint regionale.

Effetto Domino: Come il Bug si è Propagato

Impatto su DynamoDB e Servizi Interni AWS

Prima dell'intervento manuale, i sistemi che si connettevano a DynamoDB hanno subito guasti DNS, sia il traffico dei clienti che i servizi interni AWS. Questo ha impattato il lancio di istanze EC2 e la configurazione di rete. Il DropletWorkflow Manager (DWFM), che mantiene i lease per i server fisici che ospitano le istanze EC2, dipende da DynamoDB.

"Quando i guasti DNS hanno causato il fallimento dei controlli di stato di DWFM, i droplet – i server EC2 – non hanno potuto stabilire nuovi lease per i cambiamenti di stato dell'istanza."

Postmortem Ufficiale AWS

Congestione Massiccia e Cascata di Fallimenti

Dopo il recupero di DynamoDB alle 2:25 AM PDT (9:25 AM UTC), DWFM ha tentato di ristabilire i lease su tutta la flotta EC2. La scala massiccia ha significato che il processo ha impiegato così tanto tempo da causare il timeout dei lease prima del completamento, gettando DWFM in uno stato di "congestive collapse" che ha richiesto intervento manuale fino alle 5:28 AM PDT (12:28 PM UTC).

Successivamente, Network Manager ha iniziato a propagare un enorme backlog di configurazioni di rete ritardate, causando alle istanze EC2 appena lanciate ritardi nella configurazione di rete. Questi ritardi di propagazione hanno colpito il servizio Network Load Balancer (NLB), la cui funzione di health checking ha rimosso le istanze EC2 appena create che hanno fallito i controlli a causa dei ritardi di rete, per poi ripristinarle quando i controlli successivi hanno avuto successo.

Servizi Colpiti e Impatto Globale

Con i lanci di istanze EC2 compromessi, servizi dipendenti inclusi Lambda, Elastic Container Service (ECS), Elastic Kubernetes Service (EKS) e Fargate hanno tutti subito problemi significativi. L'outage prolungato ha interessato siti web e servizi nell'arco di un'intera giornata, impattando anche servizi governativi. Alcune stime sospettano che il caos e i danni risultanti possano raggiungere centinaia di miliardi di dollari.

Le Lezioni Apprese e i Prossimi Passi

Azioni Immediate di AWS

AWS ha disabilitato l'automazione del DNS Planner e DNS Enactor di DynamoDB a livello mondiale fino a quando le salvaguardie non potranno essere messe in atto per prevenire il ripetersi della race condition. Nel suo comunicato di scuse, Amazon ha dichiarato: "Mentre continuiamo a esaminare i dettagli di questo evento su tutti i servizi AWS, cercheremo modi aggiuntivi per evitare l'impatto da un evento simile in futuro e come ridurre ulteriormente il tempo di recupero."

Implicazioni per l'Affidabilità del Cloud

Questo incidente sottolinea l'importanza critica della progettazione di sistemi distribuiti robusti e della prevenzione delle race condition anche nei sistemi di gestione dell'infrastruttura. Una singola latenza inaspettata in un componente apparentemente non critico può innescare una cascata di fallimenti che interessa l'intera economia digitale.

Domande Frequenti

Cos'è una race condition nel sistema DNS di DynamoDB?

Una race condition si verifica quando due processi (DNS Enactor) tentano contemporaneamente di aggiornare lo stesso record DNS senza coordinamento adeguato, causando uno stato inconsistente dove gli indirizzi IP vengono rimossi erroneamente.

Quanti servizi AWS sono stati colpiti dal bug DNS?

Direttamente e indirettamente, tutti i servizi che dipendono da DynamoDB, EC2 e network configuration sono stati impattati, inclusi Lambda, ECS, EKS, Fargate e servizi governativi, oltre a migliaia di applicazioni client.

Quanto è durato l'outage AWS del 20 ottobre?

L'outage AWS ha avuto una durata totale di circa 14 ore, dalle 23:48 PDT del 19 ottobre (7:48 UTC del 20 ottobre) fino alle 5:28 AM PDT del 20 ottobre (12:28 PM UTC) per il recupero completo.

Come AWS previene le race condition nel DNS management?

AWS ha disabilitato l'automazione del DNS Planner e DNS Enactor fino all'implementazione di salvaguardie specifiche, implementando controlli di consistenza più rigidi e meccanismi di sincronizzazione migliorati.

Quali lezioni emergono dal bug DNS di DynamoDB?

L'incident evidenzia come anche un singolo difetto latente in sistemi apparentemente ridondanti può causare fallimenti a cascata globali, evidenziando la necessità di test di resilienza più rigorosi e timeouts ben calibrati.

Il bug DNS ha colpito anche i servizi non-AWS?

Sì, migliaia di aziende e servizi che si appoggiano su AWS hanno subito interruzioni significative, con impatto stimato in centinaia di miliardi di dollari nel danno economico globale.

Introduzione Il 20 ottobre 2024, un singolo bug nella gestione DNS di DynamoDB ha innescato una catena di fallimenti in cascata che ha paralizzato Evol Magazine
Tag:
Amazon