Programmēšana

Mācības no nesenās AWS S3 darbības pārtraukšanas

Amazon S3 ir pamats daudziem AWS pakalpojumiem, tostarp AWS Lambda, Elastic BeanStalk un paša Amazon Service Health Dashboard. Tas kalpo arī kā objektu un multivides veikals daudziem citiem interneta pakalpojumiem, kas katru dienu paļaujas uz to.

2017. gada 28. februārī AWS vairākas stundas pārtrauca Amazon S3 pakalpojuma darbību ASV-EAST – 1 reģionā. Tas radīja kaskādes efektu no pārtraukumiem visā lielajā interneta daļā, ieskaitot tādus pakalpojumus kā Dockerhub.

Cilvēka kļūda izrādījās galvenais cēlonis:

Pulksten 9:37 PST pilnvarotais S3 komandas loceklis, izmantojot izveidotu playbook, izpildīja komandu, kuras mērķis bija noņemt nelielu skaitu serveru vienai no S3 apakšsistēmām, kuras izmanto S3 norēķinu process. Diemžēl viens no komandas ievadiem tika ievadīts nepareizi, un tika noņemts lielāks serveru komplekts, nekā paredzēts.

Kā izrādās, pastāv izplatīts nepareizs priekšstats par atšķirību starp izturību un pieejamību. Izturība mēra, cik droša ir krātuve, un atbild uz jautājumu "Vai es pazaudēšu savus datus?" No otras puses, pieejamība mēra datu pieejamību, t.i., “Vai es varēšu izgūt savus datus?”

AWS S3 nodrošina 99,999999999% izturību vienā reģionā. Ja mēs pārbaudām Amazon piemēru, tas nozīmē, ka, ja S3 glabājat 10 000 objektu, vidēji viens objekts var pazust reizi 10 miljonos gadu. Amazon S3 to panāk, atkārtojot datus vairākos reģiona objektos.

Savukārt standarta S3 objektu pieejamība reģionā ir 99,99% gadā. Tas nozīmē, ka jebkurā noteiktā 12 mēnešu periodā jums vajadzētu sagaidīt 52 minūtes un 33 sekundes, kad nevarēsiet piekļūt saviem datiem.

AWS piedāvā gan IaaS, gan PaaS pakalpojumus. IaaS līmenī AWS klientiem ir pilnīga kontrole pār virtuālajiem serveriem un tīkliem. Viņi var konfigurēt jebkuru vēlamo programmatūru un pakalpojumu un paši to pārvaldīt. Par jebkuru pārtraukumu atbild klients.

PaaS līmenī AWS piedāvā pilnībā pārvaldītus platformas pakalpojumus, piemēram, objektu glabāšanu, datu bāzes, rindas un tā tālāk. Klients atbildību par šo pakalpojumu pieejamību un ilgtspēju deleģē pārvaldītajam pakalpojumu sniedzējam - AWS šajā gadījumā. AWS platformas pakalpojumi, kas tiek izmantoti, izmantojot viņu patentēto API, ir īpaši neaizsargāti pret reģionālu pārtraukumu, jo AWS ir radusies cilvēciska kļūda.

Cilvēciskas kļūdas var izraisīt pārtraukumu jebkurā vietā - uz vietas, mākonī, pārvaldībā vai pašu mitinātā vietā. Apsveriet neseno Delta dīkstāves pārtraukumu kā piemēru tam, kā pazeminās visa pašu mitināta sistēma. Atbildības par platformas pakalpojuma pārvaldību deleģēšana mākoņa nodrošinātājam nemaina faktu, ka cilvēciskas kļūdas var to mazināt, taču tas palielina ietekmi. Kamēr Delta pārtraukums ietekmēja tikai Delta, AWS S3 pārtraukums ietekmēja labu interneta daļu.

Par laimi, AWS S3 piedāvā daudz rīku, lai samazinātu pārtraukuma ietekmi. Apsvērsim tikai dažus.

S3 pārreģionu replikācija

Dati, kas tiek glabāti noteiktā S3 reģionā, tiek atkārtoti visās pieejamības zonās un var uzturēt pārtraukumu jebkurā zonā. Tomēr tas nevar pārdzīvot pārtraukumu visā reģionā, piemēram, tajā, kas notika 28. februārī. S3 objektu atkārtošana visos ģeogrāfiskajos reģionos palīdz apmierināt paaugstinātās atlaišanas prasības.

Dublējumi

Starpreģionu replikācija var palīdzēt palielināt pieejamību. Dublējumi AWS ledājā var palielināt izturību. Ērti AWS piedāvā automātisku mehānismu S3 objektu dublēšanai uz ledāju.

Apsveriet satura izplatīšanu, izmantojot CloudFront

Ja jūsu S3 objekti tiek bieži piekļūti, var būt lietderīgi konfigurēt AWS CloudFront, lai apkalpotu objektus no S3. CloudFront atkārtos datus tur, kur lietotājiem tas visvairāk nepieciešams, un dažos lietošanas gadījumos tas var palīdzēt mazināt S3 pārtraukuma sekas.

Pēdējās domas

Pārvaldīti platformu pakalpojumi ir mākoņpakalpojumu stūrakmens. Tāda veida kā S3 izmantošana var samazināt DevOps izmaksas un palīdzēt ātrāk ieviest lietojumprogrammas. Lai gan AWS gadu gaitā ir bijusi ārkārtīgi uzticama, Amazon agrāk ir piedzīvojis pašnāvību. Nesenais S3 pārtraukums nav izņēmums. Dažām starpreģionu replikācijas, dublējumu un satura izplatīšanas kombinācijām vajadzētu samazināt šādu pārtraukumu ietekmi.

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