
MinIO는 고성능의 오브젝트 스토리지 서버로, AWS S3와 호환되는 API를 제공합니다.
이 가이드는 Linux 환경에서 MinIO를 처음부터 설치하고 설정하는 전체 과정을 다룹니다.
먼저 MinIO 바이너리 파일을 다운로드하고 시스템에 설치합니다.
# 바이너리 파일 다운로드
wget https://dl.min.io/server/minio/release/linux-amd64/minio
# MinIO에 실행 권한 설정
chmod +x minio
# MinIO를 `/usr/local/bin`으로 이동
# /usr/local/bin/: 시스템 전역에서 사용할 수 있는 실행 파일을 저장하는 디렉토리
sudo mv minio /usr/local/bin/
# MinIO 데이터 저장 경로 설정
# /mnt/: 외부 저장장치나 하드디스크를 마운트하는 데 사용되는 디렉토리
# 시스템 파일과 데이터가 섞이지 않도록 보장
sudo mkdir -p /mnt/minio_data
목적: MinIO 실행 시 root 사용자를 사용하지 않도록 전용 사용자를 생성합니다.
보안상 중요한 이유
# minio 사용자 생성
# `-r`: 시스템 사용자 생성 (서비스나 데몬 프로세스 실행용)
# `-s /bin/false`: 사용자의 shell을 `/bin/false`로 설정하여 직접 로그인 불가
# 보안성을 높이고 특정 서비스만 실행하도록 제한
sudo useradd -r -s /bin/false minio
# MinIO 데이터 저장 디렉토리의 소유권을 minio 사용자에게 부여
# minio 사용자가 해당 디렉토리의 데이터를 읽고 쓸 수 있도록 보장
sudo chown -R minio:minio /mnt/minio_data
Linux에서 MinIO를 시작하는 방법은 두 가지가 있습니다.
bashminio server /mnt/minio_data --console-address ":9001"
systemd 서비스 파일 생성
/etc/systemd/system/minio.service 파일을 생성합니다.
bashsudo vi /etc/systemd/system/minio.service
minio.service 파일 내용
[Unit]
Description=MinIO Object Storage
After=network.target
[Service]
Type=simple
User=minio
Environment="MINIO_MEMORY_LIMIT=128M"
ExecStart=/usr/local/bin/minio server /mnt/minio_data \
--address ":9000" \
--console-address ":9001" \
--quiet
Environment="MINIO_ROOT_USER=admin"
Environment="MINIO_ROOT_PASSWORD=YourStrongPassword123!"
Restart=always
LimitNOFILE=65536
MemoryLimit=128M
[Install]
WantedBy=multi-user.target
# systemd 설정 다시 로드
sudo systemctl daemon-reload
# MinIO 서비스 시작
sudo systemctl start minio
# 부팅 시 자동 시작 설정
sudo systemctl enable minio
# 서비스 상태 확인
sudo systemctl status minio
성공적으로 시작되면 다음과 같은 출력을 볼 수 있습니다.
● minio.service - MinIO Object Storage
Loaded: loaded (/etc/systemd/system/minio.service; enabled; preset: disabled)
Active: active (running) since Fri 2025-05-30 11:04:01 CST; 11s ago
Main PID: 2651761 (minio)
Tasks: 8 (limit: 2010)
Memory: 127.8M (limit: 128.0M peak: 128.0M swap: 167.1M swap peak: 167.3M)
CPU: 1.201s
CGroup: /system.slice/minio.service
└─2651761 /usr/local/bin/minio server /mnt/minio_data --address :9000 --console-address :9001 --quiet
MinIO 웹 콘솔에 접속하려면 브라우저에서 http://서버주소:9001로 접속하세요.
중요: 방화벽에서 포트 9000(API)과 9001(웹 콘솔) 접근 권한을 허용해야 합니다.
# Ubuntu/Debian의 경우 (UFW 사용)
sudo ufw allow 9000
sudo ufw allow 9001
# CentOS/RHEL의 경우 (firewalld 사용)
sudo firewall-cmd --permanent --add-port=9000/tcp
sudo firewall-cmd --permanent --add-port=9001/tcp
sudo firewall-cmd --reload
MinIO 클라이언트(mc)를 사용하면 명령줄에서 MinIO를 더 효율적으로 관리할 수 있습니다.
# mc 클라이언트 다운로드
wget https://dl.min.io/client/mc/release/linux-amd64/mc -O /usr/local/bin/mc
# 실행 권한 설정
chmod +x /usr/local/bin/mc
# 로컬 MinIO 서버에 대한 별칭 설정
mc alias set myminio http://localhost:9000 admin YourStrongPassword123!
# 연결 테스트
mc ls myminio
# 새 버킷 생성
mc mb myminio/my-bucket
# 버킷 목록 확인
mc ls myminio
# 파일 업로드
mc cp /path/to/file.txt myminio/my-bucket/
# 파일 다운로드
mc cp myminio/my-bucket/file.txt /local/path/
버킷의 접근 권한을 설정하여 웹에서의 접근을 제어할 수 있습니다.
# 버킷을 공개 읽기 전용으로 설정 (다운로드만 허용)
mc anonymous set download myminio/버킷이름
# 예시: user-uploads 버킷을 공개 읽기 전용으로 설정
mc anonymous set download myminio/user-uploads
| 명령어 | 설명 | 사용 사례 |
|---|---|---|
mc anonymous set none | 비공개 버킷 (기본값) | 민감한 데이터 저장 |
mc anonymous set download | 다운로드만 허용 | 이미지, 문서 등 공개 파일 |
mc anonymous set upload | 업로드 허용 | 임시 파일 업로드 (주의 필요) |
mc anonymous set public | 공개 읽기/쓰기 | 매우 신중하게 사용 |
프로덕션 환경에서는 HTTPS를 사용하는 것이 좋습니다.
# 인증서 디렉토리 생성
sudo mkdir -p /etc/minio/certs
# 인증서 파일을 해당 디렉토리에 복사
sudo cp your-certificate.crt /etc/minio/certs/public.crt
sudo cp your-private-key.key /etc/minio/certs/private.key
# 인증서 파일 권한 설정
sudo chown -R minio:minio /etc/minio/certs
sudo chmod 600 /etc/minio/certs/private.key
# MinIO 서비스 로그 확인
sudo journalctl -u minio -f
# 최근 로그 확인
sudo journalctl -u minio --since "1 hour ago"
# MinIO 데이터 디렉토리 사용량 확인
du -sh /mnt/minio_data
# 시스템 전체 디스크 사용량 확인
df -h
# mc를 사용한 백업
mc mirror myminio/source-bucket /backup/location/
# rsync를 사용한 물리적 백업
sudo rsync -av /mnt/minio_data/ /backup/minio_data/
# 서비스 재시작
sudo systemctl restart minio
# 서비스 중지
sudo systemctl stop minio
# 서비스 상태 확인
sudo systemctl status minio
# 부팅 시 자동 시작 비활성화
sudo systemctl disable minio
이제 MinIO가 성공적으로 설치되고 설정되었습니다.
웹 브라우저에서 http://서버주소:9001로 접속하여 MinIO 콘솔을 사용할 수 있습니다.
1. 애플리케이션에서 MinIO S3 API 연동
2. 정기적인 백업 스케줄 설정
3. 모니터링 및 알림 시스템 구축
4. 필요에 따라 클러스터 구성 고려
MinIO는 높은 성능과 확장성을 제공하는 오브젝트 스토리지 솔루션으로, 적절한 설정과 관리를 통해 안정적인 서비스를 제공할 수 있습니다