본문 바로가기
설치 및 기술 자료/Linux

[Linux] MinIO S3 호환 스토리지 소개 및 활용

by 주식회사 서버몬 2025. 6. 12.

 

안녕하세요. 주식회사 서버몬 입니다.

오늘은 S3 호환 스토리지 구축에 활용 가능한 솔루션인 MinIO 를 설치하고 활용 해보겠습니다.

 

MinIO란?

 

 

 MinIO는 경량화된 오브젝트 스토리지 솔루션으로, AWS S3 API와 100% 호환되며, 퍼블릭/프라이빗 클라우드,

엣지 환경에서도 사용 가능합니다.

소프트웨어 정의 방식으로 운영되며, 업계 표준 하드웨어에서 실행되고, 100% 오픈 소스이며, 주요 라이선스는 GNU AGPL v3입니다.
MinIO는 보조 스토리지, 재해 복구 및 보관과 같은 기존 객체 스토리지 사용 사례에서 탁월한 성능을 발휘하는 동시에 머신 러닝, 분석 및 클라우드 기반 애플리케이션 워크로드와 관련된 과제를 극복하는 데 있어서도 독보적입니다.

 

MinIO 의 주요 특징으로는 

  • Amazone S3 API 호환
  • Go 언어로 작성되어 고성능
  • 클러스터링, 다중 디스크, 분산 저장 지원
  • Kubernetes 및 Docker 친화적

 

MinIO 설치

 

구성 환경 :

RockyLinux 8 (VM)

#MINIO 다운로드 & 설치
[root@localhost ~]# wget https://dl.min.io/server/minio/release/linux-amd64/archive/minio-20250524170830.0.0-1.x86_64.rpm -O minio.rpm
[root@localhost ~]# sudo dnf install minio.rpm

#MINIO 계정 추가
[root@localhost ~]# groupadd -r minio-user
[root@localhost ~]# useradd -M -r -g minio-user minio-user
[root@localhost ~]# chown minio-user:minio-user /mnt/data

#MINIO 환경 변수 설정
#사용할 볼륨 (MINIO_VOLUMES), 비밀번호(MINIO_ROOT_PASSWORD) 를 변경합니다.
vim /etc/default/minio

# MINIO_ROOT_USER and MINIO_ROOT_PASSWORD sets the root account for the MinIO server.
# This user has unrestricted permissions to perform S3 and administrative API operations on any resource in the deployment.
# Omit to use the default values 'minioadmin:minioadmin'.
# MinIO recommends setting non-default values as a best practice, regardless of environment

MINIO_ROOT_USER=myminioadmin
MINIO_ROOT_PASSWORD=minio-secret-key-change-me

# MINIO_VOLUMES sets the storage volume or path to use for the MinIO server.

MINIO_VOLUMES="/mnt/data"

# MINIO_OPTS sets any additional commandline options to pass to the MinIO server.
# For example, `--console-address :9001` sets the MinIO Console listen port
MINIO_OPTS="--console-address :9001"

#Systemd 제어 활성화
[root@localhost ~]# systemctl enable --now minio

#방화벽 허용
[root@localhost ~]# firewall-cmd --permanent --add-port=9000/tcp
[root@localhost ~]# firewall-cmd --permanent --add-port=9001/tcp
[root@localhost ~]# firewall-cmd –reload

 

 

서비스 구성 이후 http://서비스IP:9001 로 웹 콘솔에 접근 합니다.

 

 

초기 구성한 MINIO_ROOT_USER ,MINIO_ROOT_PASSWORD 비밀번호로 접근 합니다.

 

사용 가능한 버킷 리스트가 식별되며 파일, 폴더 트리 조회 또한 가능합니다.

 

사용자 생성 및 권한 할당

 

MinIO 의 CLI 관리자 유틸을 사용하여 사용자 생성과 권한 할당을 진행 하겠습니다.

# CLI 유틸리티 설치
[root@localhost ~]# wget https://dl.min.io/client/mc/release/linux-amd64/mcli-20250521015954.0.0-1.x86_64.rpm -O mcli.rpm
[root@localhost ~]# sudo dnf install mcli.rpm

# MINIO 서버 지정
[root@localhost ~]# mcli alias set myminio/ http://MINIO-SERVER MYUSER MYPASSWORD

# newuser 사용자 생성
[root@localhost ~]# mcli admin user add myminio newuser newuser1234
Added user `newuser` successfully.

# newuser 사용자 에게 admin 권한 부여
[root@localhost ~]# mcli admin policy attach myminio readwrite --user newuser
Attached Policies: [readwrite]
To User: newuser

 

 

버킷 생성

 

시스템 사용 용도에 맞게 버킷을  생성합니다.

#오브젝트  버킷 생성
[root@localhost ~]# mcli mb myminio/mybucket

 

 

버킷 접속 테스트

 

개발 코드 또는 S3 지원 클라이언트 를 통해 접근 합니다.

본 글에서는 WINSCP 와  Python 간단 코드 를 사용하겠습니다.

 

WinSCP 에서 접속

 

파일 프로토콜 Amazone S3, 포트번호 9000 으로 맞춰 저장합니다.

 

S3 옵션에 URL 스타일을 "경로" 기반으로 변경 후 로그인 합니다.

 

생성한 MyBucket 에 접근 합니다.

 

Python 코드 에서 파일 업로드

Python3으로 오브젝트 스토리지(예: AWS S3, MinIO, Naver Cloud Object Storage 등)에 파일을 업로드하려면 boto3 라이브러리를 주로 사용합니다. 아래는 AWS S3나 호환 가능한 오브젝트 버킷에 파일을 업로드하는 예시 코드입니다:

 

사전 준비
boto3 설치
pip install boto3

예시코드
import boto3
from botocore.exceptions import NoCredentialsError, ClientError

# 설정값 입력
ACCESS_KEY = 'your-access-key'
SECRET_KEY = 'your-secret-key'
BUCKET_NAME = 'your-bucket-name'
OBJECT_NAME = 'uploaded-file.txt'       # 버킷에 저장될 이름
LOCAL_FILE_PATH = 'local-file.txt'      # 로컬 파일 경로
ENDPOINT_URL = 'https://your-storage-endpoint'  # AWS가 아닌 경우 필요 (예: MinIO, NCP)

def upload_file_to_bucket():
    try:
        s3 = boto3.client(
            's3',
            aws_access_key_id=ACCESS_KEY,
            aws_secret_access_key=SECRET_KEY,
            endpoint_url=ENDPOINT_URL  # AWS S3는 생략 가능
        )

        s3.upload_file(LOCAL_FILE_PATH, BUCKET_NAME, OBJECT_NAME)
        print(f"✅ {OBJECT_NAME} 파일이 {BUCKET_NAME} 버킷에 업로드되었습니다.")
    except FileNotFoundError:
        print("❌ 로컬 파일을 찾을 수 없습니다.")
    except NoCredentialsError:
        print("❌ 자격 증명이 잘못되었습니다.")
    except ClientError as e:
        print(f"❌ 업로드 중 오류 발생: {e}")

if __name__ == '__main__':
    upload_file_to_bucket()

 

 

mybuket 에 test.txt 파일을 업로드 성공 하였습니다.

 

감사합니다.

1U서버 / 2U서버 / AI서버 / alyac / APC / APC UPS / backup / carepack / centos / chakramax / cuda / DAS / DB / DB서버 / defog / DEFOG랙 / dell5820 / dell5820t / dell7920 / dellpoweredge / dellr240 / dellr340 / dellr350 / dellr450 / dellr540 / dellr630 / dellr640 / dellr740 / dellr750 / dellserver / dellt40 / dellt440 / dellt5820 / dell서버 / DELL서버CPU / DELL서버RAID컨트롤러 / DELL서버SAS하드디스크 / DELL서버가격비교 / DELL서버가격비교견적 / DELL서버견적 / DELL서버구매 / DELL서버디스크교체 / DELL서버메모리 / dell서버서버몬 / DELL서버펌웨어 / DELL서버하드디스크구매 / dell옵션 / dell워크스테이션 / dl20 / dl20gen10 / dl20gen11 / dl360 / dl360gen10 / dl360gen11 / dl380 / dl380g10 / dl380gen10 / dl380gen11 / ECC메모리 / EDFOG랙가격 / embedded / est security / ESTSOFT / FIRMWARE / GPU / gpu서버 / gpu타워형서버 / greenlake / HA솔루션 / HP GPU / hp hdd / hpdl20 / HPDL20Gen10 / hpdl360 / hpdl360gen10 / hpdl380 / hpdl380g10 / HPDL380Gen10 / HPE / HPE GPU / hpe hdd / hpe rok / HPE Service Pack for Proliant / HPE SPP / hpe ssa / hpedl20 / hpedl20gen10 / hpedl360gen10 / hpe서버 / HPE서버CPU / HPE서버RAID컨트롤러 / HPE서버SAS하드디스크 / HPE서버가격비교 / HPE서버가격비교견적 / HPE서버견적 / HPE서버구매 / HPE서버드라이버설치 / HPE서버디스크교체 / HPE서버메모리 / HPE서버비용 / hpe서버소음 / HPE서버펌웨어 / HPE서버하드디스크구매 / hpe옵션 / hpe정품 / hpgen10 / hpml30 / hpserver / hpz2 / hpz4 / hpz4g4 / hpz6g4 / hpz8g4 / hp마이크로서버 / hp서버 / hp서버cto / hp서버pc / HP서버메모리 / hp서버소음 / hp서버컴퓨터 / HP서버파워 / HP서버펌웨어 / HP서버하드디스크 / hp옵션 / hp워크스테이션 / hp정품 / hp프로라이언트 / HYPER BACKUP / ibm서버 / ilo / Intelligent Provisioning / internetdisk / KVM / KVM 기술지원비(비용) / KVM 설치비 / L2스위치 / L3스위치 / LENONO서버SAS하드디스크 / lenovop620 / lenovor650 / LENOVO서버 / LENOVO서버CPU / LENOVO서버RAID컨트롤러 / LENOVO서버가격비교 / LENOVO서버가격비교견적 / LENOVO서버견적 / LENOVO서버구매 / LENOVO서버디스크교체 / LENOVO서버메모리 / LENOVO서버하드디스크구매 / LENOVO펌웨어업데이트 / Linux / ML30 / ml30gen10 / ml30gen11 / ML350GEN10 / ml350gen11 / ML360 / MS CSP / MSSQL / MSSQL 기술지원비(비용) / MSSQL 설치비 / MYSQL / MySQL 기술지원비(비용) / MySQL 설치비 / NAS / NVIDIA / Office 365 / oneview / orange / OS설치 / PA-410 / PA-440 / paloalto / poweredger740 / poweredger750 / precision5820 / QUADRO / r240 / r250 / r340 / r360 / r440 / r550 / r650 / r660 / r740 / r750xs / r760 / r760xs / RAID / redhat / RHEL설치 / RMS랙 / rocky / s100i / securedisk / server / serverpc / smart storage administrator / SPP / sql server / sr250 / sr650 / SYNOLOGY / SYNOLOGY나스 / t150 / t360 / UPS / UPS기술지원 / UPS납품 / UPS설치 / V3 / veeam / vroc / windows server / Windows서버설치 / XEON서버 / z8g4 / 가상서버 / 가성비서버 / 기술지원비(비용) / 나스기술지원 / 나스설치지원 / 네트워크스위치 / 네트워크장비 / 더블테이크 / 데이터베이스 / 델5820 / 델서버 / 델서버비용 / 델서버펌웨어업데이트 / 델옵션 / 델워크스테이션 / 델컴퓨터워크스테이션 / 디포그 / 디포그랙 / 디포그랙가격 / 딥러닝 / 딥러닝pc / 딥러닝서버 / 랙 / 랙(RACK) 기술지원비(비용) / 랙(RACK) 설치비 / 랙납품설치 / 랙설치 / 레노버p620 / 레노버서버 / 레노버워크스테이션 / 레노보서버 / 레노보서버펌웨어 / 레드헷설치 / 레이드 / 레이드구성 / 록키리눅스 / 리눅스 / 리눅스 기술지원비(비용) / 리눅스 설치비 / 리눅스서버 / 리눅스서버설치 / 리눅스서버트러블슈팅 / 리눅스트러블슈팅 / 문서보안 / 문서중앙화 / 미니서버 / 미니서버랙 / 미니서버렉 / 미디어서버 / 방화벽 / 방화벽 기술지원비(비용) / 방화벽 설치비 / 방화벽엔지니어 / 백업 / 백업 기술지원비(비용) / 백업 서버 / 백업서비스 / 백업솔루션 / 보안솔루션 / 보안솔루션구매 / 보안솔루션설치 / 보안툴 / 빔백업 / 샤크라맥스 / 서버 / 서버 기술지원비(비용) / 서 버 랙마운트비용 / 서버 설치비 / 서버 장애조치비용 / 서버CPU / 서버MEMORY / 서버OS설치 / 서버pc / 서버가격 / 서버가속기 / 서버견적 / 서버교체 / 서버구매 / 서버구입 / 서버구축 / 서버기술지원 / 서버납품 / 서버디스크장애처리 / 서버랙 / 서버렉 / 서버렉마운트 / 서버메모리 / 서버 몬 / 서버몬기술지원 / 서버백업 / 서버보안 / 서버부품 / 서버엔지니어 / 서버옵션 / 서버용GPU / 서버용PC / 서버용그래픽카드 / 서버용메모리 / 서버 / 컴퓨터 / 서버용하드디스크 / 서버재고 / 서버컴 / 서버컴퓨터 / 서버트러블슈팅 / 서버판매 / 서버하드 / 서버호스팅 / 스위치 / 스위치 기술지원비(비용) / 스위치 설치비 / 스토리지 / 스토리지 기술지원비(비용) / 스토리지 랙마운트비용 / 스토리지 설치비 / 스토리지 장애조치비용 / 스토리지납품설치 / 스토리지서버 / 시놀로지DS918 / 시놀로지HyperBackup / 시놀로지나스 / 시놀로지나스백업 / 시놀로지하이퍼백업 / 시큐어디스크 / 안랩 / 알약 / 앱서버 / 오피스 365 / 우분투설치 / 워크스테이션 / 워크스테이션pc / 워크스테이션컴퓨터 / 윈도우서버 / 윈도우서버2016 / 윈도우서버2019 / 윈도우서버2022 / 윈도우서버설치 / 윈도우서버컴퓨터 / 윈도우서버트러블슈팅 / 윈도우즈 기술지원비(비용) / 윈도우즈 설치비 / 이스트소프트 / 이스트 시큐리티 / 이중화솔루션 / 이중화솔루션구매 / 이중화솔루션설치 / 인터넷디스크 / 임베디드 / 저가서버 / 저렴한서버 / 정품서버 / 정품서버옵션 / 제온서버 / 젠서버 / 중고서버 / 중고워크스테이션 / 카보나이트 / 카스퍼스키 / 컴퓨터서버 / 케어팩 / 타워서버 / 타워형서버 / 팔로알토 / 페도라설치 / 프로라이언트

댓글