Install Dan Konfigurasi Minio Object Storage Server

Apa itu Minio?

Minio adalah object storage server yang dirilis di bawah Lisensi Apache v2.0. Ini kompatibel dengan layanan penyimpanan cloud Amazon S3. Sangat cocok untuk menyimpan data tidak terstruktur seperti foto, video, file log, backup dan images kontainer/VM. Untuk ukuran suatu objek dapat berkisar dari beberapa KB hingga maksimum 5TB.

Install dan Konfigurasi Minio di Centos Linux:

Tambahkan akun khusus untuk minio

useradd -d /opt/minio minio

Buat direktori yang dibutuhkan

mkdir /opt/minio/bin
mkdir /opt/minio/data

Unduh binari minio server binary

wget https://dl.minio.io/server/minio/release/linux-amd64/minio -O /opt/minio/bin/minio

Setel permisi untuk bisa dieksekusi

chmod +x /opt/minio/bin/minio

Buat berkas konfigurasi untuk minio

vim /opt/minio/minio.conf:

Isinya sebagai berikut:

MINIO_VOLUMES=/opt/minio/data
MINIO_OPTS="--address :9000"

Pastikan pemilik direktori /opt/minio disetel ke minio:

chown -R minio:minio /opt/minio

Buat berkas minio systemd service

Catatan: Berkas systemd service di bawah diadaptasi dari: https://github.com/minio/minio-service/tree/master/linux-systemd

vim /etc/systemd/system/minio.service

Isinya sebagai berikut:

[Unit]
Description=Minio
Documentation=https://docs.minio.io
Wants=network-online.target
After=network-online.target
AssertFileIsExecutable=/opt/minio/bin/minio

[Service]
WorkingDirectory=/opt/minio

User=minio
Group=minio

PermissionsStartOnly=true
EnvironmentFile=-/opt/minio/minio.conf
ExecStartPre=/bin/bash -c "[ -n \"${MINIO_VOLUMES}\" ] || echo \"Variable MINIO_VOLUMES not set in /opt/minio/minio.conf\""

ExecStart=/opt/minio/bin/minio server $MINIO_OPTS $MINIO_VOLUMES

# Let systemd restart this service only if it has ended with the clean exit code or signal.
Restart=on-success

StandardOutput=journal
StandardError=inherit

# Specifies the maximum file descriptor number that can be opened by this process
LimitNOFILE=65536

# Disable timeout logic and wait until process is stopped
TimeoutStopSec=0

# SIGTERM signal is used to stop Minio
KillSignal=SIGTERM

SendSIGKILL=no

SuccessExitStatus=0

[Install]
WantedBy=multi-user.target

Aktifkan dan jalankan minio service

systemctl enable minio && systemctl start minio

Periksa apakah minio telah jalan

systemctl status minio

Untuk melihat dan menyimpan Minio access dan secret key:

grep minio /var/log/messages | grep -E 'AccessKey|SecretKey'

Atau bisa juga langsung melihat ke berkas konfigurasi yang dibuat otomatis saat menjalankan minio service

vim /opt/minio/.minio/config.json

Sampai tahap ini instalasi dan konfigurasi telah sukses dan jalan. Untuk melihatnya bisa mengakses url http://<server_ip>:9000/, log in menggunakkan access dan secret key yang telah disimpan ditahap di atas.

Penggunaan Minio

Karena Minio kompatibel dengan AWS S3, bisa menggunakan cli untuk mengunggah, melihat dan hapus Minio storage data

Reverse Proxy dengan Nginx

Install Ngix Server

yum install nginx

Buat konfigurasi untuk nginx

vim /etc/nginx/conf.d/domain.com.conf

Isinya bisa disesuaikan sebagai berikut:

server {
 listen 80;
 server_name domain.com;


 location / {
   proxy_buffering off;
   proxy_set_header Host $http_host;
   proxy_set_header X-Real-IP $remote_addr;
   proxy_set_header X-Forwarded-Proto $scheme;
   proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
   proxy_set_header X-NginX-Proxy true;
   proxy_ignore_headers Cache-Control;
   add_header Accept-Ranges bytes;
   proxy_pass http://<server_ip_minio>:9000;
   proxy_http_version     1.1;
   proxy_set_header       Connection "";
   proxy_hide_header      Set-Cookie;
   proxy_ignore_headers   Set-Cookie;
   proxy_intercept_errors on;
   add_header             Cache-Control max-age=31536000;
 }
}