MinIO | VM에 구성해보기

https://min.io/docs/minio/linux/index.html

MinIO Object Storage for Linux

https://blog.min.io/continuing-the-journey-our-new-mascot-and-wordmark

QuickStart: MinIO for Linux

MinIO 개체 스토리지 및 S3 호환 API 계층의 초기 개발 및 평가를 위해 VM 1대에 MinIO 서버를 구축한다.

Install

패키지를 다운 받는다.

wget https://dl.min.io/server/minio/release/linux-amd64/archive/minio_20240510014138.0.0_amd64.deb -O minio.deb

설치

dpkg -i minio.deb

minio-user 계정생성

systemd 실행 파일을 보면 minio-user로 실행하도록 되어있다.
/usr/lib/systemd/system/minio.service

groupadd minio-user
useradd -r -m -g minio-user -d /home/minio-user -s /bin/bash minio-user
mkdir /home/minio-user/data
chown -R minio-user:minio-user /home/minio-user/data

default 설정파일생성

https://min.io/docs/minio/linux/operations/install-deploy-manage/deploy-minio-single-node-single-drive.html#deploy-single-node-single-drive-minio

sudo vi /etc/default/minio
MINIO_VOLUMES="/home/minio-user/data"
MINIO_OPTS="--console-address :9001"
MINIO_ROOT_USER='example'
MINIO_ROOT_PASSWORD='example'
MINIO_SERVER_URL="http://192.168.0.191:9000"

MinIO 서버 실행

systemctl enable --now minio

웹콘솔 예시

TLS/SSL 설정하기

참고자료
인증서는 Let’s encrpyt로 생성한 인증서 적용.

# 디렉토리가 없으면 생성
mkdir /home/minio-user/.minio/certs

폴더 및 파일 구조 예시

minio.example.com
s3.example.com
두개 서브 도메인으로 적용시 아래와 같은 구조로 구성.

.minio
   └── certs
       ├── CAs
          └── fullchain.pem
       ├── private.key
       ├── public.crt
       └── s3-example.com
           ├── private.key
           └── public.crt

설정파일 변경

MinIO TLS/SSL 설정을 위해 환경 구성을 변경한다.

HAProxy를 Offloding으로 이용 중이면, Offloading과 무관한 TPC Frontend설정을 하도록 한다. TCP프로토콜로 9000포트 9001 포트 매핑 작업 필요.

sudo vi /etc/default/minio

도메인 주소로 서버주소 정보를 변경한다.

MINIO_VOLUMES="/home/minio-user/data"
MINIO_OPTS="--console-address :9001"
MINIO_ROOT_USER='example'
MINIO_ROOT_PASSWORD='example'
MINIO_SERVER_URL="https://minio.example.com:9000"

신뢰할수있는 인증서 등록

MinIO Client를 이용하여 사설 인증서가 적용된 MinIO서버를 사용하려면, Client쪽에 신뢰할수 있는 인증서 등록이 필요하다. 인증서 등록을하지 않으면 –insecure 옵션이 필요하다.


MinIO Client 사용

MinIO Client 설치 및 로그인

Install MinIO Client

wget https://dl.min.io/client/mc/release/linux-amd64/mc
chmod +x mc
sudo mv mc /usr/local/bin/mc

로그인 및 확인

Offloading은 Offloading에 맞게 수정해서 진행.

mc alias set ${임의 이름} http://127.0.0.1:9000 minioadmin minioadmin
mc admin info local

계정 삭제

mc alias rm ${계정 이름}

alias list

mc alias list

버켓 생성

mc mb ${alias명}/${버킷이름}

버켓 리스트

mc ls ${alias명}

파일 업로드

mc cp ${로컬 파일경로} ${alias명}/${버킷이름}/

파일 다운로드

업로드 반대로 하면 다운로드됨.