Install Minio Server sebagai Gateway Object Storage Backblaze B2 API untuk Mapping ke AWS-S3 API

minio Nov 18, 2019

Bicara tentang API Object Storage, hampir semuanya mendukung AWS-S3 API, baik berupa CLI ataupun lainnya. pada pembahasan Tips Memilih Penyedia Layanan Cloud Object Storage yang Sesuai dengan Kebutuhan Anda ada banyak penyedia layanan Object Storage, kebanyakan support AWS-S3 API, namun Object Storage dari Backblaze B2 membuat API Sendiri dengan nama B2, untuk penggunaannya sebenarnya sudah banyak yang mendukung API dari B2, penulis menggunakan RClone untuk koneksi dengan Backblaze B2 API, pembahasan RClone bisa dilihat disini. selain itu seperti duplicity dan lainnya juga sudah support. namun ada beberapa aplikasi yang tidak support dengan B2 API, hanya support dengan AWS-S3 API.

Minio Gateway untuk Menerjemahkan API dari B2 ke AWS-S3

Jika kasusnya begini, maka mau tidak mau harus menggunakan gateway/penerjemah API ke AWS-S3, kasus penulis adalah, penulis menggunakan Nextcloud Server dengan primary storage dari Object Storage. Nextcloud mendukung beberapa object storage seperti AWS-S3,Swift dll sebagai primary storage, namun tidak ada Backblaze B2 disana. setelah mencoba mencari alternatif, penulis menemukan Minio Server dapat bertindak sebagai Gateway/Penerjemah antara B2 API dengan AWS-S3 API, jadi tugas minio adalah menerima request API S3 dari Aplikasi ke Minio Server, kemudian Minio Server melakukan Mapping API yang sesuai dengan API B2.

hasilnya dikembalikan lagi ke aplikasi yang request, sehingga seolah-olah aplikasi tersebut menggunakan Object Storage dengan S3 API. walaupun tidak identik 100%, namun mapping bisa dikatakan hampir sempurna.

Installasi Minio Server dengan Docker

penulis asumsikan anda sudah memiliki akun di backblaze, kemudian untuk installasi dan menggunakan Minio Server, kita bisa install di server menggunakan docker atau langsung download binary file dari situs minio.io. berikut cara installasi minio server menggunakan docker :

#pastikan docker sudah terinstall, kemudian jalankan perintah berikut :
sudo docker run -p 19991:9000 --name naja-minio-cloud \
 -e "MINIO_ACCESS_KEY='isi_access_key_akun_backblaze'" \
 -e "MINIO_SECRET_KEY='isi_secreet_key_akun_backblaze'" \
 --restart=always minio/minio:edge gateway b2
docker run minio gateway

p 19991 adalah mapping port, defaultnya port untuk minio adalah 9000 di dockernya, namun karena port itu sudah dipakai aplikasi lain ditempat penulis, penulis rubah ke 19991, silahkan sesuaikan dengan settingan server anda, jika tidak port 9000 tidak terpakai, gunakan saja port itu. MINIO_ACCESS_KEY dan MINIO_SECRET_KEY dapat kita lihat diakun backblaze b2.

Installasi Minio Server dari Source

jika anda ingin install langsung minio ke server tanpa docker, bisa langsung download aplikasi minio disitus resminya, misal untuk pengguna linux disini. untuk langkah-langkahnya sebagai berikut :

#pindah sebagai user root
su

#export data berikut
export MINIO_ACCESS_KEY="'access_key_akun_backblaze'"
export MINIO_SECRET_KEY="'secreet_key_akun_backblaze'"

#pindah ke dir /usr/src/
cd /usr/src/

#buat direktori minio
mkdir minio
cd minio

#download minio terbaru
wget https://dl.minio.io/server/minio/release/linux-amd64/minio

#buat executable
chmod +x minio

#running minio sebagai B2 gateway
./minio gateway --address ":19991" b2 /var/minio/data &
install minio gateway from source

Ingat, portnya disesuaikan ya. penulis masih menggunakan 19991. jika sukses, anda bisa setting object storage dibagian nextcloud seolah-olah sebagai S3-API, namun hostname dan portnya disesuaikan dengan minio server anda.

** Update Terbaru
Minio mengumumkan menghilangkan dukungan dengan API Backblaze B2, silahkan baca postingan Solusi untuk Minio Server yang Hentikan Dukungan Gateway Backblaze B2 API untuk solusinya.

M. Najamudin Ridha

Penikmat coffe cappucino ice, apalagi tanpa gula. Menyukai teknologi open source, terutama yang berbasis web dan mobile, senang mencoba hal - hal seperti linux, sysadmin, database dan programming