loading...

데이터 혁명: NoSQL로 더 빠르게, 더 유연하게!

이 글은 IDG의 아티클을 전재하여 제공합니다.
[원문보기] : https://www.itworld.co.kr/news/324743#csidxb48292ecde53b728682a666aa3459e6

NoSQL 데이터베이스는 데이터베이스 쿼리에 SQL(Structured Query Language)을 사용해야 하는 한계를 극복하기 위해 생겨났다. 따라서 기존 관계형 데이터베이스 관리 시스템(RDBMS)에서는 찾아볼 수 없는 높은 운영 속도와 유연성을 제공하는 방식으로 데이터를 저장하고 관리한다.

앨리드 마켓 리서치(Allied Market Research)의 최근 보고서에 따르면, NoSQL 데이터베이스에 대한 수요는 계속 증가하고 있다. 2022년 전 세계 NoSQL 시장은 73억 달러의 매출을 기록했으며, 연평균 28%의 성장률로 2032년에는 863억 달러의 매출을 기록할 것으로 예상된다. 보고서에는 전 세계 NoSQL 시장 성장을 이끄는 주요 요인으로 빅데이터 분석에 대한 폭발적인 수요, 확장 가능하고 유연한 엔터프라이즈 데이터베이스 솔루션에 대한 필요성, 클라우드 컴퓨팅 플랫폼 및 기술의 보편화 등을 들었다.

NoSQL 데이터베이스 선택을 돕는 5가지 질문

기업이 NoSQL로의 마이그레이션을 고려하고 있다면, 데이터 스토리지 요구사항에 가장 적합한 NoSQL 데이터베이스를 선택하는 것이 중요하다. 현재 시장에는 24개 이상의 오픈소스 및 상용 NoSQL 데이터베이스가 나와 있으므로, 선택의 폭이 너무나 넓기 때문이다. 여기서는 NoSQL 데이터베이스 구매 결정에 도움이 되는 5가지 질문을 제시한다. 또한 현재 시장에 나와 있는 주요 NoSQL 데이터베이스의 특징도 살펴본다. NoSQL 데이터베이스를 선택하기 전에 해야 할 5가지 질문은 다음과 같다.

NoSQL이 올바른 선택인가?
어떤 NoSQL 데이터 모델이 필요한가?
지연시간 요건은 무엇인가?
확장성과 데이터 일관성이 얼마나 중요한가?
어떻게 배포할 것인가?

NoSQL 데이터베이스의 필요성

NoSQL 데이터베이스를 선택하기 전에 NoSQL이 가장 적합한 선택인지 확인하는 것이 중요하다. IDC의 리서치 담당 부사장 칼은 백오피스 트랜잭션 처리, 인터랙티브 애플리케이션 데이터 관리, 스트리밍 데이터 캡처가 모두 NoSQL을 선택해야 하는 좋은 이유라고 한다. 이런 요구사항을 염두에 두더라도, 특히 기존 RDBMS 대신 NoSQL을 선택하는 데는 장단점이 있기 때문에 NoSQL이 기업에 적합하지 않을 가능성을 배제해야 한다. 멀린스 컨설팅(Mullins Consulting)의 대표컨설턴트 크레이그는 가장 먼저 결정해야 할 것은 왜 NoSQL 데이터베이스 시스템이 필요한가 하는 점이라고 한다. 먼저 기존 RDBMS가 사용례를 충족할 수 없는 이유를 파악해야 한다. 관계형/SQL 데이터베이스 시스템은 널리 설치되어 있으며, 대부분 기업에서 기존 시스템과 애플리케이션에 배포되어 있고, 숙련된 전문가가 관리하고 있다. RDBMS를 대체할 수 있는 대안으로 다양한 데이터 저장 요구사항을 충족하기 위해 단일 시스템 내에서 여러 데이터 저장 기술을 사용하는 다중 저장소 지속성(Polyglot Persistence)을 제시한다. 모든 것을 관계형 사고방식에 억지로 끼워 맞추는 대신, 다중 저장소 지속성을 통해 개발자와 관리자는 각 사용례에 적합한 데이터 기술을 선택할 수 있다는 것이다. NoSQL의 핵심 강점은 탈중앙화되고 확장성과 내결함성을 갖춘 설계이다. 대부분 NoSQL 데이터베이스 기술은 확장성과 장애를 견딜 수 있도록 구현되어 있다. 또한, 가볍고 CPU와 지원 측면에서 RDBMS보다 오버헤드가 적다.

NoSQL 데이터 모델

NoSQL 데이터 모델은 키-값, 문서, 칼럼 저장소, 그래프의 4가지 주요 유형으로 나뉘며, 각 유형은 각기 다른 사용례에 적합하다. 각 유형의 강점은 다음과 같다.

  • 키-값 데이터베이스는 소매업 및 모바일과 같은 애플리케이션의 고가용성, 짧은 지연시간 요구사항에 적합하다.
  • 문서 데이터베이스는 이벤트 로깅, 온라인 쇼핑, 콘텐츠 관리 및 심층 분석 처리에 적합하다.
  • 칼럼 저장소 데이터베이스는 이벤트 로깅, 콘텐츠 관리, 분석을 위한 카운팅 및 분류에 적합하다. 칼럼 저장소는 데이터를 자동으로 만료하도록 설정할 수도 있다.
  • 그래프 데이터베이스는 데이터 요소가 서로 연결되어 있고 연결 관계의 수를 알 수 없는 애플리케이션에 적합하다. 대표적인 사용례는 소셜 미디어 네트워크, 추천 엔진, 물류 및 라우팅, 위치 인식 시스템, 대중교통 링크, 네트워크 토폴로지 등이다.

포레스터 리서치의 부사장 겸 대표 애널리스트 노엘은 올바른 모델을 선택하는 것이 중요하다고 한다. 문서 모델은 JSON 문서를 최적으로 저장하는 기능을 포함해 가장 많이 사용되는 모델이다. 그래프 모델은 상호 연결된 데이터에 중점을 두는 반면, 키-값 모델은 단순한 키-값 쌍 검색에 중점을 두기 때문에 널리 사용되지는 않는다. 어떤 데이터를 저장하고 어떻게 액세스할 것인지는 데이터 모델을 결정하는 데 필수적이다. 또한 일부 솔루션 업체의 제품은 다중 모델 데이터베이스로, 모든 모델을 지원해 여러 모델을 사용할 수 있는 유연성을 제공하기도 한다.

지연시간 요구사항

스트리밍 데이터 캡처나 실시간 데이터 공유 애플리케이션처럼 지연시간이 매우 짧아야 하는 경우라면 키-값 저장소를 고려해야 한다. 데이터가 단순한 목록이나 매트릭스인 경우에도 마찬가지이다. 데이터의 형태가 매우 가변적이고 정의된 필드가 포함된 경우에는 JSON 문서 데이터베이스가 더 적합하다. 이는 일반적으로 애플리케이션과 사용자의 변화하는 요구사항에 맞춰 자주 변경되는 인터랙티브 애플리케이션의 경우에도 마찬가지이다. 지연시간 요구사항이 그다지 크지 않고 자재명세서 구조나 상호 연관된 데이터의 복잡한 그룹 등 복잡한 조합을 지원해야 하는 경우에는 그래프 데이터베이스를 고려할 수 있다.

확장성과 데이터 일관성

NoSQL 데이터베이스는 데이터를 세그먼트 또는 샤드(Shard)로 나눌 수 있으므로 수백 테라바이트를 실행하는 대규모 배치 환경에 유용하다. 샤딩은 데이터베이스를 확장하는 데 있어 NoSQL의 필수적인 기능이며, 기업은 수평적으로 확장된 클러스터에서 노드를 자동으로 확장 및 축소해 애플리케이션을 동적으로 확장할 수 있는 NoSQL 솔루션을 많이 찾는다. ACID 준수를 통해 모든 트랜잭션의 데이터 일관성을 보장하는 데 중점을 두는 관계형 데이터베이스와 달리, NoSQL을 사용하면 데이터 일관성을 일관성 있게 또는 느슨하게 선택할 수 있다. 최종적인 일관성을 유지하면서 빠르게 확장하고 높은 성능을 제공할 수 있다.

배포 방식

일부 NoSQL 데이터베이스는 온프레미스에서 실행할 수 있고, 일부는 클라우드에서만 실행할 수 있으며, 일부는 하이브리드 클라우드 환경에서 실행할 수 있다. 또한 서버리스 및 쿠버네티스 환경에서 실행되는 등 클라우드 아키텍처와 기본적으로 통합되는 NoSQL도 있다. 특히, 애플리케이션에 우수한 성능과 확장성을 제공하면서 자동화를 통해 인프라 관리를 간소화하고자 하는 기업에는 서버리스가 필수적인 요소로 여겨진다.

시장을 선도하는 NoSQL 데이터베이스

이상의 5가지 질문을 던져보면 기업의 필요에 맞는 NoSQL 데이터베이스를 선택하는 데 도움이 될 것이다. 이제 시장에 나와 있는 주요 NoSQL 데이터베이스 솔루션을 살펴보자.

에어로스파이크(Aerospike)

에어로스파이크는 높은 읽기 및 쓰기 처리량이 필요한 애플리케이션을 위해 설계된 오픈소스 분산형 실시간 고성능 NoSQL 데이터베이스이다. 다중 모델 NoSQL이자 그래프 데이터베이스로, 동시에 여러 데이터 모델을 지원하고 확장에 제한이 없어 수십억 건의 트랜잭션에 걸쳐 실시간 처리가 가능하다. 제품 설명서에 따르면, 에어로스파이크는 대규모 병렬 처리와 통합 스토리지 모델을 사용해 작은 서버 공간을 사용한다. 이 플랫폼은 엣지에서 스트리밍 데이터를 수집하고 처리하며, 운영, 트랜잭션 또는 분석 워크로드를 위해 엣지 데이터를 레코드 시스템, 서드파티 소스, 데이터 웨어하우스 또는 데이터 레이크의 데이터와 결합할 수 있다. 배포 방식도 온프레미스와 클라우드 매니지드 서비스 모두 지원한다.

AWS 다이나모DB(DynamoDB)

AWS 다이나모DB는 규모와 관계없이 ms 응답 시간을 제공하는 서버리스, NoSQL, 완전 관리형 데이터베이스 서비스이다. 가장 큰 장점은 사용한 만큼만 비용을 지불하면서 애플리케이션을 개발 및 실행할 수 있다는 점이다. 또한 사용자는 원하는 양의 데이터를 저장 및 검색하고 모든 수준의 요청 트래픽을 처리할 수 있는 데이터베이스 테이블을 만들 수 있다. AWS에 따르면, 사용자는 다운타임이나 성능 저하 없이 테이블의 처리 용량을 늘리거나 줄일 수 있으며, 개발자와 관리자는 AWS 관리 콘솔을 사용해 리소스 사용률과 성능 메트릭을 모니터링할 수 있다. 민감한 데이터를 보호하기 위해 미사용 데이터 암호화(Encryption at Rest) 기능을 제공하며, 온디맨드 백업 기능을 이용해 사용자가 장기 보존 및 규정 준수 요구사항을 위해 테이블의 전체 백업을 생성할 수 있다.

카우치베이스(Couchbase)

카우치베이스(Couchbase Inc)에서 배포하는 카우치베이스 서버는 다중 모델 JSON 문서 지원 데이터베이스 플랫폼이다. 캐시가 내장된 오픈소스 NoSQL 키-값 및 문서 데이터베이스이기도 하다. 성능은 물론, 다중 모델, 확장성 및 자동화를 지원하는 데이터베이스가 필요한 기업에 적합하다. 소셜 미디어 및 모바일 애플리케이션, 콘텐츠 및 메타데이터 저장소, 전자상거래 트랜잭션 등의 애플리케이션에 많이 사용하며, 문서, 유연한 데이터 모델, 인덱싱, 전문 검색을 완벽하게 지원하며, 실시간 분석을 위한 맵리듀스 기능을 제공한다.

데이터스택스(DataStax)

데이터스택스 아스트라 DB는 아파치 카산드라 기반의 완전 관리형 클라우드 네이티브 데이터베이스 서비스이다. 다양한 API와 프로그래밍 언어 옵션을 통해 동적으로 확장하고 애플리케이션 개발을 가속화해 실시간 애플리케이션을 빠르게 구축하고 제한 없이 확장할 수 있다는 것이 데이트스택스의 설명이다. 프라이빗 링크, IP 액세스 제어, 싱글사인온, 애플리케이션 토큰, 데이터 암호화 등 다양한 보안 메커니즘을 내장하고 있으며, 마이크로서비스와 API 우선 원칙을 기반으로 구축된 서버리스 아키텍처이기 때문에 수요에 따라 자동으로 확장된다.

구글 빅테이블(Google BigTable)

구글이 내세우는 빅테이블의 특징은 한자리 ms 수준의 짧은 지연시간과 무한 확장성, 99.999%의 가용성을 제공하는 엔터프라이즈급 NoSQL 데이터베이스 서비스이다. 빅테이블은 멀티테넌트, 혼합 운영 및 실시간 분석 워크로드를 지원한다. 구글은 빅테이블이 키-값 및 칼럼 저장소로, 정형, 반정형, 비정형 데이터에 빠르게 액세스하는 데 이상적이라고 설명한다. 개인화와 같이 지연시간에 민감한 워크로드에도 적합하다. 빅테이블은 서버 트래픽에 맞춰 리소스를 자동으로 확장해 필요에 따라 관련 샤딩, 복제, 쿼리를 처리한다.

마크로직(MarkLogic)

마크로직 서버는 문서, 시맨틱 그래프, 지리공간 및 관계형 모델을 확장 가능한 단일 운영 데이터베이스로 결합한 다중 모델 데이터베이스이다. 통합 검색 및 쿼리 인터페이스 기능과 함께 JSON, XML, 텍스트, RDF 트리플, 지리공간 및 바이너리를 위한 기본 스토리지를 제공한다. 특히, 데이터베이스의 핵심 요소로 검색 엔진이 내장되어 있어 사일로에서 데이터를 로드하고 모든 데이터를 검색할 수 있는 단일 플랫폼을 제공한다. 따라서 전문 검색을 위한 별도의 검색 엔진이 필요없다. 이와 함께 데이터 손실 방지와 같은 엔터프라이즈 데이터 보안 제어 기능도 제공한다.

마이크로소프트 애저 코스모스(Microsoft Azure Cosmos)

애저 코스모스 DB는 여러 NoSQL 모델과 JSON 및 바이너리 데이터를 포함한 다양한 데이터 형식을 지원하는 마이크로소프트 애저 클라우드의 데이터베이스 서비스이다. 애저 코스모스 역시 완전 관리형 서비스로, 마이크로소프트가 기반 인프라까지 모두 관리해 개발자가 애플리케이션과 데이터에 집중할 수 있다. 클라우드 서비스 기반 서비스로 자동으로 즉각적인 확장성을 제공하며, 데이터 암호화 및 데이터 액세스 제어와 같은 보안 툴도 갖추고 있다. 특히 몽고DB, 카산드라 및 기타 NoSQL 엔진을 위한 오픈소스 API를 제공한다.

몽고DB(MongoDB)

몽고DB(MongoDB Inc.)가 관리하고, GNU 라이선스(Gnu Affero General Public License)와 아파치 라이선스의 조합 하에 퍼블리싱되는 무료 오픈소스 크로스 플랫폼 문서 지향 데이터베이스이다. 몽고DB는 스키마가 있는 JSON 및 유사 문서를 사용하며, 다양한 규모의 기업에서 수천 건의 배포를 최적화하면서 얻은 운영 베스트 프랙티스를 제공한다. 클라우드 기반 서비스로, 데이터베이스 관리, 설정 및 환경 구성, 소프트웨어 패치, 모니터링 및 백업을 처리할 수 있으며, 분산 데이터베이스 클러스터로 운영된다. 주요 기능으로는 완전 관리형 백업, 특정 시점 복구, 실시간 성능 패널, 사용자 지정 가능 알림 등이 있다.

레디스(Redis)

레디스 랩스(Redis Labs)가 후원하는 레디스 엔터프라이즈는 오픈 소스 키-값 기반 NoSQL 인메모리 데이터베이스로, 쉽고 강력한 일관성, 유연한 스키마리스 모델, 고가용성 및 배포 용이성을 모두 지원한다. 레디스는 목록, 집합, 비트맵, 해시 등의 다양한 키-값을 지원하며, 플러그인 모듈을 통해 데이터 구조, 검색, 그래프, JSON, XML 등의 모델을 지원한다. 온프레미스는 물론, 및 클라우드에서 매니지드 서비스로도 제공되며, 실시간 인덱싱, 쿼리 및 전문 검색 엔진이 포함되어 있다.

IDG logo

▶   해당 콘텐츠는 저작권법에 의하여 보호받는 저작물로 기고자에게 저작권이 있습니다.
▶   해당 콘텐츠는 사전 동의 없이 2차 가공 및 영리적인 이용을 금하고 있습니다.


이 글이 좋으셨다면 구독&좋아요

여러분의 “구독”과 “좋아요”는
저자에게 큰 힘이 됩니다.

subscribe

구독하기

subscribe

Bob Violino
Bob Violino

InfoWorld

공유하기