Layanan penyimpanan S3 milik Amazon telah mencapai pencapaian yang mengesankan dengan melayani 1 petabyte per detik menggunakan hard disk drive (HDD) tradisional, memicu diskusi luas tentang bagaimana performa ini dibandingkan dengan alternatif open source dan teknologi apa yang memungkinkannya.
Skala di Balik Performa S3
AWS S3 beroperasi pada skala yang benar-benar masif, menangani lebih dari 100 juta permintaan per detik pada waktu puncak sambil menyimpan lebih dari 100 juta objek. Layanan ini mencapai throughput luar biasa sebesar 1,1 petabyte per detik meskipun mengandalkan terutama pada HDD, yang secara tradisional dianggap sebagai perangkat penyimpanan yang lambat. Performa ini berasal dari rekayasa cerdas yang mengatasi keterbatasan fisik disk berputar melalui paralelisme masif dan arsitektur terdistribusi.
Wawasan kuncinya adalah bahwa meskipun HDD individual lambat karena kendala mekanis seperti waktu pencarian dan latensi rotasi, menyebarkan data di ribuan drive memungkinkan sistem melayani banyak permintaan secara bersamaan. Setiap drive mungkin hanya menangani sebagian kecil dari permintaan tertentu, tetapi bersama-sama mereka menciptakan throughput agregat yang sangat besar.
Metrik Performa AWS S3:
- Throughput: 1,1 petabyte per detik
- Permintaan puncak: 100 juta per detik
- Total objek: 100+ juta tersimpan
- Kapasitas operasi: 800.000 total operasi
- Performa per-node: Puluhan ribu transaksi per detik
Komunitas Mencari Alternatif Open Source
Diskusi ini telah mendorong banyak orang di komunitas teknologi untuk mencari solusi open source yang dapat mencapai performa serupa dengan penyimpanan berbasis HDD. Beberapa alternatif telah muncul dari diskusi komunitas, meskipun masing-masing memiliki trade-off. Ceph dengan RadosGW tampaknya menjadi salah satu opsi yang paling matang, dengan pengguna melaporkan bahwa ia sebenarnya dapat mengungguli S3 untuk beban kerja tertentu yang melibatkan transfer file besar.
Opsi lain termasuk Gluster, yang memasarkan dirinya sebagai mampu menangani penyimpanan terdistribusi besar menggunakan perangkat keras umum, dan proyek-proyek baru seperti Garage yang mengambil pendekatan berbeda untuk masalah yang sama. Namun, sebagian besar solusi ini memerlukan skala yang signifikan di beberapa server untuk mencapai performa terbaiknya, membuatnya kurang cocok untuk deployment yang lebih kecil.
Catatan: RadosGW adalah antarmuka gateway yang kompatibel dengan S3 milik Ceph yang memungkinkan aplikasi mengakses penyimpanan Ceph menggunakan panggilan API S3 standar.
Alternatif S3 Open Source yang Dibahas:
- Ceph + RadosGW: Opsi paling matang, dapat mengungguli performa S3 untuk file berukuran besar
- Gluster: Dipasarkan untuk perangkat keras standar yang umum tersedia, bagus untuk sistem file bersama
- Garage: Proyek yang lebih baru dengan pendekatan desain yang berbeda (tanpa erasure coding)
- MinIO: Memerlukan penyimpanan flash untuk performa optimal
- SeaweedFS: Telah berkembang dengan dukungan RDMA dan erasure coding
Wawasan Arsitektur Teknis
Anggota komunitas dengan pengetahuan dalam mengungkapkan bahwa arsitektur S3 terdiri dari beberapa lapisan layanan web berbasis Java, dengan sebagian besar operasi ditangani secara sinkron daripada melalui antrian. Sistem ini menggunakan pendekatan langsung di mana permintaan pertama kali mencapai server front-end, kemudian menanyakan layanan pengindeksan untuk memetakan nama objek ke lokasi penyimpanan, sebelum akhirnya mengambil data aktual dari node penyimpanan.
Ini adalah contoh terbaik dari berapa banyak transaksi per detik yang dapat ditangani oleh stack layanan web Java yang cukup standar yang pernah saya lihat dalam karir saya.
Arsitektur ini dapat menangani puluhan ribu transaksi per detik per node, menunjukkan bahwa sistem terdistribusi yang dirancang dengan baik dapat mencapai performa luar biasa bahkan dengan stack teknologi konvensional.
Arsitektur Teknis S3 :
- Stack utama: Layanan web berbasis Java
- Alur permintaan: Server front-end → Layanan pengindeksan → Node penyimpanan
- Komunikasi: Protokol STUMPY khusus (mungkin telah bermigrasi ke HTTP )
- Layanan: Sekitar 12 layanan utama (data historis)
- Jenis operasi: Terutama respons API sinkron, antrian minimal
Realitas untuk Deployment yang Lebih Kecil
Meskipun pendekatan S3 bekerja pada skala masif, diskusi komunitas mengungkapkan tantangan bagi organisasi yang lebih kecil yang mencoba mereplikasi performa serupa. Banyak sistem penyimpanan open source dioptimalkan untuk scaling horizontal di banyak server daripada memaksimalkan performa pada node tunggal. Ini menciptakan kesenjangan bagi pengguna yang menginginkan performa seperti S3 tetapi tidak memiliki infrastruktur skala datacenter.
Beberapa anggota komunitas bereksperimen dengan pendekatan hibrida, menggabungkan ZFS untuk manajemen penyimpanan lokal dengan sistem seperti Garage untuk kompatibilitas S3. Solusi ini bertujuan untuk memanfaatkan kekuatan kedua teknologi sambil bekerja dalam kendala deployment perangkat keras yang lebih kecil.
Diskusi ini menyoroti pelajaran penting: meskipun prinsip-prinsip dasar kesuksesan S3 dapat dipahami dan direplikasi, mencapai hasil serupa memerlukan skala masif atau solusi rekayasa kreatif yang disesuaikan dengan kasus penggunaan spesifik.
Referensi: How AWS S3 serves 1 petabyte per second on top of slow HDDs