Object Storage

Object Storage

오브젝트 스토리지(Object Storage)란?

오브젝트 스토리지는 데이터를 파일이 아닌 개별 객체(Object) 단위로 저장하는 스토리지 시스템입니다. 각 오브젝트는 데이터(파일) + 메타데이터 + 고유 식별자(Unique ID) 로 구성되며, 파일 시스템이 아닌 플랫(Flat) 구조에서 저장됩니다.

이러한 특성 덕분에 무한 확장성(Scalability), 낮은 비용, API 기반 접근이 가능하여 클라우드 환경에서 널리 사용됩니다. 대표적인 오브젝트 스토리지 서비스로는 Amazon S3, Google Cloud Storage, MinIO, Ceph 등이 있습니다.


1. 오브젝트 스토리지의 작동 방식

💾 저장 과정:

  1. 사용자가 파일을 업로드하면 오브젝트로 변환됨
  2. 오브젝트는 고유 식별자(Unique ID)와 메타데이터를 가지며, 계층 구조(디렉터리)가 없음
  3. 각 오브젝트는 분산된 스토리지 시스템에 저장됨
  4. 데이터 접근 시 API(예: RESTful API)를 통해 객체를 호출

🔹 예시:

  • “image.jpg"를 오브젝트 스토리지에 업로드하면, 파일이 객체(Object) 로 변환됨
  • “image.jpg"는 메타데이터(파일 크기, 생성일, 태그, 권한 등)와 함께 저장됨
  • API 또는 웹 인터페이스를 통해 URL로 직접 접근 가능

📌 즉, 오브젝트 스토리지는 디렉터리 구조가 아니라 “키-값(Key-Value) 스토어” 같은 방식으로 동작합니다.


2. 오브젝트 스토리지의 주요 특징

무한 확장 가능 → 데이터 노드를 추가하면 자동 확장
파일 시스템 없이 데이터 저장 → 디렉터리 구조가 아닌 플랫(Flat) 구조
메타데이터 포함 가능 → 각 오브젝트에 태그, 권한, 설명 등 다양한 정보를 추가 가능
RESTful API 기반 접근 → URL, HTTP API(S3 API 등)로 데이터 접근
높은 내구성 및 가용성 → 데이터 자동 복제 및 분산 저장
콜드 스토리지(장기 보관) 가능 → 저비용으로 장기 데이터 보관 최적화


3. 오브젝트 스토리지 vs. 블록/파일 스토리지 비교

특징오브젝트 스토리지블록 스토리지파일 스토리지
저장 방식오브젝트 단위블록 단위파일 단위
구성 구조플랫 구조 (고유 ID)비구조적 (파일 시스템 필요)계층적 (디렉터리 구조)
확장성매우 뛰어남 (무한 확장)제한적 (SAN 확장 필요)제한적 (서버당 제한)
데이터 검색가능 (메타데이터 기반)불가능가능 (파일명, 디렉터리 탐색)
속도중간 (HTTP API 요청)매우 빠름 (블록 직접 접근)중간 (파일 시스템 탐색)
비용저렴 (장기 저장 최적화)비쌈 (고성능 SSD 필요)중간 (NAS 구축 비용)
주요 사례백업, CDN, 빅데이터 저장DB, VM, ERP파일 공유, 협업 시스템

4. 오브젝트 스토리지의 장점

무한 확장 가능 → 노드를 추가하면 자동 확장되어 페타바이트(PB) 이상 저장 가능
비용 효율성 높음 → 저렴한 장기 저장 가능 (콜드 스토리지)
메타데이터 기반 검색 가능 → 태그, 권한, 설명 등을 추가하여 데이터 관리 용이
멀티 리전 지원 → 데이터가 여러 지역(Region)에 자동 분산 저장
HTTP API 접근 가능 → REST API를 통해 웹 애플리케이션에서 직접 호출 가능
자동 데이터 복제 및 내구성 보장 → 데이터 손실 방지를 위한 복제(Redundancy) 기능


5. 오브젝트 스토리지의 단점

파일 변경이 어렵다 → 수정하려면 전체 파일을 다시 업로드해야 함
고속 읽기/쓰기에 부적합 → 블록 스토리지처럼 빠른 랜덤 I/O 불가능
일반 파일 시스템(FS)으로 마운트 어려움 → 직접 OS에서 마운트해서 사용하기 어려움
실시간 트랜잭션 데이터에 부적합 → 데이터베이스처럼 빠른 IOPS가 필요한 경우 불리함


6. 오브젝트 스토리지의 주요 사용 사례

📌 1) 백업 및 장기 데이터 보관 (Backup & Archiving)

  • 클라우드 기반 데이터 백업, 로그 저장소, 스냅샷 보관
  • AWS S3 Glacier 같은 콜드 스토리지(Cold Storage) 를 활용해 장기 보관

📌 2) 콘텐츠 전송 네트워크(CDN) 및 스트리밍

  • 이미지, 동영상, 정적 파일 저장 후 CDN 배포
  • 예: 넷플릭스, 유튜브 등의 대용량 미디어 파일 저장

📌 3) 빅데이터 및 AI/ML 데이터 저장

  • 데이터 레이크(Data Lake) 역할
  • 머신러닝(ML), 데이터 분석을 위한 비정형 데이터 저장소

📌 4) 클라우드 애플리케이션 데이터 저장

  • 웹 애플리케이션에서 파일 업로드/다운로드 저장소로 사용
  • 예: Google Drive, Dropbox 같은 클라우드 파일 저장 서비스

📌 5) 소프트웨어 배포 및 컨테이너 이미지 저장

  • Docker 컨테이너 이미지를 저장하는 Docker Registry
  • 패키지 관리 시스템(예: PyPi, NPM) 데이터 저장

7. 오브젝트 스토리지 관련 기술 및 서비스

🔹 클라우드 오브젝트 스토리지 서비스

클라우드 제공업체서비스
AWSS3 (Simple Storage Service)
Google CloudCloud Storage
Microsoft AzureBlob Storage
IBMCloud Object Storage
OpenSourceMinIO, Ceph, OpenStack Swift

🔹 오브젝트 스토리지 프로토콜 및 API

프로토콜/API설명
S3 APIAWS S3와 호환되는 오브젝트 스토리지 API
REST APIHTTP 기반 데이터 저장/조회
gRPC고성능 API 통신 방식
WebDAV파일 시스템처럼 마운트 가능

8. 결론: 오브젝트 스토리지를 언제 사용해야 할까?

✅ 오브젝트 스토리지를 선택해야 하는 경우:

  • 대량의 비정형 데이터(이미지, 동영상, 로그, IoT 데이터)를 저장해야 할 때
  • 무제한 확장성과 높은 내구성이 필요한 경우
  • 백업, 데이터 보관(아카이빙), 콘텐츠 전송 네트워크(CDN)가 필요한 경우
  • 파일을 URL로 직접 접근하고 싶을 때 (REST API 기반 접근)
  • AWS S3, MinIO 같은 클라우드/오픈소스 솔루션을 활용하고 싶을 때

🚫 오브젝트 스토리지를 사용하지 않는 것이 좋은 경우:

  • 고속 데이터 읽기/쓰기 성능이 중요한 경우블록 스토리지 사용
  • 운영체제에서 직접 파일 시스템으로 마운트해야 하는 경우파일 스토리지(NAS) 사용
  • 트랜잭션 DB, ERP, OLTP 워크로드가 필요한 경우블록 스토리지(SAN) 사용

📌 즉, 오브젝트 스토리지는 “무제한 확장 가능, 저렴한 비용, API 기반 저장"이 필요한 환경에서 최적의 선택입니다! 🚀