티스토리 뷰
MinIO 설치, 이렇게 쉬워도 되나요?
요즘 기술의 발전 속도에 감탄할 때가 많습니다.
그중 하나가 바로 MinIO 설치 경험이었습니다.
보통 새로운 시스템을 설치할 땐 문서부터 보고, 의존성도 확인하고, 예상보다 시간이 더 걸리는 경우가 많죠. 그런데 이번에는 정말 다릅니다.
터미널에 명령어 하나 입력했을 뿐인데, 10초도 안 돼서 MinIO가 설치되어버렸습니다.
정말 “좋은 세상이다”라는 말이 절로 나올 정도였습니다.
클라우드 네이티브 환경에 적합한 오브젝트 스토리지를 이렇게 빠르게 설치할 수 있다니, 개발자 입장에서 이보다 더 편한 세상이 있을까 싶습니다.
이제 설치 시간보다 설정을 고민하는 시간이 더 오래 걸리는 시대가 온 것 같네요. 🙌

원샷 스크립!
| # ✅ 1. 시스템에 필요한 기본 패키지 설치 echo "[+] Updating system and installing required packages..." sudo apt update -y && sudo apt install -y wget curl tar # ✅ 2. MinIO 서버 바이너리 다운로드 echo "[+] Downloading MinIO server..." wget https://dl.min.io/server/minio/release/linux-amd64/minio -O /usr/local/bin/minio chmod +x /usr/local/bin/minio # ✅ 3. MinIO 사용자 생성 (선택) echo "[+] Creating minio user..." sudo useradd -r minio-user -s /sbin/nologin # ✅ 4. 데이터 디렉토리 생성 echo "[+] Creating storage directory..." sudo mkdir -p /usr/local/share/minio sudo chown minio-user:minio-user /usr/local/share/minio # ✅ 5. 환경변수 설정 (ACCESS, SECRET KEY) echo "[+] Creating environment file..." cat <<EOF | sudo tee /etc/default/minio MINIO_ROOT_USER=minioadmin MINIO_ROOT_PASSWORD=minioadmin123 MINIO_VOLUMES="/usr/local/share/minio" MINIO_OPTS="--console-address :9001" EOF # ✅ 6. Systemd 서비스 등록 echo "[+] Creating systemd service file..." cat <<EOF | sudo tee /etc/systemd/system/minio.service [Unit] Description=MinIO Object Storage After=network.target [Service] User=minio-user Group=minio-user EnvironmentFile=/etc/default/minio ExecStart=/usr/local/bin/minio server \$MINIO_OPTS \$MINIO_VOLUMES Restart=always LimitNOFILE=65536 [Install] WantedBy=multi-user.target EOF # ✅ 7. 서비스 시작 및 자동 시작 설정 echo "[+] Starting MinIO service..." sudo systemctl daemon-reexec sudo systemctl daemon-reload sudo systemctl enable minio sudo systemctl start minio # ✅ 8. 완료 안내 echo "✅ MinIO 설치 및 실행 완료!" echo "🔗 접속 URL: http://<서버IP>:9000 (콘솔: http://<서버IP>:9001)" echo "🧑 사용자: minioadmin" echo "🔑 비밀번호: minioadmin123" |

패스워드 변경
| # vi /etc/default/minio MINIO_ROOT_USER=새로운아이디 MINIO_ROOT_PASSWORD=새로운비밀번호 MINIO_VOLUMES="/data" MINIO_OPTS="--console-address :9001" |

업로드 파이썬 코드
| from minio import Minio from minio.error import S3Error import sys import os # MinIO 클라이언트 client = Minio( "192.168.0.99:9000", access_key="minioadmin", secret_key="minioadmin123", secure=False ) bucket_name = "cym" def upload_file(local_path, remote_name=None): """ 파일 업로드 :param local_path: 업로드할 로컬 파일 경로 :param remote_name: MinIO에 저장될 이름 (없으면 원본 파일명 사용) """ # 파일 존재 확인 if not os.path.exists(local_path): print(f"❌ 파일을 찾을 수 없습니다: {local_path}") return # remote_name이 없으면 파일명만 추출 if remote_name is None: remote_name = os.path.basename(local_path) try: # 파일 업로드 client.fput_object( bucket_name=bucket_name, object_name=remote_name, file_path=local_path ) print(f"✅ 업로드 성공!") print(f" 로컬: {local_path}") print(f" MinIO: {remote_name}") print(f" 버킷: {bucket_name}") except S3Error as e: print(f"❌ 업로드 실패: {e}") if __name__ == "__main__": if len(sys.argv) < 2: print("사용법: python upload_file.py <파일경로> [MinIO저장이름]") print("예시: python upload_file.py test.txt") print("예시: python upload_file.py test.txt folder/renamed.txt") else: local_file = sys.argv[1] remote_file = sys.argv[2] if len(sys.argv) > 2 else None upload_file(local_file, remote_file) |

결과!

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- AWS
- RAG
- 임베딩
- 테라폼
- llama
- embedding
- poetry
- K8s
- Ai
- Oracle
- kiwipiepy
- 오라클
- 코로나19
- 버쳐박스
- MSA
- RangChain
- VectorStore
- KoSimCSE
- MCP
- open ai
- faiss
- n8n
- 쿠버네티스
- CVE 취약점 점검
- Qdrant
- 5.4.0.1072
- llm
- chunking
- Weaviate
- Chroma
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
| 29 | 30 | 31 |
글 보관함
