홈서버에서 아마존 S3와 호환되는 분산 스토리지 구축하기(Feat. MinIO)
안녕하세요. 달소입니다.
이번에는 홈서버 / 프라이빗 클라우드환경에서 아마존 S3와 비슷한 분산 스토리지 서비스인 MinIO를 구축해보겠습니다.
이렇게 S3와 동일한 형태의 스토리지를 구축해놓으면 S3로 백업이 가능한 솔루션들을 직접 호스팅하는 서버에 백업 할 수 있다는 장점이있습니다.
MinIO란?
MinIO는 고성능, 분산형 객체 스토리지 시스템입니다. MinIO는 Amazon S3와 호환되는 API를 제공하며, 프라이빗 클라우드와 하이브리드 클라우드 환경에서 사용됩니다. MinIO는 Go 언어로 작성되어 있으며, 오픈 소스로 개발되고 있습니다.
MinIO의 주요 특징은 다음과 같습니다:
- 높은 성능: MinIO는 적은 컴퓨팅 자원으로 높은 처리량과 낮은 지연 시간을 제공합니다.
- 확장성: MinIO는 간단한 설정으로 수천 개의 노드에 걸쳐 수십 PB(페타바이트)의 데이터를 저장하고 관리할 수 있습니다.
- 분산형 아키텍처: MinIO는 여러 노드에 걸쳐 데이터를 분산하여 저장할 수 있으며, 이를 통해 데이터 내구성과 가용성이 높아집니다.
- S3 호환 API: MinIO는 Amazon S3와 호환되는 API를 제공하여, S3 기반 애플리케이션들과 호환성을 갖춥니다.
- 보안: MinIO는 통합된 암호화와 사용자 인증, 접근 제어 기능을 제공합니다.
- 간편한 배포: MinIO는 도커, 쿠버네티스 등 다양한 플랫폼에 쉽게 배포할 수 있습니다.
데이터 분석, 백업, 머신 러닝, 웹 애플리케이션 등 다양한 산업 분야에서 MinIO를 사용하여 대규모 객체 스토리지를 구축하고 관리할 수 있습니다.
컨테이너 생성하기
여기서는 docker를 통해 간단하게 컨테이너로 구축하는방법입니다
version: '3.8'
services:
minio:
image: minio/minio
container_name: minio
ports:
- "9000:9000"
environment:
MINIO_ROOT_USER: <your_access_key>
MINIO_ROOT_PASSWORD: <your_secret_key>
command: server /data
volumes:
- /data/MinIO:/data
networks:
- minio-network
networks:
minio-network:
driver: bridge
이 파일을 사용하기 전에, <your_access_key>
와 <your_secret_key>
를 적절한 값으로 변경해 주세요.
이 docker-compose.yml
파일을 작성한 후, docker-compose up -d
명령어를 사용하여 MinIO 서버구동을 진행합니다.
컨테이너 생성 후 9000번 포트로 접속해줍니다.
s3 호환 분산 스토리지마저… 독커…?ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ
어차피 스토리지에 서비스가 붙는것이니.. 괜찮을것같긴합니다
저는 9090으로했었네요
version: '3.8'
services:
minio:
image: quay.io/minio/minio
container_name: minio
ports:
- "9000:9000"
- "9090:9090"
environment:
MINIO_ROOT_USER: ROOTNAME
MINIO_ROOT_PASSWORD: CHANGEME123
command: server /data --console-address ":9090"
volumes:
- ~/minio/data:/data
cmt alert