Object Storage MinIO
MinIO adalah object storage server yang bersifat open-source dan kompatibel dengan Amazon S3 API.
MinIO dirancang untuk menyimpan data dalam jumlah besar seperti file backup, gambar, log, dan file biner secara terdistribusi, aman, dan cepat.
Karakteristik Utama
- S3 Compatible — bisa digunakan dengan tools berbasis Amazon S3.
- Scalable — dapat di-cluster untuk penyimpanan berskala besar.
- Secure — mendukung HTTPS, Access Key, Secret Key, dan policy berbasis pengguna.
- High Performance — mampu mencapai throughput hingga ratusan GB/s.
- Lightweight — dapat berjalan di container, VM, atau bare-metal.
Contoh Penggunaan
- Penyimpanan file hasil backup database.
- Menyimpan artifact CI/CD (misalnya hasil build).
- Penyimpanan log aplikasi atau hasil analisis data.
- Sebagai backend storage untuk aplikasi seperti Grafana Loki, Velero, Airflow, dsb.
Instalasi MinIO
A. Instalasi di Server Langsung (Linux)
wget https://dl.min.io/server/minio/release/linux-amd64/minio -O /usr/local/bin/minio
chmod +x /usr/local/bin/minio
Buat direktori penyimpanan data:
mkdir -p /data/minio
Jalankan MinIO:
export MINIO_ROOT_USER=admin
export MINIO_ROOT_PASSWORD=admin123
minio server /data/minio --console-address ":9001"
MinIO sekarang dapat diakses melalui:
Web UI: http://localhost:9001
API Endpoint: http://localhost:9000
B. Instalasi Menggunakan Docker
docker run -d \
-p 9000:9000 \
-p 9001:9001 \
--name minio \
-v /data/minio:/data \
-e MINIO_ROOT_USER=admin \
-e MINIO_ROOT_PASSWORD=admin123 \
quay.io/minio/minio server /data --console-address ":9001"
Lalu buka browser:
Web UI: http://localhost:9001
API Endpoint: http://localhost:9000
Masukkan kredensial:
Username: admin
Password: admin123
Struktur & Konsep Penyimpanan MinIO
- Bucket — Wadah utama untuk menyimpan objek (setara dengan folder di S3).
- object — File atau data yang disimpan di dalam bucket.
- Policy — Aturan akses (read/write/public).
- Access Key & Secret Key — Kredensial autentikasi pengguna.
- Console UI — Antarmuka grafis untuk mengelola bucket dan file.
Konfigurasi Keamanan Dasar
-
Gunakan password kuat untuk MINIO_ROOT_PASSWORD.
-
Aktifkan HTTPS/TLS dengan sertifikat SSL:
minio server /data --certs-dir /etc/minio/certs -
Batasi akses hanya ke port 9000 dan 9001 jika diakses publik.
-
Gunakan Access Policy untuk mengatur izin user.
Contoh membuat user dan policy read-only:
mc admin user add local readonlyuser password123
mc admin policy set local readwrite user=readonlyuser
Command CLI (MinIO Client - mc)
Install client MinIO:
wget https://dl.min.io/client/mc/release/linux-amd64/mc -O /usr/local/bin/mc
chmod +x /usr/local/bin/mc
Contoh Penggunaan:
mc alias set local http://localhost:9000 admin admin123
mc mb local/test-bucket
mc cp file.txt local/test-bucket/
mc ls local/test-bucket
Menjalankan MinIO Sebagai Service
Buat file systemd /etc/systemd/system/minio.service:
[Unit]
Description=MinIO Object Storage
After=network.target
[Service]
User=root
ExecStart=/usr/local/bin/minio server /data/minio --console-address ":9001"
Environment="MINIO_ROOT_USER=admin"
Environment="MINIO_ROOT_PASSWORD=admin123"
Restart=always
[Install]
WantedBy=multi-user.target
Aktifkan service:
sudo systemctl enable minio
sudo systemctl start minio
sudo systemctl status minio
Monitoring & Log
- Log service: /var/log/minio.log atau journalctl -u minio -f
- Cek status disk:
mc admin info local
mc admin heal local
Kesimpulan
MinIO adalah solusi penyimpanan object storage modern yang ringan, cepat, dan aman. Dengan kompatibilitas S3 dan kemudahan instalasi, MinIO cocok untuk berbagai kebutuhan seperti backup, penyimpanan log, maupun integrasi DevOps.