Hoe een kleine bug uitmondde in een enorme storing die het internet platlegde

A enorme AWS-storing De maandag die enkele van de populairste apps en diensten ter wereld platlegde, begon allemaal met een storing.
De bug – die zich voordeed toen Twee geautomatiseerde systemen probeerden dezelfde gegevens tegelijkertijd bij te werken – wat uitmondde in iets veel ernstigers dat de technici van Amazon probeerden op te lossen, zei het bedrijf donderdag in een postmortale beoordeling.
De enorme uitval van de cloudservice betekende dat mensen geen eten konden bestellen, niet konden communiceren met ziekenhuisnetwerken, geen toegang konden krijgen tot mobiel bankieren of verbinding konden maken met hun beveiligingssystemen en smart home-apparaten. Grote mondiale bedrijven, waaronder Netflix, Starbucks en United Airlines, konden klanten tijdelijk geen toegang geven tot hun online diensten.
“We verontschuldigen ons voor de impact die deze gebeurtenis op onze klanten heeft gehad”, zegt Amazon in een verklaring op de AWS-website. “We weten dat dit evenement een aanzienlijke impact heeft gehad op veel klanten. We zullen er alles aan doen om van dit evenement te leren en het te gebruiken om onze beschikbaarheid nog verder te verbeteren.”
Op een hoog niveau kwam het probleem voort uit het feit dat twee programma’s tegelijkertijd strijden om dezelfde DNS-vermelding (in wezen een record in het internettelefoonboek) te schrijven, wat resulteerde in een lege vermelding. Dat bracht meerdere AWS-services in verwarring.
“De analogie van een telefoonboek is treffend omdat de mensen aan de andere lijn er wel zijn, maar als je niet weet hoe je ze kunt bereiken, dan heb je een probleem”, zegt Angelique Medina, hoofd van Cisco’s ThousandEyes Internet Intelligence-netwerkmonitoringdienst, tegen CNN. ‘En dat telefoonboek ging feitelijk verloren.’
Indranil Gupta, hoogleraar elektrotechniek en computertechniek aan de Universiteit van Illinois, gebruikte een klaslokaalanalogie om de technische analyse van Amazon uit te leggen in een e-mail aan CNN. Stel dat twee studenten, de één een snelle werker en de ander een langzamere werker, wordt gevraagd om samen te werken aan een gedeeld notitieboekje.
De langzamere leerling “let op in korte uitbarstingen, maar hun werk kan in tegenspraak zijn met het werk van de snellere leerling”, schreef hij. Tegelijkertijd kan het zijn dat de snellere leerling ‘probeert voortdurend dingen snel te ‘repareren” en de langzamere leerling te verwijderen het werk van de leerling omdat het verouderd is.
“Het resultaat… een lege pagina (of doorgestreepte pagina) in het labnotitieboekje, wanneer de leraar het komt inspecteren”, schreef hij.
Die “lege pagina” haalde de DynamoDB-database van AWS neer, waardoor een cascade-effect ontstond dat gevolgen had voor andere AWS-diensten zoals EC2, dat virtuele servers biedt voor het ontwikkelen en implementeren van apps, en Network Load Balancer, dat de eisen binnen het netwerk beheert. Toen DynamoDB weer online kwam, probeerde EC2 al zijn servers in één keer weer online te brengen, maar dat lukte niet.
Amazon brengt na de storing een aantal wijzigingen aan in zijn systemen, waaronder het oplossen van het ‘race condition-scenario’, waardoor de twee systemen elkaars werk in de eerste plaats overschreven, en het toevoegen van een extra testpakket voor zijn EC2-service.
Storingen zoals die van maandag zijn, hoewel zeldzaam, slechts een realiteit, zei Gupta. Maar waar het om gaat is hoe dergelijke kwesties worden aangepakt.
“Grootschalige storingen zoals deze gebeuren gewoon. Je kunt niets doen om het te voorkomen, net zoals (hoe) mensen ziek worden”, vertelde Gupta telefonisch aan CNN. “Maar ik denk dat de manier waarop het bedrijf op de storingen reageert en klanten op de hoogte houdt, heel erg belangrijk is.”



