Pelajaran yang diperoleh daripada pemadaman AWS S3 baru-baru ini

Amazon S3 menyokong banyak perkhidmatan AWS, termasuk AWS Lambda, Elastic BeanStalk, dan Health Health Dashboard Amazon sendiri. Ia juga berfungsi sebagai objek dan gedung media untuk banyak perkhidmatan internet lain yang bergantung padanya setiap hari.

Pada 28 Februari 2017, AWS mengalami gangguan selama beberapa jam dari Perkhidmatan Amazon S3 di wilayah AS-TIMUR-1. Itu menimbulkan kesan gangguan dari sebilangan besar internet, termasuk perkhidmatan seperti Dockerhub.

Kesalahan manusia ternyata menjadi punca:

Pada 09:37 PST, ahli pasukan S3 yang sah menggunakan buku main yang mapan melaksanakan perintah yang bertujuan untuk membuang sebilangan kecil pelayan untuk salah satu subsistem S3 yang digunakan oleh proses penagihan S3. Sayangnya, salah satu input perintah dimasukkan dengan salah, dan sekumpulan pelayan yang lebih besar dikeluarkan daripada yang dimaksudkan.

Ternyata, ada kesalahpahaman umum tentang perbezaan antara ketahanan dan ketersediaan. Ketahanan mengukur seberapa boleh dipercayai penyimpanan dan menjawab soalan "Adakah saya akan kehilangan data saya?" Ketersediaan, sebaliknya, mengukur seberapa mudah data dapat diakses, yaitu "Adakah saya akan dapat mengambil data saya?"

AWS S3 menawarkan ketahanan 99.999999999% dalam satu wilayah. Sekiranya kita meneliti contoh Amazon, itu bermaksud jika anda menyimpan 10,000 objek di S3, rata-rata satu objek akan hilang sekali setiap 10 juta tahun. Amazon S3 mencapainya dengan mereplikasi data di pelbagai kemudahan di rantau ini.

Ketersediaan objek Standard S3, di sisi lain, berada pada 99,99% per tahun dalam satu wilayah. Maksudnya adalah bahawa dalam jangka masa 12 bulan tertentu, anda harus mengharapkan sejumlah 52 minit dan 33 saat tidak dapat mengakses data anda.

AWS menawarkan perkhidmatan IaaS dan PaaS. Pada peringkat IaaS, pelanggan AWS mempunyai kawalan penuh terhadap pelayan dan rangkaian maya. Mereka dapat mengkonfigurasi perisian dan perkhidmatan yang mereka inginkan, dan mereka menguruskannya sendiri. Sebarang gangguan adalah tanggungjawab pelanggan.

Di peringkat PaaS, AWS menawarkan perkhidmatan platform yang diuruskan sepenuhnya seperti penyimpanan objek, pangkalan data, barisan dan sebagainya. Pelanggan menyerahkan tanggungjawab untuk ketersediaan dan ketahanan perkhidmatan ini kepada penyedia perkhidmatan terurus - AWS dalam kes ini. Perkhidmatan platform AWS yang digunakan melalui API proprietari mereka sangat rentan terhadap pemadaman wilayah kerana kesalahan manusia di AWS.

Kesalahan manusia boleh menyebabkan gangguan di mana sahaja - di premis, di awan, diurus, atau dihoskan sendiri. Pertimbangkan pemadaman komputer Delta baru-baru ini sebagai contoh keseluruhan sistem yang dihoskan sendiri. Mendelegasikan tanggungjawab untuk menguruskan perkhidmatan platform kepada penyedia awan tidak mengubah hakikat bahawa kesalahan manusia dapat menurunkannya - tetapi itu akan meningkatkan kesannya. Walaupun pemadaman Delta hanya mempengaruhi Delta, gangguan AWS S3 memberi kesan buruk kepada internet.

Nasib baik, AWS S3 menawarkan banyak alat untuk mengurangkan kesan gangguan. Mari kita pertimbangkan beberapa.

Replikasi rentas rantau S3

Data yang disimpan di wilayah S3 tertentu direplikasi di semua zon ketersediaan dan dapat menyebabkan gangguan di zona mana pun. Namun, tidak dapat bertahan dari gangguan di seluruh wilayah, seperti yang terjadi pada 28 Februari. Meniru objek S3 di seluruh wilayah geografi membantu memenuhi peningkatan keperluan berlebihan.

Sandaran

Replikasi merentas wilayah dapat membantu meningkatkan ketersediaan. Sandaran ke AWS Glacier dapat menyumbang kepada peningkatan daya tahan. Dengan mudah, AWS menawarkan mekanisme automatik untuk membuat sandaran objek di S3 ke Glacier.

Pertimbangkan pengedaran kandungan dengan CloudFront

Sekiranya objek S3 anda sering diakses, mungkin masuk akal untuk mengkonfigurasi AWS CloudFront untuk melayani objek dari S3. CloudFront akan meniru data di mana pengguna sangat memerlukannya dan dapat membantu mengurangkan kesan gangguan S3 dalam beberapa kes penggunaan.

Pemikiran terakhir

Perkhidmatan platform terurus adalah tonggak perkhidmatan cloud. Menggunakan satu seperti S3 dapat mengurangkan kos DevOps dan membantu membawa aplikasi ke pasaran lebih cepat. Walaupun AWS sangat dipercayai selama bertahun-tahun, Amazon telah mengalami gangguan diri pada masa lalu. Pemadaman S3 baru-baru ini tidak terkecuali. Beberapa gabungan replikasi, sandaran dan pengedaran kandungan merentas rantau harus mengurangkan kesan gangguan tersebut.