Programmering

Leksjoner fra det nylige AWS S3-utfallet

Amazon S3 understøtter mange AWS-tjenester, inkludert AWS Lambda, Elastic BeanStalk og Amazons eget Service Health Dashboard. Den fungerer også som en gjenstands- og mediebutikk for mange andre internettjenester som stoler på den hver dag.

28. februar 2017 opplevde AWS et timelangt utfall av Amazon S3-tjenesten i USA-ØST – 1-regionen. Det skapte en kaskadeffekt av avbrudd over en god del av internett, inkludert tjenester som Dockerhub.

En menneskelig feil viste seg å være grunnårsaken:

Klokka 9:37 PST utførte et autorisert S3-teammedlem ved hjelp av en etablert spillbok en kommando som var ment å fjerne et lite antall servere for et av S3-delsystemene som brukes av S3-faktureringsprosessen. Dessverre ble en av inngangene til kommandoen skrevet feil, og et større sett med servere ble fjernet enn beregnet.

Som det viser seg er det en vanlig misforståelse om forskjellen mellom holdbarhet og tilgjengelighet. Holdbarhet måler hvor pålitelig lagringen er og svarer på spørsmålet "Skal jeg miste dataene mine?" Tilgjengelighet måler derimot hvor tilgjengelig dataene er, dvs. "Skal jeg kunne hente dataene mine?"

AWS S3 tilbyr 99,999999999% holdbarhet i en enkelt region. Hvis vi undersøker Amazons eksempel, betyr det at hvis du lagrer 10.000 objekter i S3, kan i gjennomsnitt et enkelt objekt gå seg vill hver 10. million år. Amazon S3 oppnår dette ved å replikere dataene over flere fasiliteter i en region.

Standard S3-tilgjengelighet av objekter er derimot på 99,99% per år innenfor en region. Hva det betyr er at du i en gitt 12-måneders periode forventer totalt 52 minutter og 33 sekunder for ikke å få tilgang til dataene dine.

AWS tilbyr både IaaS og PaaS tjenester. På IaaS-nivå har AWS-kundene full kontroll over de virtuelle serverne og nettverkene. De kan konfigurere hvilken som helst programvare og tjeneste de ønsker, og de administrerer den alene. Enhver avbrudd er kundens ansvar.

På PaaS-nivå tilbyr AWS fulladerte plattformtjenester som objektlagring, databaser, køer og så videre. Klienten delegerer ansvaret for tilgjengeligheten og holdbarheten til disse tjenestene til den administrerte tjenesteleverandøren - AWS i dette tilfellet. AWS-plattformtjenester som brukes via deres proprietære API, er spesielt sårbare for regionalt svikt på grunn av en menneskelig feil hos AWS.

Menneskelige feil kan forårsake strømbrudd hvor som helst - på stedet, i skyen, administrert eller selvstyrt. Tenk på det nylige Delta-datafeilen som et eksempel på at et helt selvstyrt system går ned. Å delegere ansvaret for å administrere en plattformtjeneste til en skyleverandør, endrer ikke det faktum at menneskelige feil kan redusere den - men det forsterker effekten. Mens Delta-avbruddet bare påvirket Delta, påvirket et AWS S3-utfall en god del av internett.

Heldigvis tilbyr AWS S3 mange verktøy for å redusere virkningen av et strømbrudd. La oss bare vurdere noen få.

S3 replikering på tvers av regioner

Data lagret i en bestemt S3-region replikeres over alle tilgjengelighetssoner og kan opprettholde et strømbrudd i hvilken som helst sone. Det kan imidlertid ikke overleve et strømbrudd i en hel region, som den som skjedde 28. februar. Replikering av S3-objekter på tvers av geografiske regioner bidrar til å tilfredsstille de økte redundanskravene.

Sikkerhetskopier

Replikering på tvers av regioner kan bidra til å øke tilgjengeligheten. Sikkerhetskopier til AWS-breen kan bidra til økt holdbarhet. AWS tilbyr beleilig en automatisk mekanisme for å sikkerhetskopiere objekter i S3 til Glacier.

Vurder innholdsdistribusjon med CloudFront

Hvis du ofte har tilgang til S3-objektene dine, kan det være fornuftig å konfigurere AWS CloudFront til å betjene objekter fra S3. CloudFront vil replikere dataene der brukerne trenger det mest, og kan i noen brukstilfeller bidra til å lindre effekten av et S3-brudd.

Siste tanker

Administrerte plattformtjenester er hjørnesteinen i skytjenester. Å bruke en som S3 kan redusere DevOps-kostnadene og bidra til å bringe applikasjoner raskere på markedet. Mens AWS har vært ekstremt pålitelig opp gjennom årene, har Amazon opplevd selvpåførte avbrudd tidligere. Den nylige S3-avbruddet er ikke noe unntak. En kombinasjon av replikering på tvers av regioner, sikkerhetskopier og distribusjon av innhold bør redusere virkningen av slike avbrudd.

$config[zx-auto] not found$config[zx-overlay] not found