11 poin oleh GN⁺ 14 hari lalu | Belum ada komentar. | Bagikan ke WhatsApp
  • Untuk mengurangi inefisiensi dalam pemindahan data skala besar, diperkenalkan S3 Files yang memungkinkan akses langsung ke data S3 seperti sistem file
  • Fitur ini mengintegrasikan Amazon EFS dan S3 sehingga bucket S3 dapat di-mount sebagai NFS dan dibaca-tulis dari EC2, container, Lambda, dan lainnya
  • Secara internal, fitur ini menggunakan struktur stage dan commit untuk secara berkala menerapkan perubahan ke S3, serta mendukung sinkronisasi dua arah antara file dan objek
  • Bersama S3 Tables dan S3 Vectors, S3 Files menjadi komponen inti yang memperluas S3 menjadi platform data terpadu
  • S3 kini berevolusi melampaui sekadar penyimpanan, menjadi ruang kerja terpadu berbasis data yang memberi fondasi bagi developer untuk memanfaatkan data secara langsung

Perubahan pada S3 dan desain S3 Files

  • Sulitnya memindahkan data dan titik awal S3 Files

    • Proses memindahkan data dalam skala besar telah menjadi sumber inefisiensi yang terus-menerus di berbagai industri, dari riset ilmiah hingga machine learning
    • Dalam kasus riset genomik di UBC, para peneliti menghabiskan banyak waktu untuk menyalin data antara S3 dan sistem file lokal
    • Data friction ini muncul karena berbagai tool mengakses data dengan cara yang berbeda-beda
    • Untuk mengurangi friction tersebut, S3 Files dirancang agar data S3 bisa diakses langsung seperti sistem file
  • Pengembangan berbasis agent dan pentingnya data

    • Perkembangan agentic tooling mendorong peningkatan pesat dalam kecepatan dan keragaman pengembangan aplikasi
    • Karena hambatan untuk menulis kode makin rendah, tercipta lingkungan di mana pakar domain dapat membangun aplikasi secara langsung
    • Umur aplikasi makin pendek, sementara data muncul sebagai aset inti yang bertahan dalam jangka panjang
    • Storage tidak lagi sekadar tempat menyimpan, tetapi harus menjadi lapisan abstraksi yang memisahkan data dari aplikasi agar bisa terus dimanfaatkan

Primitive data baru di S3

  • S3 Tables

    • Untuk menangani data terstruktur, S3 memperkenalkan S3 Tables berbasis Apache Iceberg
    • Sambil mempertahankan kemampuan Iceberg, layanan ini juga menyediakan perlindungan integritas data, compaction otomatis, replikasi lintas region, dan lainnya
    • Saat ini, lebih dari 2 juta tabel telah disimpan di S3 Tables, dan berbagai aplikasi dibangun di atasnya
  • S3 Vectors

    • Perkembangan AI mendorong peningkatan kebutuhan akan indeks vektor
    • Database vektor tradisional menyimpan indeks di memori atau SSD, tetapi pendekatan ini memiliki batasan biaya dan skalabilitas
    • S3 Vectors menyediakan indeks vektor yang sepenuhnya elastis dengan profil biaya, performa, dan durabilitas yang mirip dengan objek S3
    • Layanan ini dapat diskalakan dari ratusan hingga miliaran record, serta menyediakan endpoint API untuk scalar similarity search

Hadirnya S3 Files

  • Gambaran umum

    • S3 Files mengintegrasikan Amazon EFS ke dalam S3, sehingga data S3 dapat diakses langsung seperti network file system (NFS)
    • Dari EC2, container, Lambda, dan lainnya, bucket atau prefix S3 dapat di-mount lalu dibaca dan ditulis seperti file biasa
    • Perubahan akan otomatis diterapkan ke S3, sehingga mendukung sinkronisasi dua arah antara file dan objek
  • Tantangan desain

    • Sistem file dan object storage memiliki model data yang pada dasarnya berbeda
    • Pada awalnya, EFS dan S3 ingin digabungkan secara sederhana, tetapi yang tersisa hanya “kompromi yang sulit diterima (unpalatable compromises)”
    • File mendukung perubahan granular dan akses bersamaan, sedangkan objek mengasumsikan immutability dan pembaruan per objek secara utuh
    • Sistem notifikasi event S3 memproses lebih dari 300 miliar notifikasi per hari dan bekerja berdasarkan perubahan pada level objek

Prinsip desain Stage and Commit

  • Mengubah batasan menjadi fitur

    • Perbedaan antara file dan objek tidak disembunyikan, melainkan dirancang sebagai batas yang eksplisit
    • Perubahan akan di-stage (disimpan sementara) di EFS, lalu secara berkala di-commit ke S3
    • Pendekatan ini terinspirasi dari konsep version control di Git, sehingga memungkinkan kontrol transfer data berbasis waktu dan kebijakan
  • Konsistensi dan atomicity

    • Operasi atomik pada sistem file seperti rename dan move, serta pembaruan per objek secara utuh di S3, didukung secara berdampingan
    • Dengan memisahkan kedua lapisan tersebut, sistem dapat mempertahankan model konsistensi masing-masing sambil tetap menyediakan satu tampilan data terpadu
  • Manajemen izin

    • Kebijakan IAM di S3 dan izin berbasis inode di sistem file secara struktural berbeda
    • S3 Files memisahkan keduanya melalui pemberian izin di level mount
    • Kebijakan IAM S3 tetap dipertahankan sebagai backstop terakhir, sehingga kontrol akses tetap bisa diterapkan saat batas data berubah
  • Ketidakcocokan namespace

    • S3 tidak memiliki konsep direktori, dan delimiter path pun bisa ditentukan secara arbitrer
    • Untuk mengatasi ketidakcocokan dengan sistem file, aturan penamaan dari kedua sisi dipertahankan apa adanya
    • Objek yang tidak kompatibel tidak dipindahkan, melainkan memicu event agar developer dapat menanganinya sendiri
  • Performa dan latensi

    • Sistem file dioptimalkan untuk akses berbasis metadata, sedangkan S3 dioptimalkan untuk akses paralel berskala besar
    • Karena sebagian besar workload tidak mengakses file dan objek secara bersamaan, mempertahankan lapisan sinkronisasi lebih realistis dibanding memaksakan penyatuan penuh kedua model
    • Tampilan file mempertahankan konsistensi NFS, tampilan objek mempertahankan strong consistency S3, dan lapisan sinkronisasi berperan sebagai penghubung

Cara kerja S3 Files

  • Struktur dasar

    • S3 Files menggunakan EFS sebagai backend untuk menyediakan pengalaman seperti sistem file
    • Saat direktori diakses, metadata S3 diambil untuk membuat tampilan yang tersinkronisasi, dan file berukuran 128KB ke bawah juga langsung memuat datanya
    • File berukuran besar menggunakan lazy hydration untuk mengambil data hanya saat diperlukan
    • Perubahan di-commit ke S3 sekitar setiap 60 detik melalui satu operasi PUT, sambil melakukan sinkronisasi dua arah
  • Konflik dan pengelolaan

    • Jika kedua sisi dimodifikasi secara bersamaan, S3 dianggap sebagai source of truth
    • File yang konflik dipindahkan ke direktori lost+found dan dicatat melalui metrik CloudWatch
    • File yang tidak diakses selama 30 hari akan dihapus dari tampilan sistem file untuk mengoptimalkan biaya
  • Optimasi performa

    • Melalui fitur read bypass, saat membaca berurutan file besar, data dibaca langsung dari S3 dengan permintaan GET paralel

      • Mencapai throughput 3GB/s per klien, dan pada banyak klien dapat diskalakan hingga kelas terabit
  • Batasan dan peningkatan yang direncanakan

    • Karena S3 tidak memiliki operasi rename native, perubahan nama direktori memerlukan salin-hapus seluruh isi
    • Mount yang berisi lebih dari 50 juta objek akan menampilkan peringatan
    • Kontrol commit eksplisit belum disertakan pada versi awal
    • Sebagian object key tidak dapat direpresentasikan sebagai nama file POSIX, sehingga dikecualikan dari tampilan file

Keragaman data dan evolusi S3

  • Koeksistensi berbagai cara akses data

    • Seperti pada kasus riset UBC, developer menghabiskan banyak waktu untuk memindahkan data, melakukan caching, dan mengelola nama
    • Tim S3 mendukung secara terpadu berbagai cara mengakses data melalui Tables, Vectors, dan Files
    • Alih-alih menghapus perbedaan antara file dan objek, pendekatan ini mengakui karakteristik masing-masing dan menjadikan batasnya sebagai fitur
  • Peran S3 yang makin luas

    • S3 berevolusi dari sekadar object storage menjadi platform storage terpadu yang mendukung berbagai bentuk data
    • Melalui Tables, Vectors, dan Files, data bisa dimanfaatkan langsung sesuai cara kerja yang diinginkan
    • Tujuannya adalah menjadikan storage bukan penghambat pekerjaan, melainkan infrastruktur dasar yang transparan
    • Ke depan, perluasan fitur seperti kontrol stage/commit dan integrasi pipeline akan terus dilanjutkan
  • Kesimpulan

    • S3 Files menggabungkan keunggulan file dan objek sambil tetap mempertahankan batas eksplisit di antara keduanya
    • S3, yang dimulai sebagai object storage 20 tahun lalu, kini berkembang menjadi ruang kerja terpadu berbasis data
    • Seperti pesan “Go build!”, S3 kini menjadi fondasi yang memungkinkan developer bereksperimen dan membangun lebih cepat dengan data

Belum ada komentar.

Belum ada komentar.