- 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.