MinIO: Object Storage Self-Hosted untuk Pipeline ML

# 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 popu...

By Ruby Abdullah · · tutorial
MinIOObject StorageS3Data LakePython

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/

Artikel Terkait

Tutorial Reflex: Membangun Web App Full-Stack dengan Python Murni

Reflex: Membangun Aplikasi Web Full-Stack dengan Python Murni Reflex memungkinkan Anda membangun aplikasi web lengkap — ...

Tutorial ColBERT & RAGatouille: Late-Interaction Retrieval untuk RAG

ColBERT & RAGatouille: Retrieval Late-Interaction untuk RAG yang Lebih Baik Sebagian besar sistem RAG mengandalkan dense...

Tutorial SGLang: Serving LLM Cepat dan Pemrograman Structured Generation

SGLang: Serving LLM yang Cepat dan Model Pemrograman untuk Generasi Terstruktur SGLang adalah dua hal dalam satu paket: ...

Tutorial TRL: Post-Training LLM dengan SFT, DPO, dan Reward Modeling

Post-Training LLM dengan TRL: SFT, Reward Modeling, dan DPO Setelah sebuah base language model selesai dipretraining, mo...