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 설정파일생성
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명}/${버킷이름}/
파일 다운로드
업로드 반대로 하면 다운로드됨.