MinIO: Object Storage Self-Hosted untuk Pipeline ML
MinIO adalah solusi object storage open-source yang kompatibel dengan Amazon S3 API. Dalam ekosistem machine learning, MinIO menjadi pilihan populer untuk menyimpan dataset, model artifacts, dan hasil eksperimen karena performanya yang tinggi, kemudahan deployment, dan kompatibilitas penuh dengan tools ML seperti MLflow, PyTorch, dan TensorFlow.
Artikel ini membahas cara menggunakan MinIO sebagai fondasi storage untuk pipeline ML, mulai dari instalasi hingga membangun sistem model registry dan dataset versioning.
Mengapa MinIO untuk ML?
Dalam workflow machine learning, kita sering berurusan dengan file berukuran besar: dataset gambar, model weights, checkpoint training, dan log eksperimen. Cloud object storage seperti Amazon S3 adalah solusi standar, namun biaya bisa membengkak dan ada ketergantungan pada vendor tertentu.
MinIO memberikan alternatif yang menarik:
- S3-compatible: Semua tools yang mendukung S3 otomatis bisa bekerja dengan MinIO
- Self-hosted: Data tetap di infrastruktur sendiri, cocok untuk regulasi data sovereignty
- Performa tinggi: Dioptimalkan untuk throughput besar pada hardware modern
- Gratis dan open-source: Tidak ada biaya lisensi untuk penggunaan komunitas
Instalasi MinIO
Instalasi dengan Docker
Cara termudah untuk memulai MinIO adalah menggunakan Docker:
docker run -d \
--name minio \
-p 9000:9000 \
-p 9001:9001 \
-v minio-data:/data \
-e "MINIOROOTUSER=minioadmin" \
-e "MINIOROOTPASSWORD=minioadmin123" \
quay.io/minio/minio server /data --console-address ":9001"
Untuk setup yang lebih terstruktur, gunakan Docker Compose:
version: '3.8'
services:
minio:
image: quay.io/minio/minio
containername: minio
ports:
- "9000:9000"
- "9001:9001"
environment:
MINIOROOTUSER: minioadmin
MINIOROOTPASSWORD: minioadmin123
volumes:
- minio-data:/data
command: server /data --console-address ":9001"
healthcheck:
test: ["CMD", "mc", "ready", "local"]
interval: 30s
timeout: 20s
retries: 3
volumes:
minio-data:
Jalankan dengan:
docker-compose up -d
Instalasi Binary
Untuk instalasi langsung di server Linux:
wget https://dl.min.io/server/minio/release/linux-amd64/minio
chmod +x minio
sudo mv minio /usr/local/bin/
Buat direktori data
sudo mkdir -p /data/minio
Jalankan MinIO
MINIOROOTUSER=minioadmin MINIOROOTPASSWORD=minioadmin123 \
minio server /data/minio --console-address ":9001"
Untuk menjalankan MinIO sebagai systemd service:
[Unit]
Description=MinIO Object Storage
After=network.target
[Service]
Type=simple
User=minio-user
Group=minio-user
Environment="MINIOROOTUSER=minioadmin"
Environment="MINIOROOTPASSWORD=minioadmin123"
ExecStart=/usr/local/bin/minio server /data/minio --console-address ":9001"
Restart=always
RestartSec=5
[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable minio
sudo systemctl start minio
MinIO Console UI
Setelah MinIO berjalan, akses Console UI di http://localhost:9001. Console menyediakan antarmuka visual untuk:
- Membuat dan mengelola bucket
- Upload dan download objek
- Mengatur access policies
- Monitoring performa dan penggunaan storage
- Mengkonfigurasi event notifications
- Mengelola user dan group
Login dengan credentials yang sudah dikonfigurasi (default: minioadmin / minioadmin123).
Console UI sangat berguna untuk tim data science yang tidak terbiasa dengan command line. Mereka bisa langsung browse dataset, preview file, dan mengelola bucket tanpa perlu tools tambahan.
MinIO Client (mc)
MinIO menyediakan command-line tool mc untuk administrasi:
# Install mc
wget https://dl.min.io/client/mc/release/linux-amd64/mc
chmod +x mc
sudo mv mc /usr/local/bin/