인포그랩
home
회사 소개
home

MinIO 구축하기

소개

MinIO는 오픈소스 오브젝트 스토리지(Object Storage)입니다.
오브젝트 스토리지는 데이터 스토리지 아키텍처 유형 중 하나로, 비정형 데이터 형식인 오브젝트(객체)로 데이터를 저장하고 관리합니다. 각각의 오브젝트는 데이터, 메타데이터(객체에 대한 설명 정보), 그리고 고유 식별자로 이루어져 있습니다. 데이터를 계층적 디렉터리 구조 또는 고정 크기 블록으로 구성하는 기존 파일 시스템이나 블록 스토리지와 달리 오브젝트 스토리지는 데이터를 독립적인 엔터티로 취급합니다.
오브젝트 스토리지는 일반적으로 클라우드 스토리지, 콘텐츠 전송 네트워크(CDN), 백업 및 아카이빙, 데이터 레이크, 미디어 스트리밍 플랫폼과 같은 다양한 데이터 집약적 애플리케이션에 사용됩니다. 유연성, 확장성 및 대량의 구조화되지 않은 데이터를 처리할 수 있는 기능으로 인해 최신 스토리지 인프라에서 널리 사용됩니다.
일반적으로 많이 사용하는 오브젝트 스토리지에는 주요 클라우드 서비스 제공업체(CSP)에서 제공하는 Amazon S3, Microsoft Azure Blob Storage, Google Cloud Storage가 있습니다.
이번 실습에서는 좀 더 유연하게 온프레미스, 퍼블릭 또는 프라이빗 클라우드에 배포하여 사용할 수 있는 MinIO를 설치합니다. 애플리케이션과 MinIO를 동일한 Kubernetes 클러스터에 배포하면 네트워크 지연 시간(Latency)이 감소하고, 효율적인 통신이 가능해져 클러스터 내 트래픽에 대한 기본 인프라를 최적화하여 활용할 수 있습니다.
이후 Labs 과정에서 배포할 Loki와 Tempo에서 사용하는 버킷(Bucket)을 생성하고 데이터를 저장할 수 있습니다.

MinIO란?

MinIO는 Amazon S3와 호환되는 API를 제공하며, 모든 핵심 S3 기능을 지원하는 고성능 오브젝트 스토리지(Object Storage) 솔루션입니다. MinIO는 확장성, 고성능, 다중 테넌시, 데이터 보호 및 하이브리드 클라우드 지원과 같은 기능을 제공합니다. 이를 통해 사용자는 분산 아키텍처, 병렬 처리 및 컨테이너화의 이점을 누리면서 대량의 구조화되지 않은 데이터를 개체로 저장하고 검색할 수 있습니다. MinIO는 데이터 내구성, 액세스 제어 및 Kubernetes와 같은 널리 사용되는 클라우드 네이티브 플랫폼과 통합할 수 있습니다. 이 오픈 소스 솔루션은 자체 관리 개체 스토리지 기능을 찾는 조직에 유연성, 사용자 정의 옵션 및 비용 효율성을 제공합니다.
MinIO의 주요 특징은 다음과 같습니다.
Amazon S3 호환 API 제공
스토리지 클러스터에 더 많은 서버 또는 노드를 추가하여 수평으로 확장하도록 설계
분산 아키텍처와 병렬 처리를 활용하여 데이터 집약적 워크로드에 고성능 제공
클라우드 네이티브 접근 방식으로 구축되어 Kubernetes와 같은 컨테이너화된 환경에 최적화
여러 사용자 또는 애플리케이션이 스토리지 인프라에 안전하게 액세스할 수 있도록 멀티 테넌시 지원
인라인 이레이저 코딩(Erasure Coding)으로 데이터 보호

학습 내용

MinIO Helm Chart 리포지터리를 구성하는 방법
MinIO Helm Chart의 구성 정보를 배포 환경에 맞게 설정하는 방법
Helm Chart로 MinIO를 배포하고 확인하는 방법

아키텍처

사전 준비사항

기본 요건

Kubernetes에 대한 기본 개념
Helm, kubectl에 대한 기본 개념
Object Storage에 대한 이해

필요 항목

Minio를 배포할 Kubernetes 클러스터가 구축되어 있어야 합니다.
TLS/SSL 인증서를 사용할 수 있도록 cert-manager가 구축되어 있어야 합니다.
MinIO Ingress 리소스를 사용할 수 있도록 NGINX Ingress Controller가 구축되어 있어야 합니다.