Programmering

Erfaringer fra det nylige AWS S3-udfald

Amazon S3 understøtter mange AWS-tjenester, herunder AWS Lambda, Elastic BeanStalk og Amazons eget Service Health Dashboard. Det fungerer også som et objekt og en mediebutik for mange andre internettjenester, der stoler på det hver dag.

Den 28. februar 2017 oplevede AWS et timelangt udfald af Amazon S3-tjenesten i USA-ØST – 1-regionen. Det skabte en kaskadeffekt af afbrydelser på tværs af en god del af internettet, herunder tjenester som Dockerhub.

En menneskelig fejl viste sig at være grundårsagen:

Kl. 9:37 PST udførte et autoriseret S3-teammedlem ved hjælp af en etableret playbook en kommando, der var beregnet til at fjerne et lille antal servere til et af S3-undersystemerne, der bruges af S3-faktureringsprocessen. Desværre blev en af ​​indgangene til kommandoen indtastet forkert, og et større sæt servere blev fjernet end beregnet.

Som det viser sig, er der en almindelig misforståelse om forskellen mellem holdbarhed og tilgængelighed. Holdbarhed måler, hvor pålidelig opbevaring er og besvarer spørgsmålet "Mister jeg mine data?" Tilgængelighed måler på den anden side, hvor tilgængelige dataene er, dvs. "Vil jeg være i stand til at hente mine data?"

AWS S3 tilbyder 99,999999999% holdbarhed inden for en enkelt region. Hvis vi undersøger Amazons eksempel, betyder det, at hvis du gemmer 10.000 objekter i S3, kan et enkelt objekt i gennemsnit gå tabt en gang hver 10. million år. Amazon S3 opnår dette ved at replikere data på tværs af flere faciliteter i en region.

Standard S3-tilgængelighed af objekter ligger derimod på 99,99% om året inden for en region. Hvad det betyder er, at du i en given periode på 12 måneder skal forvente i alt 52 minutter og 33 sekunder for ikke at få adgang til dine data.

AWS tilbyder både IaaS- og PaaS-tjenester. På IaaS-niveau har AWS-kunder fuld kontrol over de virtuelle servere og netværk. De kan konfigurere enhver software og service, de ønsker, og de administrerer det alene. Enhver afbrydelse er kundens ansvar.

På PaaS-niveau tilbyder AWS fuldt administrerede platformstjenester såsom objektlagring, databaser, køer og så videre. Klienten delegerer ansvaret for tilgængelighed og holdbarhed af disse tjenester til den administrerede tjenesteudbyder - AWS i dette tilfælde. AWS-platformtjenester, der bruges via deres proprietære API, er særligt sårbare over for et regionalt svigt på grund af en menneskelig fejl hos AWS.

Menneskelige fejl kan forårsage afbrydelse hvor som helst - på stedet, i skyen, administreret eller selvhostet. Overvej det nylige Delta-computernedbrud som et eksempel på, at et helt selvhostet system går ned. Delegering af ansvaret for styring af en platformstjeneste til en cloududbyder ændrer ikke det faktum, at menneskelige fejl kan bringe det ned - men det forstærker virkningen. Mens Delta-afbrydelsen kun påvirkede Delta, påvirkede en AWS S3-afbrydelse et godt stykke internet.

Heldigvis tilbyder AWS S3 rigelige værktøjer til at reducere virkningen af ​​et driftsstop. Lad os overveje nogle få.

S3 replikation på tværs af regioner

Data gemt i en bestemt S3-region replikeres på tværs af alle tilgængelighedszoner og kan opretholde et afbrydelse i enhver zone. Det kan dog ikke overleve et udfald i en hel region som den, der skete den 28. februar. Replikering af S3-objekter på tværs af geografiske regioner hjælper med at opfylde de øgede krav til redundans.

Sikkerhedskopier

Replikering på tværs af regioner kan hjælpe med at øge tilgængeligheden. Sikkerhedskopier til AWS Glacier kan bidrage til øget holdbarhed. Bekvemt tilbyder AWS en automatisk mekanisme til sikkerhedskopiering af objekter i S3 til Glacier.

Overvej indholdsdistribution med CloudFront

Hvis der ofte er adgang til dine S3-objekter, kan det give mening at konfigurere AWS CloudFront til at betjene objekter fra S3. CloudFront replikerer dataene, hvor brugerne har mest brug for det, og kan i nogle brugstilfælde hjælpe med at lindre virkningerne af et S3-udfald.

Afsluttende tanker

Managed platform-tjenester er hjørnestenen i cloud-tjenester. Brug af en som S3 kan reducere DevOps-omkostninger og hjælpe med at bringe applikationer hurtigere på markedet. Mens AWS har været yderst pålidelig gennem årene, har Amazon oplevet selvforskyldte afbrydelser tidligere. Den nylige S3-afbrydelse er ingen undtagelse. En kombination af replikering på tværs af regioner, sikkerhedskopier og distribution af indhold bør reducere virkningen af ​​sådanne afbrydelser.