
Mi történt a háttérben?
A gyökérok az AWS DynamoDB DNS-menedzsment rendszerében fellépő szoftverhiba, úgynevezett versenyhelyzet (race condition) volt. Ez a rendszer többek között azzal foglalkozik, hogy időszakonként DNS-konfigurációkat állít elő a hálózaton belüli végpontok számára, ezzel biztosítva a terheléselosztók stabilitását. Ebben a helyzetben két folyamat időzítése ütközött: amint a második folyamat befejezte a legújabb konfiguráció alkalmazását, elindította a korábbi, elavult tervek törlését. Közben az első folyamat – bár jelentős késéssel – mégis lefuttatta egy régi terv érvényesítését, ami felülírta a frissebbet. Az ellenőrzés, amely elvileg kiszűrte volna az elavult terv alkalmazását, ekkorra a késés miatt már hatástalanná vált. Ez a láncolat ahhoz vezetett, hogy minden IP-cím eltűnt a regionális végpontról, a rendszer pedig inkonzisztens állapotba került, amit már csak manuális beavatkozással lehetett helyreállítani.
Mi volt a hiba következménye?
Az AWS us-east-1 régiójában a DynamoDB-re támaszkodó szolgáltatások nem tudtak kapcsolódni: ez nemcsak az ügyfeleket, hanem a cég belső rendszereit is érintette. Mindezek dacára a DynamoDB helyreállítása után is jelentős hálózati torlódás jelentkezett: az EC2 virtuális gépszolgáltatás új példányai ugyan elindultak, de a hálózati állapotok terjedésének késése miatt nem csatlakoztak megfelelően. Ez a torlódás továbbgyűrűzött az AWS terheléselosztóira, ami további kapcsolódási hibákat okozott. Olyan kulcsfontosságú szolgáltatások is érintettek voltak, mint a Redshift, a Lambda, a Fargate vagy az AWS Support Center.
Mi a tanulság?
Különösen fontos kiemelni, hogy a rendelkezésre álló infrastruktúra jelentős része az AWS us-east-1 régióban összpontosul. Ez a régió történelmileg a legrégebben működő, egyben a legnagyobb terhelést viselő csomópont. Mivel az alkalmazások világszerte gyakran ide irányítják az azonosítási, állapot- vagy metaadat-forgalmukat, egy regionális hiba globális problémákhoz vezethet. A jelen helyzet arról is tanúskodik, hogy a DNS megbízható feloldása kritikus fontosságú, hiánya pedig dominószerű hibákat okoz a láncolt szolgáltatásokban. Ebből az következik, hogy nem elsősorban a hibák teljes kizárása a cél, hanem a kritikus egyeduralkodó pontok felszámolása, a régiók közötti redundancia bevezetése és a felkészültség növelése elengedhetetlen a felhőszolgáltatások jövőjében.
