웹사이트 검색

오브젝트 스토리지 대 블록 스토리지 서비스


소개

유연하고 확장 가능한 데이터 스토리지는 최신 기술과 도구로 개발 중인 대부분의 애플리케이션과 서비스에 대한 기본 요구 사항입니다. 대용량 또는 소량의 이미지, 비디오 또는 텍스트 블롭을 저장하든 애플리케이션 개발자는 사용자 생성 콘텐츠, 로그, 백업 등을 저장하고 검색하기 위한 솔루션이 필요합니다.

오늘날의 복잡한 배포, 컨테이너 및 임시 인프라로 인해 단순히 파일을 단일 서버의 디스크에 저장하던 시대는 지났습니다. 클라우드 제공업체는 최신 애플리케이션 배포의 스토리지 요구 사항을 충족하기 위해 서비스를 개발했으며 대부분 개체 스토리지와 블록 스토리지라는 두 가지 범주에 속합니다.

둘 다 살펴보고 각각의 일반적인 장점, 단점 및 사용 사례에 대해 논의해 보겠습니다.

블록 스토리지란?

블록 스토리지 서비스는 비교적 간단하고 친숙합니다. 네트워크를 통해 하드 드라이브와 같은 기존 블록 저장 장치를 제공합니다. 클라우드 공급자는 종종 모든 크기의 블록 스토리지 장치를 프로비저닝하고 이를 가상 머신에 연결할 수 있는 제품을 보유하고 있습니다.

거기에서 일반 디스크처럼 취급합니다. 파일 시스템으로 포맷하고 파일을 저장하거나, 여러 장치를 RAID 어레이로 결합하거나, 파일 시스템 오버헤드를 완전히 피하면서 블록 장치에 직접 쓰도록 데이터베이스를 구성할 수 있습니다. 또한 네트워크 연결 블록 저장 장치는 일반 하드 드라이브에 비해 몇 가지 고유한 이점이 있는 경우가 많습니다.

  • 백업 목적으로 전체 기기의 라이브 스냅샷을 쉽게 찍을 수 있습니다.
  • 증가하는 요구 사항을 수용하기 위해 블록 스토리지 장치의 크기를 조정할 수 있습니다.
  • 머신 간에 블록 저장 장치를 쉽게 분리하고 이동할 수 있습니다.

이것은 대부분의 모든 종류의 응용 프로그램에 유용할 수 있는 매우 유연한 설정입니다. 기술의 몇 가지 장점과 단점을 요약해 보겠습니다.

블록 스토리지의 몇 가지 이점은 다음과 같습니다.

  • 블록 스토리지는 친숙한 패러다임입니다. 사람과 소프트웨어는 거의 보편적으로 파일과 파일 시스템을 이해하고 지원합니다.
  • 블록 장치가 잘 지원됩니다. 모든 프로그래밍 언어는 파일을 쉽게 읽고 쓸 수 있습니다.
  • 파일 시스템 권한 및 액세스 제어가 친숙하고 잘 이해됨
  • 블록 스토리지 장치는 대기 시간이 짧은 IO를 제공하므로 데이터베이스에서 사용하기에 적합합니다.

블록 스토리지의 단점은 다음과 같습니다.

  • 스토리지는 한 번에 하나의 서버에 연결됩니다.
  • 블록과 파일 시스템은 저장하고 있는 정보(생성 날짜, 소유자, 크기)의 BLOB에 대한 제한된 메타데이터를 가지고 있습니다. 저장하는 항목에 대한 모든 추가 정보는 애플리케이션 및 데이터베이스 수준에서 처리되어야 하며 이는 개발자가 걱정해야 할 추가적인 복잡성입니다.
  • 사용하지 않더라도 할당한 모든 블록 저장 공간에 대해 비용을 지불해야 합니다
  • 실행 중인 서버를 통해서만 블록 스토리지에 액세스할 수 있습니다.
  • 블록 스토리지는 개체 스토리지에 비해 더 많은 실제 작업 및 설정이 필요합니다(파일 시스템 선택, 권한, 버전 관리, 백업 등).

빠른 IO 특성으로 인해 블록 스토리지 서비스는 기존 데이터베이스에 데이터를 저장하는 데 적합합니다. 또한 일반 파일 시스템 스토리지가 필요한 많은 레거시 애플리케이션은 블록 스토리지 장치를 사용해야 합니다.

클라우드 공급자가 블록 스토리지 서비스를 제공하지 않는 경우 Ceph를 사용하여 직접 실행하거나 많은 NAS 장치에서 사용할 수 있는 내장형 iSCSI 서비스를 실행할 수 있습니다.

오브젝트 스토리지란?

클라우드 컴퓨팅의 현대 세계에서 객체 스토리지는 HTTP API를 사용하여 구조화되지 않은 데이터 및 메타데이터 블롭을 저장하고 검색하는 것입니다. 파일 시스템을 사용하여 디스크에 저장하기 위해 파일을 블록으로 나누는 대신 네트워크를 통해 저장된 전체 개체를 처리합니다. 이러한 개체는 이미지 파일, 로그, HTML 파일 또는 자체 포함 바이트 블롭일 수 있습니다. 따라야 하는 특정 스키마나 형식이 없기 때문에 비정형입니다.

개체 스토리지는 개발자 경험을 크게 단순화했기 때문에 성공했습니다. API는 표준 HTTP 요청으로 구성되기 때문에 대부분의 프로그래밍 언어용 라이브러리가 빠르게 개발되었습니다. 데이터 덩어리를 저장하는 것은 개체 저장소에 대한 HTTP PUT 요청만큼 쉬워졌습니다. 파일 및 메타데이터 검색은 일반적인 GET 요청입니다. 또한 대부분의 개체 스토리지 서비스는 파일을 사용자에게 공개적으로 제공할 수 있으므로 정적 자산을 호스팅하기 위해 웹 서버를 유지 관리할 필요가 없습니다.

또한 객체 스토리지 서비스는 사용하는 스토리지 공간에 대해서만 요금을 부과합니다(일부는 HTTP 요청당 요금 및 전송 대역폭에 대해서도 요금을 부과합니다). 이것은 사용에 따라 확장되는 비용으로 세계적 수준의 스토리지 및 자산 호스팅을 얻을 수 있는 소규모 개발자에게 큰 도움이 됩니다.

하지만 개체 스토리지가 모든 상황에 적합한 솔루션은 아닙니다. 장점과 단점을 요약하여 살펴보겠습니다.

오브젝트 스토리지의 몇 가지 이점은 다음과 같습니다.

  • 모든 주요 운영 체제 및 프로그래밍 언어에 사용할 수 있는 클라이언트가 있는 간단한 HTTP API
  • 사용한 만큼만 지불하는 비용 구조
  • 정적 자산의 내장된 공개 서비스는 귀하가 직접 운영할 서버가 하나 줄어든다는 것을 의미합니다.
  • 일부 객체 저장소는 내장된 CDN 통합을 제공하여 전 세계의 자산을 캐시하여 사용자가 더 빠르게 다운로드하고 페이지를 로드할 수 있도록 합니다.
  • 선택적 버전 관리는 개체의 이전 버전을 검색하여 실수로 데이터를 덮어쓴 경우 복구할 수 있음을 의미합니다.
  • 개체 스토리지 서비스는 개발자가 더 많은 리소스를 시작하거나 로드를 처리하기 위해 재설계할 필요 없이 보통 수준의 요구 사항에서 매우 집중적인 사용 사례로 쉽게 확장할 수 있습니다.
  • 개체 스토리지 서비스를 사용하면 서비스 제공업체에서 관리하므로 하드 드라이브 및 RAID 어레이를 유지 관리할 필요가 없습니다.
  • 데이터 블롭과 함께 메타데이터 청크를 저장할 수 있으면 애플리케이션 아키텍처를 더욱 단순화할 수 있습니다.

오브젝트 스토리지의 몇 가지 단점은 다음과 같습니다.

  • 오브젝트 스토리지 서비스는 대기 시간이 길기 때문에 기존 데이터베이스를 지원하는 데 사용할 수 없습니다.
  • 오브젝트 스토리지는 데이터 blob의 일부만 변경할 수 있도록 허용하지 않으며 한 번에 전체 오브젝트를 읽고 써야 합니다. 이것은 성능에 약간의 영향을 미칩니다. 예를 들어 파일 시스템에서 로그 파일 끝에 한 줄을 쉽게 추가할 수 있습니다. 개체 스토리지 시스템에서는 개체를 검색하고 새 줄을 추가하고 전체 개체를 다시 써야 합니다. 이로 인해 객체 스토리지는 매우 자주 변경되는 데이터에 적합하지 않습니다.
  • 운영 체제는 일반 디스크처럼 개체 저장소를 쉽게 마운트할 수 없습니다. 이를 지원하는 일부 클라이언트와 어댑터가 있지만 일반적으로 개체 저장소를 사용하고 탐색하는 것은 파일 브라우저에서 디렉터리를 넘기는 것만큼 간단하지 않습니다.

이러한 속성 때문에 객체 스토리지는 예를 들어 정적 자산 호스팅, 이미지 및 동영상과 같은 사용자 생성 콘텐츠 저장, 백업 파일 저장 및 로그 저장에 유용합니다.

일부 자체 호스팅 개체 스토리지 솔루션이 있지만 호스팅 솔루션의 일부 이점(예: 하드 드라이브 및 확장 문제에 대해 걱정할 필요 없음)을 포기하게 됩니다. OpenStack Swift를 사용해 볼 수 있습니다.

결론

저장소 솔루션을 선택하는 것은 개발자에게 복잡한 결정일 수 있습니다. 이 기사에서는 블록 및 객체 스토리지 서비스의 장단점에 대해 논의했습니다. 충분히 복잡한 애플리케이션에는 모든 요구 사항을 충족하기 위해 두 가지 유형의 스토리지가 모두 필요할 수 있습니다.