2 poin oleh GN⁺ 2024-03-11 | 1 komentar | Bagikan ke WhatsApp

S3 adalah file, tetapi bukan sistem file

  • Amazon S3 adalah teknologi cloud asli yang diluncurkan pada 2006, disebut sebagai "object storage", tetapi pada praktiknya ditujukan untuk file.
  • Gagasan bahwa S3 adalah "Amazon Cloud Filesystem" merupakan keyakinan yang berguna untuk mendorong orang mengadopsi S3, tetapi kenyataannya S3 bukan sistem file.

Apa itu sistem file, dan "kedalaman" modul

  • API file Unix terdiri dari lima fungsi dasar, dan menyediakan semua yang dibutuhkan untuk membaca dan menulis file.
  • Fungsi-fungsi ini menangani banyak persoalan seperti buffering, page cache, fragmentasi, izin, penjadwalan IO, dan lain-lain tanpa mengeksposnya kepada pengguna.
  • Modul yang dalam memiliki keunggulan karena memungkinkan pengguna memanfaatkan fungsi tanpa harus memikirkan kompleksitasnya.

Karakteristik S3 (ini juga dalam)

  • S3 tidak mengimplementasikan ulang API sistem file Unix, dan cara pemanggilan dasarnya berbeda.
  • API S3 lebih sederhana daripada API file Unix, tetapi memiliki keterbatasan karena objek tidak bisa ditimpa sebagian.

Perangkat lunak sistem file, khususnya database, tidak bisa dipindahkan ke Amazon S3

  • Database membutuhkan tempat untuk menyimpan data, dan ini biasanya disimpan dalam berbagai file di sistem file.
  • Database sangat bergantung pada kemampuan penimpaan parsial, dan hal ini tidak mungkin di S3.

Hal yang dikerjakan S3 dengan baik dan yang tidak

  • Kelebihan S3 adalah bandwidth baca dan tulis yang sangat tinggi.
  • Namun, S3 tidak memiliki penimpaan parsial, operasi rename atau move, dan proses membuat daftar file juga lambat.
  • Meskipun demikian, S3 membutuhkan sedikit pemeliharaan, serta menyederhanakan pekerjaan seperti pengaturan backup, replikasi, dan provisioning.

Pentingnya kedalaman modul antarorganisasi

  • Tidak mengherankan jika S3 menjadi API cloud populer pertama, karena API yang dalam membantu mengelola kompleksitas antarorganisasi.
  • Mengintegrasikan perangkat lunak enterprise yang kompleks seperti SAP adalah pekerjaan yang menyakitkan, dan ini karena SAP bukan modul yang dalam.

Informasi lainnya

  • Artikel ini tidak bermaksud menyatakan bahwa S3 terlalu dibesar-besarkan, melainkan menjelaskan konsep modul yang dalam dibanding modul yang relatif dangkal.
  • Beberapa database dirancang menggunakan API S3 sebagai storage, dan itu memang mungkin, tetapi tidak transparan.
  • Di S3, banyak format file berkinerja lebih buruk dibandingkan disk.

Pendapat GN⁺

  • Penting untuk memahami bahwa S3 bukan pengganti sistem file, melainkan solusi storage yang dioptimalkan untuk use case tertentu. Misalnya, S3 cocok untuk menyimpan dan mentransfer file immutable berukuran besar, tetapi tidak cocok untuk aplikasi yang memerlukan pembaruan parsial yang sering seperti database.
  • Performa dan skalabilitas S3 sangat tinggi, tetapi jika mempertimbangkan efisiensi biaya dan kompleksitas pengelolaan, S3 tidak selalu cocok untuk semua proyek. Sebagai contoh, proyek open source MinIO bisa menjadi alternatif yang baik bagi organisasi yang ingin membangun storage kompatibel S3 di infrastruktur mereka sendiri.
  • Saat menggunakan S3, ada pertimbangan tambahan seperti konsistensi data, biaya jaringan, dan kontrol akses, dan faktor-faktor ini dapat memengaruhi desain sistem secara keseluruhan.
  • Walaupun use case S3 bisa terbatas, untuk aplikasi tertentu seperti data lake atau solusi backup, S3 adalah alat yang sangat kuat. Kemampuannya menyimpan data dengan aman dan mengambilnya kembali dengan cepat saat dibutuhkan memberikan nilai penting bagi banyak bisnis.
  • Artikel ini dapat membantu dalam mengambil keputusan teknis dengan memberikan pemahaman mendalam tentang detail teknis S3 dan use case nyatanya.

1 komentar

 
GN⁺ 2024-03-11
Komentar Hacker News
  • Saya belum pernah mendengar ada masalah dengan ketahanan S3, tetapi saya juga belum pernah melihat klaim-klaim ini diuji. Saya penasaran dengan klaim-klaim tersebut.

    • Ketahanan S3 adalah yang terdepan di industri, dan tidak bisa dibandingkan dengan sistem file tradisional.
    • Pemisahan availability zone AWS lebih unggul daripada penyedia cloud lainnya.
    • S3 sangat memperhatikan integritas data dan bencana alam.
    • S3 dioperasikan pada skala yang cukup besar hingga mampu mendeteksi "bit rot".
    • Untuk data penting, saya tidak akan menyimpannya di tempat lain selain S3.
    • Sumber: orang yang menulis sistem batch S3.
  • Membuat daftar file itu lambat. S3 sangat cepat untuk baca dan tulis, tetapi membuat daftar file sangat lambat.

    • Bukan baca dan tulis cepat di S3 yang berguna, melainkan fitur pembuatan daftar file yang berguna.
    • Pada bucket yang tidak menggunakan versioning, membuat daftar dengan prefiks tertentu pada dasarnya bisa dilakukan dalam waktu konstan.
    • Anda bisa mempartisi data dengan berbagai cara dan menggunakan pengenal yang diperlukan tanpa khawatir soal performa.
  • Saya baru-baru ini terkejut karena membuat daftar file itu lambat. Saat mengerjakan skrip untuk mengelola aset di S3, saya sadar bahwa saya membutuhkan cache daftar file.

    • Ada sekitar 100.000 direktori level akar, dan masing-masing memiliki beberapa direktori yang berisi beberapa file.
    • Perlu 15 menit untuk membuat daftar file secara rekursif.
    • Saya penasaran kenapa Amazon belum menyelesaikan masalah ini.
  • Amazon S3 adalah teknologi cloud asli, dirilis pada 2006. "Objek" sedang populer saat itu dan S3 disebut sebagai "object store".

    • S3 bukan sistem file, melainkan object store.
    • S3 bukan file, dan juga bukan sistem file.
    • Yang diharapkan dari abstraksi file adalah sifat dapat diubah.
    • S3 menyediakan daftar yang dapat berubah dari objek-objek yang tidak dapat diubah.
    • S3 menyelesaikan masalah yang berbeda, dan upaya untuk membuatnya terlihat seperti sistem file berasal dari kesalahpahaman pelanggan.
  • Ada diskusi yang membandingkan API object_store milik Apache Arrow dan yang disediakan Apache OpenDAL.

    • Apache OpenDAL adalah pustaka yang menyediakan API mirip FS untuk berbagai cloud storage termasuk S3.
    • Beberapa sistem basis data seperti GreptimeDB dan Databend menggunakan OpenDAL untuk mengakses data di cloud storage.
    • Solusi lain seperti Alluxio dan JuiceFS juga mengelola antarmuka mirip sistem file di atas S3.
  • Perangkat lunak sistem file, terutama basis data, tidak bisa diporting ke Amazon S3.

    • Namun sebenarnya bisa.
    • Tidak perlu menimpa seluruh file DB setiap kali melakukan INSERT/UPDATE/DELETE.
    • Dalam kasus SQLite, ada alat seperti Litestream yang mendukung replikasi dan pemulihan ke S3.
  • Saya menggunakan Minio sebagai "S3" lokal untuk menyimpan dataset dan checkpoint model.

    • Minio punya banyak fitur yang tidak saya butuhkan.
    • Apa opsi self-hosted node tunggal terbaik saat ini untuk semacam "sesuatu" mirip S3 yang minimal, yang bisa CRUD file dan melihat daftar?
  • Saat membahas S3, layak juga menyebut Backblaze B2.

    • Saya sangat puas karena harganya 3x lebih murah daripada S3.
  • S3 bisa disalahgunakan sebagai sistem file.

    • S3 menginginkan objek, dan di sini ada objek 512 atau 4096 byte yang disebut cluster.