Amazon S3 je základom mnohých služieb AWS, vrátane AWS Lambda, Elastic BeanStalk a vlastného Amazon Service Health Dashboard. Slúži tiež ako objekt a mediálny obchod pre mnoho ďalších internetových služieb, ktoré sa na ne každý deň spoliehajú.
28. februára 2017 došlo v AWS k hodinovému výpadku služby Amazon S3 v regióne US-EAST – 1. To vytvorilo kaskádový efekt výpadkov na dobrej časti internetu vrátane služieb ako Dockerhub.
Ukázalo sa, že hlavnou príčinou bola ľudská chyba:
O 9:37 PST vykonal autorizovaný člen tímu S3 pomocou zavedenej príručky príkaz, ktorý bol určený na odstránenie malého počtu serverov pre jeden zo subsystémov S3, ktoré sa používajú pri fakturačnom procese S3. Bohužiaľ, jeden zo vstupov do príkazu bol zadaný nesprávne a bola odstránená väčšia sada serverov, ako bolo zamýšľané.
Ako sa ukazuje, existuje častá mylná predstava o rozdiele medzi trvanlivosťou a dostupnosťou. Trvanlivosť meria, ako spoľahlivé je úložisko, a odpovedá na otázku „Stratím svoje údaje?“ Dostupnosť na druhej strane meria mieru dostupnosti údajov, t. J. „Budem môcť svoje údaje získať?“
AWS S3 ponúka životnosť 99,999999999% v jednom regióne. Ak preskúmame príklad Amazonu, znamená to, že ak uložíte 10 000 objektov v S3, priemerne sa jeden objekt môže stratiť každých 10 miliónov rokov. Amazon S3 toho dosahuje replikáciou údajov vo viacerých zariadeniach v rámci regiónu.
Štandardná dostupnosť objektov S3 je na druhej strane v rámci regiónu na 99,99% ročne. To znamená, že za dané obdobie 12 mesiacov by ste mali celkovo čakať 52 minút a 33 sekúnd, keď nebudete mať prístup k svojim údajom.
AWS ponúka služby IaaS aj PaaS. Na úrovni IaaS majú zákazníci AWS úplnú kontrolu nad virtuálnymi servermi a sieťami. Môžu si nakonfigurovať akýkoľvek softvér a službu, po ktorej túžia, a spravujú si ich sami. Za akýkoľvek výpadok zodpovedá zákazník.
Na úrovni PaaS ponúka AWS plne spravované služby platformy, ako sú ukladanie objektov, databázy, fronty atď. Klient deleguje zodpovednosť za dostupnosť a trvanlivosť týchto služieb na poskytovateľa spravovaných služieb - v tomto prípade AWS. Služby platformy AWS, ktoré sa využívajú prostredníctvom ich vlastného API, sú obzvlášť zraniteľné voči regionálnemu výpadku v dôsledku ľudskej chyby v AWS.
Ľudská chyba môže spôsobiť výpadok kdekoľvek - lokálne, v cloude, spravovaný alebo hosťovaný sám. Zvážte nedávny výpadok počítača Delta ako príklad zlyhania celého systému s vlastným hostiteľom. Delegovanie zodpovednosti za správu služby platformy na poskytovateľa cloudu nemení nič na fakte, že ľudská chyba ju môže znížiť - ale zosilňuje jej dopad. Zatiaľ čo výpadok Delta mal dopad iba na Delta, výpadok AWS S3 mal dopad na poriadny kus internetu.
Našťastie AWS S3 ponúka dostatok nástrojov na zníženie dopadu výpadku. Uvažujme len o niekoľkých.
Medziregionálna replikácia S3
Dáta uložené v konkrétnej oblasti S3 sa replikujú vo všetkých zónach dostupnosti a môžu spôsobiť výpadok v ktorejkoľvek zóne. Nemôže však prežiť výpadok v celom regióne, napríklad v tom, ktorý sa stal 28. februára. Replikácia objektov S3 v geografických regiónoch pomáha uspokojiť zvýšené požiadavky na nadbytočnosť.
Zálohy
Medziregionálna replikácia môže pomôcť zvýšiť dostupnosť. Zálohy na ľadovec AWS môžu prispieť k zvýšeniu odolnosti. AWS pohodlne ponúka automatický mechanizmus na zálohovanie objektov v S3 na ľadovec.
Zvážte distribúciu obsahu pomocou CloudFront
Ak sú vaše objekty S3 často prístupné, môže mať zmysel nakonfigurovať AWS CloudFront tak, aby slúžil objektom zo S3. CloudFront bude replikovať údaje tam, kde to používatelia najviac potrebujú, a v niektorých prípadoch môže pomôcť zmierniť následky výpadku S3.
Záverečné myšlienky
Služby spravovanej platformy sú základným kameňom cloudových služieb. Používanie jedného ako S3 môže znížiť náklady na DevOps a pomôcť pri rýchlejšom uvádzaní aplikácií na trh. Zatiaľ čo AWS bola v priebehu rokov mimoriadne spoľahlivá, Amazon v minulosti zaznamenal výpadky, ktoré si sám spôsobil. Výnimkou nie je ani nedávny výpadok S3. Kombinácia medziregionálnej replikácie, zálohovania a distribúcie obsahu by mala znížiť dopad týchto výpadkov.