๐Ÿ“Š Log S3 Kamu Boros & Lemot? Belajar dari Cara Yelp Hemat Storage 85%!



Pernah nyalain S3 Server Access Logging terus kaget karena bucket jadi penuh jutaan file kecil yang susah di-query? ๐Ÿ˜ซ

Yelp Engineering baru saja membagikan rahasia dapur mereka dalam mengelola Terabytes log S3 setiap harinya. Ternyata rahasianya ada di format file!
Ini bedahannya:

1. โš ๏ธ Problem Statement (Masalah)
* Small File Problem: S3 access logs dihasilkan dalam bentuk file teks mentah yang sangat kecil dan banyak.
* Biaya Bengkak: Menyimpan jutaan objek kecil memakan biaya API requests (PUT/GET) dan metadata yang tinggi, bukan cuma biaya storage-nya.
* Query Lambat: Melakukan analisa (misal: "Siapa yang hapus file X?") menggunakan AWS Athena sangat lambat karena harus memindai jutaan file teks yang tidak terkompresi.

2. ๐Ÿ› ๏ธ Metodologi & Solusi
Yelp membangun pipeline data khusus untuk transformasi log:
* Konversi ke Parquet: Mengubah format log dari teks mentah ke Apache Parquet (format kolom yang sangat efisien).
* Compaction (Pemadatan): Menggabungkan ribuan file log kecil menjadi satu file Parquet besar. Ini mengurangi jumlah objek secara drastis.
* Partition Projection: Menggunakan fitur Athena Partition Projection untuk memetakan lokasi data di memori tanpa perlu melakukan MSCrawl yang mahal.

3. ๐Ÿ“ˆ Findings & Hasil
Dampaknya gila-gilaan:
* ๐Ÿ“‰ Storage Hemat 85%: Berkat kompresi Parquet, ukuran data menyusut drastis.
* ๐Ÿงน Objek Berkurang 99.99%: Dari jutaan file kecil menjadi sedikit file besar, membuat listing dan manajemen bucket jauh lebih ringan.
* ๐Ÿš€ Query Ngebut: Analisa insiden keamanan atau audit akses kini bisa dilakukan hitungan detik/menit via Athena.

4. ๐Ÿ’ก Key Takeaways
* Don't Query Raw Logs: Jangan pernah analisa log mentah di skala besar. Selalu lakukan proses ETL (Extract, Transform, Load) ke format yang query-friendly.
* Parquet is King: Untuk data analitik, Parquet hampir selalu menang lawan CSV/JSON/Text.
* Metadata Matters: Di cloud, biaya seringkali tersembunyi di jumlah request dan metadata, bukan cuma di volume data (GB).

โš™๏ธ How to Implement (Konsep)
Buat kamu yang mau meniru arsitektur ini di AWS:
* Aktifkan Logging: Arahkan S3 Access Logs ke bucket khusus (misal: raw-logs-bucket).
* ETL Job (Glue/Lambda):
* Buat script (bisa pakai AWS Glue atau Lambda) yang jalan tiap jam.
* Baca file di raw-logs-bucket.
* Convert ke format Parquet.
* Simpan ke processed-logs-bucket dengan struktur folder date=2025-09-01/.
* Setup Athena:
* Buat tabel di Athena yang mengarah ke processed-logs-bucket.
* Aktifkan Partition Projection di konfigurasi tabel agar Athena otomatis tahu struktur tanggal tanpa perlu MSCK REPAIR TABLE.

๐Ÿ”— Baca Engineering Blog Lengkapnya:
https://engineeringblog.yelp.com/2025/09/s3-server-access-logs-at-scale.html

#DataEngineering #AWS #S3 #BigData #YelpEngineering #DevOps #CloudOptimization #Athena #Parquet

Leave a Comment