2018.03.13

"몽고DB부터 카우치베이스까지"··· 우리 회사에 맞는 NoSQL 고르기

Bob Violino | InfoWorld
NoSQL 데이터베이스는 기존의 표 기반 데이터베이스(SQL)보다 작업 속도가 빠르고, 소프트웨어 개발자를 포함한 사용자에게 더 큰 '유연성'을 제공한다.



NoSQL의 데이터 구조(키-값, 와이드 컬럼, 그래프, 도큐먼트)는 관계형 데이터베이스와 다르다. NoSQL 데이터베이스라는 이름이 붙은 것도 이 때문이다. 간혹 데이터 일관성을 상실하는 단점이 있지만, 수 많은 서버로 확장이 가능한 강력한 장점이 있다. 최근 NoSQL 데이터베이스가 인기를 끄는 이유는 수 많은 분산형 데이터 처리에 적합하기 때문이다. 즉 빅데이터와 분석 프로젝트에 안성맞춤이다.

NoSQL 데이터베이스 선택하기: 핵심 기준
현재 시장에 나온 오픈소스와 상용 NoSQL 데이터베이스는 수십 종이 넘는다. 그렇다면 이들 중 우리 회사에 적합한 제품이나 클라우드 서비스를 어떻게 골라야 할까? IDC의 리서치 담당 부사장 칼 올프슨에 따르면, 가장 중요한 선택 기준은 데이터베이스에 저장할 데이터의 용도다. NoSQL 데이터베이스는 아키텍처와 기능이 다양하므로, 원하는 작업과 용도를 가장 효과적으로 지원하는 제품을 골라야 한다.

- 일반적으로 키-값 DB는 특정 애플리케이션에서 마이크로서비스나 여러 프로세스가 데이터를 반영구적으로 공유하는 작업에 가장 좋다.
- 유사성 계산, 부정행위 감지, 연동 구조 평가에 심층 관계 분석을 사용할 계획이라면 그래프 데이터베이스가 더 나은 선택이 될 수 있다.
- 신속하게 많은 데이터를 수집해 분석할 계획이라면 와이드 컬럼(Wide Column) DB를 조사한다. 이 종류의 NoSQL 데이터베이스는 도큐먼트와 함께 그래프를 지원하는 경향이 있다.

또한, 초기에 검토한 프로젝트로만 데이터베이스를 활용할 것이라고 가정하면 안 된다. 정적 데이터, 세션 데이터 관리에서 시작해 트랜잭션 처리가 추가되고, 나중에는 분석도 할 수 있다.

포레스터 리서치의 수석 애널리스트인 노엘 유하나에 따르면, 성능과 확장성, 보안, 다양한 워크로드 지원(트랜잭션, 운영, 분석 등), 기존 생태계 통합, 관리 부담, 클라우드 지원, 지원 유즈 케이스 등에 초점을 맞춰야 한다. 그는 "이 가운데 특히 보안이 중요하다. 보안 인증을 받은 NoSQL 데이터베이스를 우선 고려해야 한다. 중요한 정보를 보호하려면 정지 상태의 데이터와 이동 중인 데이터 모두에서 암호화를 지원하는 데이터베이스여야 한다"라고 말했다.

또한 일부 NoSQL 데이터베이스는 확장성이 떨어진다. NoSQL 데이터베이스라고 해도 모두 관계형 데이터베이스보다 성능과 확장성이 뛰어난 것은 아니다. NoSQL은 스케일-아웃 모델에서 일관성 수준이 각기 다르다. 따라서 요구사항을 충족하는 솔루션을 찾아야 한다. 예를 들면, 금융기관 같이 중요한 트랜잭션을 처리하는 데는 지금도 관계형 데이터베이스가 최고의 솔루션이다.


다음은 검토해 볼만한 구체적인 NoSQL 데이터베이스다.

몽고DB
몽고DB(MongoDB)는 가장 인기 있는 NoSQL 데이터베이스다. 무료인 오픈소스 크로스 플랫폼에 도큐먼트 지향형 데이터베이스이며 JSON 같은 도큐먼트와 스키마를 사용한다. GAGPL(Gnu Affero General Public License)과 아파치 라이선스(Apache License)를 따른다.

몽고DB 아틀라스(Atlas)에는 다양한 규모의 기업을 대상으로 수 많은 시스템을 최적화해 공급하면서 터득한 운영 측면의 베스트 프랙티스가 포함돼 있다. 클라우드 기반 상품은 데이터베이스 관리, 셋업 및 구성, 소프트웨어 패칭, 모니터링, 백업을 지원한다. 그리고 분산형 데이터베이스 클러스터로 운영된다.

몽고DB의 주요 특징은 완전 관리형 백업, 지속적인 백업, PIT(Point in Time) 복구, 쿼리가 가능한 스냅샷, 자동 차트 생성, 실시간 성능 패널, 사용자 지정 얼럿 등이 있다. 사용자는 내장된 라이브 마이그레이션 서비스(Live Migration Service)를 사용해 애플리케이션에 미치는 영향을 최소화하면서 몽고DB 아틀라스로 라이브 데이터를 가져올 수 있다.

도큐먼트와 다른 종류의 데이터 세트 저장, 처리, 액세스에 최적화 됐다. 사용하기 쉽고, 리소스를 많이 요구하는 애플리케이션에 맞춰 확장할 수 있고, 종합적인 도구와 파트너 생태계를 제공하기 때문에 개발자 사이에 인기가 높다. 몽고DB의 대표적인 활용 사례는 개인화, 실시간 분석, 사물인터넷(IoT), 빅데이터, 제품 및 자산 카탈로그, 보안 및 부정행위 방지, 모바일 애플리케이션, 데이터 허브, 콘텐츠 관리, 소셜 및 협업 애플리케이션 등이다.

아마존 다이나모
아마존 다이나모(Amazon DynamoDB)도 인기 높은 클라우드 기반 NoSQL 데이터베이스다. 완전 관리형 플랫폼으로, SSD를 사용해 데이터를 저장, 처리, 액세스하므로, 높은 성능과 확장성이 필요한 애플리케이션까지 지원한다. 워크로드 처리량과 스토리지 요구사항을 기준으로 데이터를 여러 서버로 자동 분산시킨다. 또 매우 높은 성능이 필요한 활용 사례를 지원한다.

사용자는 API(Application Programming Interfaces)와 아마존 웹서비스 관리 콘솔을 통해 테이블을 확장, 모니터링, 관리할 수 있다. 다이나모DB는 여러 데이터 소스에서 쿼리를 실행할 수 있는 아마존EMR(아파치 하둡, 아파치 스팍, H베이스용 관리형 프레임워크)과 통합돼 있다. 이 플랫폼은 키-값과 도큐먼트 모델을 모두 지원하고, 공간 인덱싱 라이브러리가 포함돼 있다. 현재 많은 기업이 광고 캠페인, 소셜 미디어 애플리케이션, 게임 정보 추적, 센서 및 로그 데이터 수집 및 분석, 전자상거래 등 다양한 용도로 사용하고 있다.

데이터스택스 엔터프라이즈 플랫폼
데이터스택스(DataStax)는 데이터 센터 분산에 아파치 카산드라(Apache Cassandra)를 이용한다. 포레스터의 애널리스트 유하나에 따르면, 데이터스택스 NoSQL의 큰 장점 중 하나는 글로벌 분산형 아키텍처라는 점이다. 오픈 소스 프로젝트인 아파치 카산드라의 상용 엔터프라이즈 버전을 분산 배치하고 지원한다. 카산드라는 와이드-로우 키-값 데이터베이스로 구글 비트테이블(Google Bigtable)을 기반으로 한다.

데이터스택스의 특징은 내결함성(Fault Tolerance), 스케일-아웃 아키텍처, 레이턴시가 낮은 데이터 액세스, 단순화시킨 관리 기능 등이다. 또한 중요 애플리케이션에 필요한 보안, 인메모리, 모니터링, 검색, 분석 등의 기능도 제공한다. 데이터스택스 엔터프라이즈(DataStax Enterprise)는 트랜잭션, 분석, 예측 분석, 혼합된 워크로드 등 다양한 비즈니스 애플리케이션을 지원한다. 또한 그래프와 JSON 데이터를 지원하는 등 멀티 모델 기능이 광범위하다. 부정행위 감지, 제품 카탈로그, 소비자 개인화, 추천 엔진, IoT 등에 주로 사용된다.

카우치베이스
카우치베이스(Couchbase)는 JSON 도큐먼트 지원 데이터베이스 플랫폼이다. 이 오픈소스 NoSQL DBMS는 아주 광범위한 기업 환경을 지원한다. 빌트-인(내장) 캐시가 특징이며 성능과 멀티 모델, 확장성, 자동화가 필요한 데이터베이스를 원하는 기업에 적합하다.

많은 기업은 소셜 및 모바일 애플리케이션, 콘텐츠 및 메타데이터 저장소, 전자상거래 트랜잭션, 온라인 게임 애플리케이션에 카우치베이스를 사용한다. 도큐먼트, 유연한 데이터 모델, 인덱싱, 풀 텍스트 검색, 실시간 분석을 위한 맵리듀스(MapReduce)를 지원한다. 운영 및 분석 프로세스 등 아주 중요한 다양한 워크로드를 지원해야 하는 대기업이 종종 사용한다.

레디스 엔터프라이즈
IDC의 올프슨에 따르면, 레디스 랩(Redis Lab)이 지원하는 오픈 소스 플랫폼인 레디스 엔터프라이즈(Redis Enterprise)는 가장 널리 사용되는 키-값 NSQ 데이터베이스 중 하나다. 포레스터의 유하나에 따르면, 레디스는 유연하면서도 강력한 일관성, 스키마가 없는 유연한 모델, 높은 가용성, 쉬운 배포 등을 지원하는 고성능 인-메모리 데이터베이스다.

레디스 랩은 오픈 소스 소프트웨어를 '캡슐화'하고 강화된 배포 아키텍처를 제공하며, 오픈 소스 API를 지원하는 기능과 기술을 추가 개발했다. 이 데이터 모델은 키-값, 리스트와 세트, 비트맵, 해시 등 다양한 데이터 구조를 지원하고, 검색과 그래프, JSON, XML 등을 모듈로 연결해 다양한 모델을 지원한다. 활용 환경도 실시간 분석부터 트랜잭션, 데이터 수집 및 처리, 소셜 미디어, 작업 관리, 메시지 큐와 캐싱 등 다양하다.

마크로직
마크로직(MarkLogic) NoSQL 데이터베이스는 NoQL의 속도와 확장성을 제공하는 운영 및 트랜잭션 엔터프라이즈 데이터베이스이다. 멀티모델 방식을 활용해 핵심 데이터를 통합 및 저장하고, 데이터를 도큐먼트나 그래프, 관계 데이터로 확인하는 기능을 제공한다(온프레미스, 가상, 클라우드 모두 지원). 또한, 가용성이 높고, 데이터 수준의 보안 기능을 제공한다. ACID 컴플라이언스, 요소 수준의 보안, 익명화, 제거(감추기), 고급 암호화 기능 등이다. 이 때문에 민감한 요주의 정보를 많이 공유하는 방법을 찾고 있는 기업에 적합하다. 또한 마크로직은 보안 표준인 공통평가기준(Common Criteria) 인증을 받은 유일한 NoSQL 데이터베이스이기도 하다.

이 밖에도 통합된 방식으로 데이터를 확인 및 검색하고, 언제든지 메타데이터를 사용해 검증할 수 있는 기능을 제공해 사용자 경험을 강화한다. 바이템포럴(Bitemporal) 시맨틱, 구조화 및 비구조화 데이터 수집 및 처리(JSON, XML, RDF, 공간, 대형 바이너리 저장), '무엇이든 질의할 수 있는' 유니버설 인덱스 등을 지원한다. 거버넌스와 컴플라이언스에 도움을 주는 운영 데이터 허브로 사용할 수 있으며, 특히 데이터 사일로가 존재하는 대기업, 사이버 보안 위협이 증가한 대기업, 규제가 엄격한 산업의 대기업에 유용하다. ciokr@idg.co.kr 

2018.03.13

"몽고DB부터 카우치베이스까지"··· 우리 회사에 맞는 NoSQL 고르기

Bob Violino | InfoWorld
NoSQL 데이터베이스는 기존의 표 기반 데이터베이스(SQL)보다 작업 속도가 빠르고, 소프트웨어 개발자를 포함한 사용자에게 더 큰 '유연성'을 제공한다.



NoSQL의 데이터 구조(키-값, 와이드 컬럼, 그래프, 도큐먼트)는 관계형 데이터베이스와 다르다. NoSQL 데이터베이스라는 이름이 붙은 것도 이 때문이다. 간혹 데이터 일관성을 상실하는 단점이 있지만, 수 많은 서버로 확장이 가능한 강력한 장점이 있다. 최근 NoSQL 데이터베이스가 인기를 끄는 이유는 수 많은 분산형 데이터 처리에 적합하기 때문이다. 즉 빅데이터와 분석 프로젝트에 안성맞춤이다.

NoSQL 데이터베이스 선택하기: 핵심 기준
현재 시장에 나온 오픈소스와 상용 NoSQL 데이터베이스는 수십 종이 넘는다. 그렇다면 이들 중 우리 회사에 적합한 제품이나 클라우드 서비스를 어떻게 골라야 할까? IDC의 리서치 담당 부사장 칼 올프슨에 따르면, 가장 중요한 선택 기준은 데이터베이스에 저장할 데이터의 용도다. NoSQL 데이터베이스는 아키텍처와 기능이 다양하므로, 원하는 작업과 용도를 가장 효과적으로 지원하는 제품을 골라야 한다.

- 일반적으로 키-값 DB는 특정 애플리케이션에서 마이크로서비스나 여러 프로세스가 데이터를 반영구적으로 공유하는 작업에 가장 좋다.
- 유사성 계산, 부정행위 감지, 연동 구조 평가에 심층 관계 분석을 사용할 계획이라면 그래프 데이터베이스가 더 나은 선택이 될 수 있다.
- 신속하게 많은 데이터를 수집해 분석할 계획이라면 와이드 컬럼(Wide Column) DB를 조사한다. 이 종류의 NoSQL 데이터베이스는 도큐먼트와 함께 그래프를 지원하는 경향이 있다.

또한, 초기에 검토한 프로젝트로만 데이터베이스를 활용할 것이라고 가정하면 안 된다. 정적 데이터, 세션 데이터 관리에서 시작해 트랜잭션 처리가 추가되고, 나중에는 분석도 할 수 있다.

포레스터 리서치의 수석 애널리스트인 노엘 유하나에 따르면, 성능과 확장성, 보안, 다양한 워크로드 지원(트랜잭션, 운영, 분석 등), 기존 생태계 통합, 관리 부담, 클라우드 지원, 지원 유즈 케이스 등에 초점을 맞춰야 한다. 그는 "이 가운데 특히 보안이 중요하다. 보안 인증을 받은 NoSQL 데이터베이스를 우선 고려해야 한다. 중요한 정보를 보호하려면 정지 상태의 데이터와 이동 중인 데이터 모두에서 암호화를 지원하는 데이터베이스여야 한다"라고 말했다.

또한 일부 NoSQL 데이터베이스는 확장성이 떨어진다. NoSQL 데이터베이스라고 해도 모두 관계형 데이터베이스보다 성능과 확장성이 뛰어난 것은 아니다. NoSQL은 스케일-아웃 모델에서 일관성 수준이 각기 다르다. 따라서 요구사항을 충족하는 솔루션을 찾아야 한다. 예를 들면, 금융기관 같이 중요한 트랜잭션을 처리하는 데는 지금도 관계형 데이터베이스가 최고의 솔루션이다.


다음은 검토해 볼만한 구체적인 NoSQL 데이터베이스다.

몽고DB
몽고DB(MongoDB)는 가장 인기 있는 NoSQL 데이터베이스다. 무료인 오픈소스 크로스 플랫폼에 도큐먼트 지향형 데이터베이스이며 JSON 같은 도큐먼트와 스키마를 사용한다. GAGPL(Gnu Affero General Public License)과 아파치 라이선스(Apache License)를 따른다.

몽고DB 아틀라스(Atlas)에는 다양한 규모의 기업을 대상으로 수 많은 시스템을 최적화해 공급하면서 터득한 운영 측면의 베스트 프랙티스가 포함돼 있다. 클라우드 기반 상품은 데이터베이스 관리, 셋업 및 구성, 소프트웨어 패칭, 모니터링, 백업을 지원한다. 그리고 분산형 데이터베이스 클러스터로 운영된다.

몽고DB의 주요 특징은 완전 관리형 백업, 지속적인 백업, PIT(Point in Time) 복구, 쿼리가 가능한 스냅샷, 자동 차트 생성, 실시간 성능 패널, 사용자 지정 얼럿 등이 있다. 사용자는 내장된 라이브 마이그레이션 서비스(Live Migration Service)를 사용해 애플리케이션에 미치는 영향을 최소화하면서 몽고DB 아틀라스로 라이브 데이터를 가져올 수 있다.

도큐먼트와 다른 종류의 데이터 세트 저장, 처리, 액세스에 최적화 됐다. 사용하기 쉽고, 리소스를 많이 요구하는 애플리케이션에 맞춰 확장할 수 있고, 종합적인 도구와 파트너 생태계를 제공하기 때문에 개발자 사이에 인기가 높다. 몽고DB의 대표적인 활용 사례는 개인화, 실시간 분석, 사물인터넷(IoT), 빅데이터, 제품 및 자산 카탈로그, 보안 및 부정행위 방지, 모바일 애플리케이션, 데이터 허브, 콘텐츠 관리, 소셜 및 협업 애플리케이션 등이다.

아마존 다이나모
아마존 다이나모(Amazon DynamoDB)도 인기 높은 클라우드 기반 NoSQL 데이터베이스다. 완전 관리형 플랫폼으로, SSD를 사용해 데이터를 저장, 처리, 액세스하므로, 높은 성능과 확장성이 필요한 애플리케이션까지 지원한다. 워크로드 처리량과 스토리지 요구사항을 기준으로 데이터를 여러 서버로 자동 분산시킨다. 또 매우 높은 성능이 필요한 활용 사례를 지원한다.

사용자는 API(Application Programming Interfaces)와 아마존 웹서비스 관리 콘솔을 통해 테이블을 확장, 모니터링, 관리할 수 있다. 다이나모DB는 여러 데이터 소스에서 쿼리를 실행할 수 있는 아마존EMR(아파치 하둡, 아파치 스팍, H베이스용 관리형 프레임워크)과 통합돼 있다. 이 플랫폼은 키-값과 도큐먼트 모델을 모두 지원하고, 공간 인덱싱 라이브러리가 포함돼 있다. 현재 많은 기업이 광고 캠페인, 소셜 미디어 애플리케이션, 게임 정보 추적, 센서 및 로그 데이터 수집 및 분석, 전자상거래 등 다양한 용도로 사용하고 있다.

데이터스택스 엔터프라이즈 플랫폼
데이터스택스(DataStax)는 데이터 센터 분산에 아파치 카산드라(Apache Cassandra)를 이용한다. 포레스터의 애널리스트 유하나에 따르면, 데이터스택스 NoSQL의 큰 장점 중 하나는 글로벌 분산형 아키텍처라는 점이다. 오픈 소스 프로젝트인 아파치 카산드라의 상용 엔터프라이즈 버전을 분산 배치하고 지원한다. 카산드라는 와이드-로우 키-값 데이터베이스로 구글 비트테이블(Google Bigtable)을 기반으로 한다.

데이터스택스의 특징은 내결함성(Fault Tolerance), 스케일-아웃 아키텍처, 레이턴시가 낮은 데이터 액세스, 단순화시킨 관리 기능 등이다. 또한 중요 애플리케이션에 필요한 보안, 인메모리, 모니터링, 검색, 분석 등의 기능도 제공한다. 데이터스택스 엔터프라이즈(DataStax Enterprise)는 트랜잭션, 분석, 예측 분석, 혼합된 워크로드 등 다양한 비즈니스 애플리케이션을 지원한다. 또한 그래프와 JSON 데이터를 지원하는 등 멀티 모델 기능이 광범위하다. 부정행위 감지, 제품 카탈로그, 소비자 개인화, 추천 엔진, IoT 등에 주로 사용된다.

카우치베이스
카우치베이스(Couchbase)는 JSON 도큐먼트 지원 데이터베이스 플랫폼이다. 이 오픈소스 NoSQL DBMS는 아주 광범위한 기업 환경을 지원한다. 빌트-인(내장) 캐시가 특징이며 성능과 멀티 모델, 확장성, 자동화가 필요한 데이터베이스를 원하는 기업에 적합하다.

많은 기업은 소셜 및 모바일 애플리케이션, 콘텐츠 및 메타데이터 저장소, 전자상거래 트랜잭션, 온라인 게임 애플리케이션에 카우치베이스를 사용한다. 도큐먼트, 유연한 데이터 모델, 인덱싱, 풀 텍스트 검색, 실시간 분석을 위한 맵리듀스(MapReduce)를 지원한다. 운영 및 분석 프로세스 등 아주 중요한 다양한 워크로드를 지원해야 하는 대기업이 종종 사용한다.

레디스 엔터프라이즈
IDC의 올프슨에 따르면, 레디스 랩(Redis Lab)이 지원하는 오픈 소스 플랫폼인 레디스 엔터프라이즈(Redis Enterprise)는 가장 널리 사용되는 키-값 NSQ 데이터베이스 중 하나다. 포레스터의 유하나에 따르면, 레디스는 유연하면서도 강력한 일관성, 스키마가 없는 유연한 모델, 높은 가용성, 쉬운 배포 등을 지원하는 고성능 인-메모리 데이터베이스다.

레디스 랩은 오픈 소스 소프트웨어를 '캡슐화'하고 강화된 배포 아키텍처를 제공하며, 오픈 소스 API를 지원하는 기능과 기술을 추가 개발했다. 이 데이터 모델은 키-값, 리스트와 세트, 비트맵, 해시 등 다양한 데이터 구조를 지원하고, 검색과 그래프, JSON, XML 등을 모듈로 연결해 다양한 모델을 지원한다. 활용 환경도 실시간 분석부터 트랜잭션, 데이터 수집 및 처리, 소셜 미디어, 작업 관리, 메시지 큐와 캐싱 등 다양하다.

마크로직
마크로직(MarkLogic) NoSQL 데이터베이스는 NoQL의 속도와 확장성을 제공하는 운영 및 트랜잭션 엔터프라이즈 데이터베이스이다. 멀티모델 방식을 활용해 핵심 데이터를 통합 및 저장하고, 데이터를 도큐먼트나 그래프, 관계 데이터로 확인하는 기능을 제공한다(온프레미스, 가상, 클라우드 모두 지원). 또한, 가용성이 높고, 데이터 수준의 보안 기능을 제공한다. ACID 컴플라이언스, 요소 수준의 보안, 익명화, 제거(감추기), 고급 암호화 기능 등이다. 이 때문에 민감한 요주의 정보를 많이 공유하는 방법을 찾고 있는 기업에 적합하다. 또한 마크로직은 보안 표준인 공통평가기준(Common Criteria) 인증을 받은 유일한 NoSQL 데이터베이스이기도 하다.

이 밖에도 통합된 방식으로 데이터를 확인 및 검색하고, 언제든지 메타데이터를 사용해 검증할 수 있는 기능을 제공해 사용자 경험을 강화한다. 바이템포럴(Bitemporal) 시맨틱, 구조화 및 비구조화 데이터 수집 및 처리(JSON, XML, RDF, 공간, 대형 바이너리 저장), '무엇이든 질의할 수 있는' 유니버설 인덱스 등을 지원한다. 거버넌스와 컴플라이언스에 도움을 주는 운영 데이터 허브로 사용할 수 있으며, 특히 데이터 사일로가 존재하는 대기업, 사이버 보안 위협이 증가한 대기업, 규제가 엄격한 산업의 대기업에 유용하다. ciokr@idg.co.kr 

X