Minio 개요
Minio는 Apache License v2.0 기반의 오픈소스 객체 스토리지 서비스입니다. Amazon S3 클라우드 스토리지 API와 호환되며, 대용량 비정형 데이터 저장에 적합합니다.매우 가벼운 서비스로, 다양한 애플리케이션과 쉽게 통합할 수 있습니다.
분산 배포 시 여러 서버의 디스크를 하나의 스토리지 풀로 통합하여 사용할 수 있습니다.
클러스터 구성 시 최소 4대의 서버가 필요하며, 4대 미만일 경우 일부 기능이 제한되거나 실행되지 않을 수 있습니다.
환경 구성
서버 정보
- minio1 (Ubuntu 16.04) - 192.168.88.56
- minio2 (Ubuntu 16.04) - 192.168.88.57
- minio3 (Ubuntu 16.04) - 192.168.88.58
- minio4 (Ubuntu 16.04) - 192.168.88.59
디렉토리 생성
모든 서버에서 아래 명령어를 실행합니다.mkdir -p /opt/minio/{run,data1,data2} && mkdir -p /etc/minio
Minio 바이너리 다운로드
wget -P /opt/minio/run https://dl.min.io/server/minio/release/linux-amd64/minio
실행 권한 부여
chmod +x /opt/minio/run/minio
클러스터 실행 스크립트 생성
vi /opt/minio/run/run.sh
#!/bin/bash
export MINIO_ACCESS_KEY=admin
export MINIO_SECRET_KEY=admin123456
/opt/minio/run/minio server \
--config-dir /etc/minio \
--address ":6090" \
--console-address ":6091" \
http://192.168.88.56/opt/minio/data1 \
http://192.168.88.56/opt/minio/data2 \
http://192.168.88.57/opt/minio/data1 \
http://192.168.88.57/opt/minio/data2 \
http://192.168.88.58/opt/minio/data1 \
http://192.168.88.58/opt/minio/data2 \
http://192.168.88.59/opt/minio/data1 \
http://192.168.88.59/opt/minio/data2
중요 참고사항
- MINIO_ACCESS_KEY: 최소 5자 이상
- MINIO_SECRET_KEY: 최소 8자 이상, 단순한 패턴 사용 시 실행 실패 가능
- --config-dir: 클러스터 설정 파일 디렉토리 지정
- 기본 포트는 9000이며, --address 옵션으로 변경 가능
Systemd 서비스 등록
vi /etc/systemd/system/minio.service
[Unit]
Description=Minio service
Documentation=https://docs.minio.io/
[Service]
WorkingDirectory=/opt/minio/run/
ExecStart=/opt/minio/run/run.sh
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
권한 설정
chmod +x /etc/systemd/system/minio.service
chmod +x /opt/minio/run/minio
chmod +x /opt/minio/run/run.sh
클러스터 실행
모든 서버에서 동일한 순서로 실행합니다.systemctl daemon-reload
systemctl start minio
systemctl enable minio
상태 확인
systemctl status minio.service
방화벽 설정
방화벽이 활성화된 경우 아래 포트를 허용합니다.ufw allow 6090
ufw allow 6091
systemctl restart ufw
웹 콘솔 접속
브라우저에서 아래 URL로 접속합니다.http://192.168.88.56:6091또는
http://192.168.88.56:6090 (API 엔드포인트)로그인 시 앞서 설정한 admin / admin123456 사용합니다.
Nginx 프록시 사용 시 주의사항
Nginx를 통해 리버스 프록시로 Minio에 접근할 때 다음과 같은 오류가 발생할 수 있습니다.The request signature we calculated does not match the signature you provided. Check your key and signing method.
이 경우 Nginx 설정에서 proxy_set_header Host $host; 등을 적절히 구성해야 합니다.자세한 해결 방법은 공식 문서를 참조하세요.
버킷 정책 설정
파일 유효 기간 설정
버킷 내 파일의 자동 삭제 정책을 설정할 수 있습니다. 예: 3일 후 자동 삭제mc policy set expiration 72h myminio/mybucket
공개 접근 설정
파일을 URL로 직접 접근할 수 있도록 버킷을 공개로 설정합니다.mc policy set public myminio/mybucket
위 명령어 사용을 위해 mc (Minio Client) 도구가 필요합니다.