Pelajaran yang dipetik dari pemadaman AWS S3 baru-baru ini

Amazon S3 mendukung banyak layanan AWS, termasuk AWS Lambda, Elastic BeanStalk, dan Service Health Dashboard milik Amazon. Ini juga berfungsi sebagai objek dan media penyimpanan untuk banyak layanan internet lainnya yang mengandalkannya setiap hari.

Pada 28 Februari 2017, AWS mengalami pemadaman selama berjam-jam untuk Layanan Amazon S3 di wilayah AS-TIMUR – 1. Itu menciptakan efek pemadaman berjenjang di sebagian besar internet, termasuk layanan seperti Dockerhub.

Kesalahan manusia ternyata menjadi akar penyebab:

Pada pukul 9:37 PST, anggota tim S3 resmi yang menggunakan buku pedoman yang sudah mapan menjalankan perintah yang dimaksudkan untuk menghapus sejumlah kecil server untuk salah satu subsistem S3 yang digunakan oleh proses penagihan S3. Sayangnya, salah satu masukan ke perintah tidak dimasukkan dengan benar, dan kumpulan server yang lebih besar telah dihapus dari yang diinginkan.

Ternyata, ada kesalahpahaman umum tentang perbedaan antara daya tahan dan ketersediaan. Ketahanan mengukur seberapa andal penyimpanan tersebut dan menjawab pertanyaan "Apakah saya akan kehilangan data saya?" Ketersediaan, di sisi lain, mengukur seberapa dapat diakses data tersebut, yaitu "Apakah saya akan dapat mengambil data saya?"

AWS S3 menawarkan 99.999999999% ketahanan dalam satu wilayah. Jika kami memeriksa contoh Amazon, itu berarti jika Anda menyimpan 10.000 objek di S3, rata-rata satu objek mungkin hilang setiap 10 juta tahun sekali. Amazon S3 menyelesaikannya dengan mereplikasi data di berbagai fasilitas dalam suatu wilayah.

Ketersediaan objek S3 standar, di sisi lain, adalah 99,99% per tahun dalam suatu wilayah. Artinya adalah bahwa dalam periode 12 bulan tertentu Anda akan mengharapkan total 52 menit dan 33 detik tidak dapat mengakses data Anda.

AWS menawarkan layanan IaaS dan PaaS. Di tingkat IaaS, pelanggan AWS memiliki kendali penuh atas server dan jaringan virtual. Mereka dapat mengkonfigurasi perangkat lunak dan layanan apa pun yang diinginkan, dan mengelolanya sendiri. Setiap pemadaman listrik adalah tanggung jawab pelanggan.

Di tingkat PaaS, AWS menawarkan layanan platform terkelola sepenuhnya seperti penyimpanan objek, database, antrean, dan sebagainya. Klien mendelegasikan tanggung jawab atas ketersediaan dan daya tahan layanan ini ke penyedia layanan terkelola - AWS dalam hal ini. Layanan platform AWS yang digunakan melalui API miliknya sangat rentan terhadap pemadaman regional karena kesalahan manusia di AWS.

Kesalahan manusia dapat menyebabkan pemadaman di mana saja - di lokasi, di awan, terkelola, atau dihosting sendiri. Pertimbangkan pemadaman komputer Delta baru-baru ini sebagai contoh dari seluruh sistem yang dihosting sendiri turun. Mendelegasikan tanggung jawab untuk mengelola layanan platform ke penyedia cloud tidak mengubah fakta bahwa kesalahan manusia dapat menurunkannya - tetapi hal itu memperkuat dampaknya. Sementara pemadaman Delta hanya memengaruhi Delta, pemadaman AWS S3 memengaruhi sebagian besar internet.

Untungnya, AWS S3 menawarkan banyak alat untuk mengurangi dampak pemadaman listrik. Mari kita pertimbangkan beberapa saja.

Replikasi lintas wilayah S3

Data yang disimpan di wilayah S3 tertentu direplikasi di semua zona ketersediaan dan dapat mempertahankan pemadaman di zona mana pun. Namun, itu tidak dapat bertahan dari pemadaman di seluruh wilayah, seperti yang terjadi pada 28 Februari. Mereplikasi objek S3 di seluruh wilayah geografis membantu memenuhi persyaratan redundansi yang meningkat.

Cadangan

Replikasi lintas wilayah dapat membantu meningkatkan ketersediaan. Cadangan ke AWS Glacier dapat berkontribusi pada peningkatan daya tahan. Dengan mudah, AWS menawarkan mekanisme otomatis untuk mencadangkan objek di S3 ke Glacier.

Pertimbangkan distribusi konten dengan CloudFront

Jika objek S3 Anda sering diakses, mungkin masuk akal untuk mengonfigurasi AWS CloudFront untuk menyajikan objek dari S3. CloudFront akan mereplikasi data di tempat yang paling dibutuhkan pengguna dan dapat membantu mengurangi efek pemadaman S3 dalam beberapa kasus penggunaan.

Pikiran terakhir

Layanan platform terkelola adalah landasan layanan cloud. Menggunakan yang seperti S3 dapat mengurangi biaya DevOps dan membantu membawa aplikasi ke pasar lebih cepat. Meskipun AWS sangat andal selama bertahun-tahun, Amazon telah mengalami pemadaman yang diakibatkan sendiri di masa lalu. Pemadaman S3 baru-baru ini tidak terkecuali. Beberapa kombinasi replikasi lintas wilayah, cadangan, dan distribusi konten akan mengurangi dampak pemadaman tersebut.