De enorme storing die de cloudcomputingdiensten van Amazon vorige week trof, is veroorzaakt door een fout uitgevoerde upgrade.

Tijdens een opschalingsoperatie in het datacenter in Virginia werd het verkeer per ongeluk omgeleid naar een reserverouter in plaats van de primaire router van Elastic Block Store (EBS), de opslagmodules die horen bij de Elastic Compute Cloud (EC2) van Amazon. Dat staat te lezen in het bijzonder gedetailleerde ‘post-mortem’ verslag dat Amazon eindelijk heeft vrijgegeven.

Interne DoS-aanval

De redundante router had echter veel minder capaciteit en crashte door deze interne DoS-aanval. En omdat de primaire router niet gebruikt werd, raakten veel EBS-nodes volledig geïsoleerd. De nodes zijn zo geprogrammeerd dat als ze contact verliezen met hun mirror, ze automatisch een nieuwe mirror gaan aanmaken.

Het gevolg was dat alle nog beschikbare opslag in een mum van tijd was bezet, waarna de nodes, op zoek naar vrije opslag, in een paniekaanval raakten. Hierdoor schoot de hele EBS beheerinterface in de stress, waardoor ook EBS API's van andere zogenaamde Availability Zones binnen de regio faalden. Ook een andere dienst, Amazon Relational Database Service (RDS) werd getroffen.

Servers bijprikken

Technici van Amazon waren vervolgens dagen bezig om al deze cloudbrandjes te blussen. Zo is het bedrijf als een gek fysiek servers gaan verplaatsen en installeren om de 're-mirroring storm' van EBS-nodes te kunnen luwen.

Amazon biedt zijn excuses aan en belooft maatregelen. Het upgradeproces zal verder worden geautomatiseerd, zodat er minder ruimte is voor menselijk falen. Ook erkent het concern dat de communicatie tijdens de storing beter kon. Alle klanten die instances en volumes hadden in de getroffen Zone, ook al hadden ze geen downtime, krijgen krediet voor 10 dagen.

Naïeve klanten

Het is duidelijk dat Amazon hard heeft gefaald. Maar dat veel klanten dagenlang plat lagen, is gedeeltelijk ook hun eigen schuld. Anderen, die zelf een doordachte architectuur hebben voor hun applicaties in de cloud, hadden namelijk geen last en bleven online.