
Object Storage berbasis S3 semakin banyak digunakan untuk aplikasi modern karena mampu menyimpan file dalam jumlah besar dengan performa tinggi. Pada aplikasi seperti sistem ujian online, e-learning, atau portal media, file seperti gambar, audio, dan video sering diakses oleh ribuan pengguna secara bersamaan.
Dengan menggabungkan Object Storage, Cloudflare CDN, dan mounting filesystem menggunakan s3fs, server aplikasi dapat mengakses storage eksternal seolah-olah seperti disk lokal. Pendekatan ini membuat integrasi aplikasi jauh lebih sederhana sekaligus meningkatkan performa distribusi file melalui CDN.
Daftar Isi
- Arsitektur Sistem
- Membuat Bucket Object Storage
- Menghubungkan Storage ke Cloudflare
- Membuat Cache Rule di Cloudflare
- Mengaktifkan Tiered Cache
- Mengatur Bucket Policy Public
- Install dan Konfigurasi s3fs
- Mount Object Storage via fstab
- Bind Mount ke Folder Aplikasi
- FAQ
Arsitektur Sistem
Berikut gambaran arsitektur penggunaan Object Storage dengan CDN:
User Browser
│
▼
Cloudflare CDN
│
▼
Object Storage (S3 Compatible)
│
▼
Server Ubuntu (s3fs mount)
│
▼
Aplikasi Web
Dengan arsitektur ini, sebagian besar request file akan dilayani oleh Cloudflare CDN sehingga mengurangi beban langsung pada Object Storage.
1. Membuat Bucket Object Storage
Buat bucket baru pada layanan Object Storage, karena ini nanti bucket akan dihubungkan dengan Cloudflare maka buat bucket dengan nama domain full, misalnya:
Nama Bucket: cdn.domainanda.com
Contoh struktur isi bucket:
cdn.domainanda.com/ ├── public/ │ ├── images/ │ ├── audio/ │ └── video/ └── private/
Folder public digunakan untuk file yang dapat diakses melalui CDN, sedangkan folder private digunakan untuk backup atau file internal aplikasi.
2. Menghubungkan Storage ke Cloudflare
Buat subdomain CDN, misalnya:
cdn.domainanda.com
Tambahkan DNS record di Cloudflare:
Type : CNAME Name : cdn Target : cdn.domainanda.com.is3.cloudhost.id Proxy : ON
Dengan konfigurasi ini, semua request file akan melewati jaringan CDN Cloudflare.
3. Membuat Cache Rule di Cloudflare
Masuk ke menu Rules → Cache Rules lalu buat rule baru:
IF Hostname equals cdn.domainanda.com THEN Cache eligibility : Eligible for cache Edge TTL : 1 month Browser TTL : Respect existing headers
Cache rule ini memastikan file statis dapat disimpan di edge server Cloudflare.
4. Mengaktifkan Tiered Cache
Aktifkan fitur ini pada menu:
Caching → Tiered Cache → Enable
Tiered cache mengurangi jumlah request langsung ke origin storage dengan menggunakan cache regional Cloudflare.
5. Mengatur Bucket Policy Public
Install AWS CLI terlebih dahulu:
sudo apt update sudo apt install awscli
Konfigurasi access key:
aws configure
Buat file policy:
nano policy.json
{
"Version":"2012-10-17",
"Statement":[
{
"Effect":"Allow",
"Principal":"*",
"Action":["s3:GetObject"],
"Resource":["arn:aws:s3:::cdn.domainanda.com/public/*"]
}
]
}
Terapkan policy:
aws --endpoint-url https://endpoint-object-storage \
s3api put-bucket-policy \
--bucket backupdata \
--policy file://policy.json
6. Install dan Konfigurasi s3fs
Install s3fs:
sudo apt install s3fs
Buat file credential:
echo ACCESS_KEY:SECRET_KEY | sudo tee /etc/passwd-s3fs sudo chmod 600 /etc/passwd-s3fs
Buat directory cache:
sudo mkdir -p /var/cache/s3fs sudo chmod 777 /var/cache/s3fs
7. Mount Object Storage via fstab
Buat mount directory:
sudo mkdir -p /mnt/s3-data
Edit file:
sudo nano /etc/fstab
Tambahkan konfigurasi berikut:
cdn.domainanda.com /mnt/s3-data fuse.s3fs _netdev,allow_other,use_path_request_style,url=https://cdn.domainanda.com.is3.cloudhost.id,passwd_file=/etc/passwd-s3fs,use_cache=/var/cache/s3fs,mp_umask=002,uid=33,gid=33,retries=5,connect_timeout=15,readwrite_timeout=30,stat_cache_expire=300,enable_noobj_cache,parallel_count=20,multireq_max=20,max_background=100 0 0
Mount filesystem:
sudo mount -a
8. Bind Mount ke Folder Aplikasi
Tambahkan bind mount agar aplikasi mengakses folder lokal:
/mnt/s3-data/public /home/app/upload/public none bind,_netdev 0 0
Reload mount:
sudo mount -a
Dengan konfigurasi ini aplikasi cukup mengakses:
/home/app/upload/public
Padahal file sebenarnya berada di Object Storage.
FAQ
Apakah Object Storage bisa melayani ribuan user sekaligus?
Ya. Object Storage dirancang untuk skalabilitas tinggi dan dapat menangani banyak request secara paralel. Namun untuk performa maksimal disarankan menggunakan CDN seperti Cloudflare.
Apakah s3fs aman digunakan di production?
s3fs cukup stabil untuk penggunaan filesystem, terutama untuk file statis seperti gambar, audio, dan video. Namun untuk upload besar biasanya lebih baik menggunakan upload langsung ke S3.
Apakah Cloudflare bisa cache file dari S3?
Ya. Selama file diakses melalui domain yang diproxy oleh Cloudflare, CDN dapat melakukan caching sehingga request tidak selalu menuju Object Storage.
Kesimpulan
Mengintegrasikan Object Storage dengan Cloudflare CDN dan s3fs memberikan solusi penyimpanan yang scalable dan efisien untuk aplikasi modern. Dengan konfigurasi yang tepat, server aplikasi dapat mengakses storage eksternal seperti filesystem lokal sekaligus memanfaatkan performa CDN untuk melayani ribuan pengguna secara bersamaan.
Pendekatan ini sangat cocok digunakan untuk aplikasi seperti sistem platform e-learning, portal media, maupun aplikasi web yang membutuhkan distribusi file dengan performa tinggi dan biaya penyimpanan yang efisien.
