요즘IT
위시켓
최근 검색어
전체 삭제
최근 검색어가 없습니다.

IT 서비스에서 빠질 수 없는 인프라 요소 중 하나가 바로 ‘스토리지(storage)’인데요. 정형화된 데이터를 저장하는 데이터베이스와 더불어 비정형 데이터, 다양한 멀티미디어 형태의 데이터를 저장하고 보관하기 때문에, 서비스에 있어 꼭 필요한 요소입니다. 여러 스토리지 중에서도 클라우드 도입의 발전으로, 현재 가장 보편화된 스토리지는 ‘오브젝트 스토리지(Object Storage)’라고 할 수 있는데요. 이번 글에서는 오브젝트 스토리지의 이해와 활용을 다뤄볼 예정이며, 여기서 ‘오브젝트’가 무엇을 의미하는지, 오브젝트 스토리지와 함께 사용할 만한 오픈 소스는 무엇인지 등을 함께 살펴보겠습니다.

회원가입을 하면 원하는 문장을
저장할 수 있어요!

다음

회원가입을 하면
성장에 도움이 되는 콘텐츠를
스크랩할 수 있어요!

확인

개발

‘오브젝트 스토리지’는 어떻게 활용할까?

년차,
어떤 스킬
,
어떤 직무
독자들이 봤을까요?
어떤 독자들이 봤는지 궁금하다면?
로그인

IT 서비스에서 빠질 수 없는 인프라 요소 중 하나가 바로 ‘스토리지(storage)’인데요. 정형화된 데이터를 저장하는 데이터베이스와 더불어 비정형 데이터, 다양한 멀티미디어 형태의 데이터를 저장하고 보관하기 때문에, 서비스에 있어 꼭 필요한 요소입니다. 여러 스토리지 중에서도 클라우드 도입의 발전으로, 현재 가장 보편화된 스토리지는 ‘오브젝트 스토리지(Object Storage)’라고 할 수 있는데요. 이번 글에서는 오브젝트 스토리지의 이해와 활용을 다뤄볼 예정이며, 여기서 ‘오브젝트’가 무엇을 의미하는지, 오브젝트 스토리지와 함께 사용할 만한 오픈 소스는 무엇인지 등을 함께 살펴보겠습니다.

 

오브젝트의 이해

오브젝트 스토리지에서 의미하는 ‘오브젝트(Object)’는 데이터 자체와 해당 데이터를 식별하는 메타데이터(metadata)의 조합을 말합니다. 이 메타데이터에는 오브젝트 자체의 고유한 식별자와 기타 속성 - 크기, 유형, 생성일 등이 포함될 수 있습니다. 간단히 말해서, 오브젝트는 데이터와 데이터에 대한 설명이 함께 저장된 하나의 단위입니다.

 

오브젝트는 파일 시스템에서 파일과 유사한 개념이지만, 파일 시스템과는 다르게 계층 구조를 가지지 않습니다. 인터넷으로 연결된 클라우드 서비스의 오브젝트 스토리지는 버킷과 오브젝트에 각각 고유한 식별자가 할당되고 이를 통해 접근됩니다. 오브젝트의 특성은 다음과 같습니다.

 

  • 고유 식별자: 각 오브젝트는 고유한 식별자를 가지며, 이 식별자는 오브젝트를 고유하게 식별합니다. 이 식별자는 주로 해시 함수를 통해 생성됩니다.
  • 데이터: 오브젝트는 데이터 자체를 포함합니다. 이 데이터는 다양한 형식일 수 있으며, 오브젝트 스토리지 시스템은 이러한 데이터를 바이너리 형태로 저장합니다.
  • 메타데이터: 오브젝트에는 해당 데이터와 관련된 메타데이터가 포함됩니다. 이 메타데이터는 오브젝트의 특성을 설명하며, 보통은 키-값 쌍의 형태로 저장됩니다.

 

오브젝트는 주로 HTTPS 기반의 REST API를 통해 접근되는데, 이 API를 통해 오브젝트를 생성하고 읽기, 쓰기, 삭제 등의 작업을 할 수 있습니다.

 

 

오브젝트 스토리지란?

오브젝트 스토리지는 데이터를 위에서 설명한 오브젝트 단위로 저장하는 방식을 말합니다. 데이터를 객체 단위로 저장하며, 이러한 객체들은 고유한 식별자로 구분합니다. 이러한 구조는 파일 시스템의 디렉터리 구조와는 다릅니다.

 

블록 스토리지나 파일 스토리지와 같이 고전적인 스토리지는 블록 단위 또는 파일 단위로 데이터를 저장하는데요. 블록 스토리지는 블록 단위로 데이터를 처리하고, 파일 스토리지는 파일 시스템의 형태를 갖추며 데이터를 저장합니다. 그러나 오브젝트 스토리지는 객체 단위로 데이터를 분산하여 저장하고 관리함으로써, 대규모의 데이터에 대한 확장성이 뛰어납니다.

 

그림1. 스토리지의 비교 <출처: ByteByteGo Newsletter>

 

오브젝트 스토리지는 대용량의 데이터를 효율적으로 관리하고 저장하기 위한 방법으로 사용되며, 이러한 오브젝트 단위의 데이터 관리 방식은 대규모 데이터 처리와 분산 시스템에서 특히 효과적입니다. 또한 대규모의 비정형 데이터를 저장하기에 적합한데요. 실제로도 대용량의 멀티미디어 파일, 백업 데이터, 문서 파일과 웹 콘텐츠 등을 저장하는 데 많이 사용됩니다. 따라서 오브젝트 스토리지는 대용량의 비정형 데이터를 효율적으로 관리하고 저장하는 데 적합한 선택지가 될 수 있습니다.

 

 

오브젝트 스토리지 사용을 위한 오픈소스

이러한 오브젝트 스토리지와 상호 작용하는 오픈소스 도구를 활용하면, 좀 더 편리하게 파일 전송, 동기화, 복제, 백업, 객체 관리 등 다양한 작업을 수행할 수 있습니다. 그중 대표적인 오픈소스 3개를 뽑아봤습니다.


s3cmd 도구

s3cmd는 S3와 호환되는 오브젝트 스토리지를 관리 및 사용하기 위한 CLI 도구로, 파일 전송, 복제, 삭제 등의 작업을 수행할 수 있습니다. 주로 대용량의 데이터를 안전하게 저장하고 관리하는 데 사용되며, 백업, 데이터 마이그레이션, 웹 호스팅 등 다양한 용도로 활용됩니다. 명령어가 직관적이라 개발자에게 웹 콘솔을 사용하는 것보다 훨씬 빠르고, 효율적인 스토리지 작업을 수행할 수 있도록 합니다.

 

아래 예제는 s3cmd를 통해 오브젝트 스토리지의 디렉터리라 할 수 있는 버킷(bucket)을 생성하고 오브젝트를 업로드한 후, 다시 오브젝트를 조회하여 메타데이터를 확인하는 예제입니다.

 

% s3cmd mb s3://yozmit-bucket
Bucket 's3://yozmit-bucket/' created


% s3cmd put myimage.jpeg s3://yozmit-bucket
upload: 'myimage.jpeg' -> 's3://yozmit-bucket/myimage.jpeg'  [1 of 1]
1960426 of 1960426   100% in    2s   812.24 KB/s  done


% s3cmd info s3://yozmit-bucket/myimage.jpeg
s3://yozmit-bucket/myimage.jpeg (object):
   File size: 1960426
   Last mod:  Mon, 18 Mar 2024 14:41:23 GMT
   MIME type: image/jpeg
   Storage:   STANDARD
   MD5 sum:   0eedd9740e64b075950bb719e243ced3
   SSE:      none
   Policy:    none
   CORS:   none
   ACL:       1e305235-8a59-4965-9c60-53affd818edd: FULL_CONTROL
   x-amz-meta-s3cmd-attrs: atime:1710769395/ctime:1710769393/gid:20/gname:staff/md5:0eedd9..

 

S3FS

s3fs는 FUSE(Filesystem in Userspace)를 사용해 S3 호환 오브젝트 스토리지의 버킷을 가상머신에 마운트하여, 파일 시스템으로 접근할 수 있게 해주는 오픈 소스 프로젝트입니다. 이를 통해 S3 버킷을 마치 로컬 파일 시스템처럼 다룰 수 있으며, 파일의 읽기, 쓰기, 삭제 등의 작업을 수행할 수 있습니다.

 

이 경우 오브젝트 스토리지는 가상머신의 안정적인 백업 저장소로 사용되거나, 생성된 로그 파일이나 기타 콘텐츠를 저렴한 오브젝트 스토리지에 저장할 수 있게 됩니다. 동일한 작업을 오브젝트 스토리지 API를 사용하여 구현하는 것보다 훨씬 간단하게 사용할 수 있습니다.

 

그림2. S3FS의 동작 방식 <출처: 작가>

 

RClone

RClone은 클라우드 저장소 간의 데이터 동기화 및 전송을 위한 오픈 소스 도구로, 다양한 클라우드 서비스와 호환되며 안전하고 효율적인 데이터 이동을 제공합니다. 예를 들어, 로컬 파일 시스템과 Amazon S3, Google Drive, Dropbox, Microsoft OneDrive, Akamai 오브젝트 스토리지 등과 같은 다른 클라우드 스토리지 간에 파일을 동기화할 수 있습니다.

 

동일한 클라우드 환경에서도 두 개 이상의 오브젝트 스토리지 버킷의 동기화 및 복제를 지원하기에, 멀티 리전 혹은 멀티 클라우드 오브젝트 스토리지를 사용하는 경우에 유용합니다. 

 

그림3. RClone의 동작 방식 <출처: 작가>

 

 

클라우드 서비스 제공사의 ‘오브젝트 스토리지’

또한 아마존 웹 서비스, 마이크로소프트 Azure, 구글 클라우드, 그리고 CDN 전문사로 유명한 아카마이(Akamai)에 이르기까지, 대부분의 클라우드 서비스 제공사에서 오브젝트 스토리지 상품군을 제공하는데요. 하나씩 간단하게 살펴보겠습니다

 

먼저 아마존 ‘S3(Simple Storage Service)’의 특징은 데이터의 내구성을 보장하기 위해 여러 복제 및 장애 복구 기능을 제공하고, 대규모의 데이터 처리에 적당하게 설계되었습니다. 또한 데이터 버전 관리, 오브젝트의 라이프사이클 관리, 액세스 제어 등 다양한 데이터 관리 기능을 제공합니다.

 

마이크로소프트의 ‘Azure Blob Storage’는 저렴한 비용으로 데이터를 장기간 보관할 수 있는 여러 아카이브 계층을 제공합니다. Azure 서비스와의 강력한 통합을 제공하여, 클라우드 기반 애플리케이션을 구축하고 운영하는 데 도움을 줍니다.

 

구글 클라우드의 ‘Google Cloud Storage’는 다양한 데이터 유형 및 워크 로드에 대한 처리를 지원하며, 데이터를 빠르게 읽고 쓸 수 있습니다. 글로벌로 분산된 인프라를 기반으로 데이터의 가용성과 내구성을 보장합니다. 또한 구글 클라우드의 BigQuery와의 통합을 통해 데이터 분석 및 처리를 위한 편리한 기능을 제공합니다.

 

마지막으로 아카마이의 오브젝트 스토리지는 S3와 호환되며, 동일한 Ceph 아키텍처를 사용합니다. 특히 99.9% 이상의 가용성을 제공하여 안전하고 신뢰할 수 있는 서비스를 제공하고 있습니다. 저장된 오브젝트를 외부로 인터넷 전송 시, 타 클라우드 사와 다르게 버킷 당 월 1TB의 아웃바운드 요금을 감면해 줘서 비용도 가장 저렴한데요. CDN 오리진 서버 등의 용도로 많이 사용되고 있습니다.

 

이러한 특징들은 각 클라우드 제공자의 오브젝트 스토리지 제품이 대규모 데이터를 안전하고 효율적으로 저장하고, 관리해 주며 또 다른 클라우드 서비스인 가상 머신 인스턴스 혹은 빅데이터 솔루션들과 통신하며 필요한 데이터를 적재하거나 추출하는 데 사용됩니다.

 

 

마치며

오브젝트 스토리지는 IT 서비스 개발 및 클라우드 환경에서 필수적인 도구입니다. 데이터의 안정적인 보존을 위해 클라우드상에 배포된 오브젝트 스토리지의 복제 및 장애 복구 기능을 구현하여, 데이터의 손실을 방지하고 가용성을 높일 수 있습니다. 또한 데이터의 라이프 사이클을 관리하고, 버전 관리, 액세스 제어 등의 기능을 제공하여 데이터를 효과적으로 관리하는 것이 가능한데요. 데이터 보안을 위해 데이터 암호화, 액세스 제어, 보안 로깅 등의 기능을 제공하며, 데이터의 무단 접근을 방지하는 것 또한 IT 서비스에서 꼭 필요한 기능입니다.

 

이러한 시스템 디자인 측면의 요구 사항을 고려해 ‘오브젝트 스토리지’ 시스템을 설계한다면, 대용량 데이터를 더욱 안전하고 효율적으로 저장하고 관리할 수 있습니다.

 

요즘IT의 모든 콘텐츠는 저작권법의 보호를 받는 바, 무단 전재와 복사, 배포 등을 금합니다.

좋아요

댓글

공유

공유

댓글 0
작가
68
명 알림 받는 중

작가 홈

작가
68
명 알림 받는 중
테크유람(https://blog.naver.com/techtrip) 블로그를 운영하고 있으며 클라우드, 오픈 소스, 웹 성능과 선진적인 DevOps 적용에 관심이 많은 블로거입니다.

삼성SDS에서 웹 개발자로 IT 경력을 시작하였고 이후 마이크로소프트에서는 Xbox 게임 타이틀 개발을, 현재는 클라우드 서비스를 제공하는 IT 기업에서 아시아 지역의 기술 컨설팅을 담당하고 있습니다.

12권의 IT 도서의 저자이기도 하며 글과 콘퍼런스, 교육을 통해 다양한 IT 기술을 많은 이에게 전달하고 공유하며, 상호 작용하는 IT 엔지니어의 삶을 즐기고 있습니다.

좋아요

댓글

스크랩

공유

공유

지금 회원가입하고,
요즘IT가 PICK한 뉴스레터를 받아보세요!

회원가입하기
요즘IT의 멤버가 되어주세요! 요즘IT의 멤버가 되어주세요!
요즘IT의 멤버가 되어주세요!
모든 콘텐츠를 편하게 보고 스크랩해요.
모든 콘텐츠를 편하게 보고 스크랩 하기
매주 PICK한 콘텐츠를 뉴스레터로 받아요.
매주 PICK한 콘텐츠를 뉴스레터로 받기
로그인하고 무료로 사용하기