Skip to main content

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.