MongoDB

What is MongoDB? MongoDB Products Feartures Cloud Manager

What is MongoDB?

MongoDB는 대규모, 고가용성을 요구하는 강력한 시스템에 적합하게 만들어졌습니다. 또한 최신 개발 환경과 프로그래밍 모델(Fast, Iterative Development), 컴퓨터 자원, 운영 자동화 요건에 맞게 설계되었습니다. 빠른 문서(document) 기반 구조(Flexible Data Model), 관리 편의성(Integrated Feature Set), 동적 스키마(dynamic schema), 더욱 간편한 수평 확장성을(Elastic, Multi-Datacenter Scalability) 가지고 있습니다. 인덱스, 동적 쿼리 등 관계형 데이터베이스의 장점과 유사한 인터페이스로 빠르고 쉽게 적응할 수 있습니다.

MongoDB Data Model

DATA AS DOCUMENTS

MongoDB는 데이터를 BSON(Binary JSON) 이진 문서로 저장합니다. 비슷한 구조를 공유하는 문서(document)들은 일반적으로 collection으로 구성됩니다. collection은 관계형 데이터베이스의 table과 유사하게 생각할 수 있습니다. document는 row와 유사하며, field는 column과 유사합니다. 문서(document) 모델은 MongoDB의 데이터가 사용자와 개발자에게 더욱 친화적인 것이 되고, 분산된 테이블들의 JOIN 필요성을 극적으로 줄여줍니다.

MONGODB DYNAMIC SCHEMA WITH DATA GOVERNANCE CONTROL

필드들은 문서에서 문서로 변경할 수 있으며, 시스템에 문서의 구조를 선언할 필요가 없습니다. 다른 문서들에 영향 없이 중앙 시스템 카탈로그를 갱신하거나 시스템을 오프라인 시키지 않고 생성 및 갱신할 수 있습니다. MongoDB는 데이터베이스 내에서 문서의 유효성 검사를 제공합니다. 사용자들은 문서 구조, 데이터 유형, 데이터 범위 및 필수 필드의 존재에 대한 검사를 시행할 수 있습니다.

MongoDB 데이터 모델과 관계형 데이터베이스, 키-값 저장소(key-value store) 비교

  MongoDB Relational Key-value
RICH DATA MODEL Yes No No
DYNAMIC SCHEMA Yes No Yes
DATA VALIDATION Yes Yes No
TYPED DATA Yes Yes No
DATA LOCALITY Yes No Yes
FIELD UPDATES Yes Yes No
EASY FOR PROGRAMMERS Yes No Not when modeling complex data structures

SCHEMA DISCOVERY

‘mongo shell’은 모든 MongoDB에 포함되어 있는 대화형 자바스크립트 쉘(interactive JavaScript shell)이며, 쿼리와 데이터 업데이트뿐만 아니라 운영 작업 수행을 위한 편리한 방법들을 제공합니다. ‘MongoDB Compass’는 스키마를 시각적으로 표현해주고 MongoDB의 쿼리 언어에 대한 지식 없이도 데이터베이스에 ad-hoc 쿼리를 수행할 수 있게 해주는 시각화된 사용자 환경을 제공합니다. (MongoDB Professional, MongoDB Enterprise Advanced에 포함)

MONGODB QUERY MODEL AND DATA VISUALIZATION

IDIOMATIC DRIVERS

직관적인 문서 데이터 모델, 동적 스키마와 관용적(idiomatic) 드라이버들을 사용하여 응용프로그램을 구축하고 MongoDB와 함께 더 빠르게 시장에 출시할 수 있습니다.

QUERY TYPES

운영 및 분석 응용프로그램을 위한 많은 유형의 쿼리들을 지원합니다. MongoDB의 다양한 기능은 하나의 기술로 확실하고 안전하게 다양한 실시간 응용프로그램들을 제공할 수 있게 해줍니다.

DATA VISUALIZATION

MongoDB Enterprise Advanced에 포함된 ‘MongoDB Connector for BI’를 사용하여 최신 응용프로그램 데이터를 쉽게 표준 SQL 기반의 BI와 분석 플랫폼으로 분석할 수 있습니다. 비즈니스 분석가(Business analysts) 및 데이터 과학자들(data scientists)은 MongoDB에서 관리되는 절반(semi-structure) 또는 비정형(unstructured) 데이터를 끊임없이 수백만의 기업들에 배포된 동일한 BI 도구를 사용하여 SQL 데이터베이스에서 전통적인 데이터와 함께 분석할 수 있습니다.

INDEXING

배열 내의 필드를 포함하여 문서의 모든 필드에 선언할 수 있는 다양한 유형의 보조 인덱스를(compound, unique, array, partial, TTL, geospatial, sparse, hash text) 지원하고 있으며, Index intersection은 하나 이상의 인덱스를 사용하는 것이 가능하게 합니다.

MongoDB의 쿼리 및 인덱싱 모델과 관계형 데이터베이스, 키-값 저장소(key-value store) 비교

  MongoDB Relational Key-value
KEY-VALUE QUERIES Yes Yes Yes
SECONDARY INDEXES Yes Yes No
INDEX INTERSECTION Yes Yes No
RANGE QUERIES Yes Yes No
GEOSPATIAL Yes Expensive Add-on No
TEXT SEARCH Yes Expensive Add-on No
AGGREGATION Yes Yes No
MAPREDUCE Yes No Yes
IDIOMATIC DRIVERS Yes No No
LEFT OUTER JOINS ($LOOKUP) Yes Yes No

MONGODB DATA MANAGEMENT

AUTO-SHARDING FOR LINEAR SCALABILITY

MongoDB는 샤딩(sharding)을 사용하여 저가 범용 하드웨어를 이용한 수평 확장(scale-out) 기능을 제공합니다. 샤딩은 응용 프로그램의 복잡한 수정 없이 RAM 또는 디스크 I/O의 병목현상과 같은 단일 서버의 하드웨어의 한계를 해결 수 있게 해주며, 자동으로 클러스터의 데이터 균형을 유지합니다. 또한 다중 샤딩 정책을 이용하여 쿼리 패턴이나 데이터 지역에 따라 클러스터 데이터를 배포할 수 있습니다.

MongoDB의 확장 능력과 관계형 데이터베이스, 키 – 값 저장소(key-value store) 비교

  MongoDB Relational Key-value
SCALE-OUT COMMODITY HARDWARE Yes No Yes
AUTOMATIC SHARDING Yes No Yes
SHARD BY HASH Yes Manual Yes
SHARD BY RANGE Yes Manual No
SHARD BY LOCATION Yes Manual No
AUTOMATIC DATA REBALANCING Yes Manual Limited

MongoDB 3.2는 4개 스토리지 엔진이 탑재되어 있으며 하나의 복제 세트(Replica set) 내에서 공존할 수 있습니다. 이것은 엔진의 평가 및 이전, 특정 응용프로그램의 요구 사항 최적화, 예를 들면 초 저 지연시간(latency) 작업을 위해 ‘In-memory’ 엔진과 지속성을 위한 디스크 기반 엔진의 결합을 쉽게 만들어 줍니다.

STORAGE EFFICIENCY WITH COMPRESSION 압축과 저장 효율성

WiredTiger 또는 Encrypted storage engine은 최대 80%까지 물리적 저장 공간을 줄여주는 압축을 지원합니다.

MONGODB CONSISTENCY & AVAILABILITY

TRANSACTION MODEL

MongoDB를 문서 수준에서 ACID 속성을 제공합니다. 하나 이상의 필드에 복수의 서브 문서와 배열 요소의 업데이트를 포함하여 한 번의 조작으로 기록될 수 있습니다. MongoDB에서 제공하는 ACID 보증 문서는 업데이트 될 때 완전한 격리를 보장; 모든 오류들이 작업을 롤백(roll back)시키기 때문에 클라이언트는 그 문서의 일관된 뷰(view)를 받게 됩니다. 개발자는 응용프로그램에 디스크의 저널 파일에 플러시된 후에만 커밋하도록 작업 구성에 MongoDB의 Write Concern을 사용할 수 있습니다. 이것은 내구성을 보장하기 위해 많은 전통적인 관계형 데이터베이스에 의해 사용 된 것과 같은 모델입니다. 분산 시스템으로서, MongoDB는 사용자가 원하는 가용성 SLA를 달성하는데 도움이 되는 추가적인 유연성을 제공합니다. 각각의 쿼리는 한 데이터 센터 내에 최소 2개의 복제본을 기록하고 제 2의 데이터 센터에 1개의 복제본을 기록하는 것과 같은 적절한 write concern를 지정할 수 있습니다.

REPLICA SETS

MongoDB는 ‘replica set’으로 불리는 기본 복제를 사용하여 데이터의 여러 사본을 유지합니다. Replica set는 데이터베이스 다운타임 방지를 돕는 완전 자가 치유 샤드입니다. Replica failover가 완전히 자동화되어 관리자가 수동으로 개입할 필요성을 제거한 것입니다.

IN-MEMORY PERFORMANCE WITH ON-DISK CAPACITY

새로운 In-Memory storage engine(Beta)의 추가로, 운영 및 실시간 분석 작업을 위한 인-메모리 컴퓨팅 성능의 이점을 실현할 수 있습니다. 인-메모리 스토리지 엔진은 광고(AdTech), 금융, 통신, IoT, 전자 상거래 등의 가장 성능 집약적인 응용프로그램에서 요구하는 극단적인 처리량과 예상 대기 시간을 구현할 수 있게 해주며 별도의 캐시층(caching layer)에 대한 필요성을 제거하는 것입니다. MongoDB의 replica set은 인-메모리와 디스크 기반 데이터베이스 하이브리드로 구축할 수 있습니다. In-Memory engine에 의해 관리되는 데이터는 영구적인 디스크 기반 엔진들 중 하나로 구성된 MongoDB 인스턴스들에 자동적으로 복제되기 전에 실시간으로 분석 처리될 수 있습니다. 다른 데이터베이스 간의 데이터 이동 시 전형적인 긴 ETL 사이클을 피하고, 사용자는 더 이상 용량 확장 또는 디스크 기억 장치에 의해 제공되는 지속성에 대한 보증을 얻기 위해 장거리 무역을 할 필요가 없습니다.

SECURITY

MongoDB Enterprise Advanced는 보안 표준 및 규정을 만족하는 인증(Authentication), 권한(Authorization), 감사(Auditing), 암호화(Encryption)를 위한 기능을 제공하고 있으며. 방어, 감지, 데이터 접근 제어를 위한 광범위한 기능을 제공하고 있습니다.

MANAGEMENT & OPERATIONS

Ops Manager는 MongoDB 운영을 위한 가장 손쉬운 방법이며, 모니터링, 백업, 확장 및 배포를 쉽게 만들어줍니다. Ops Manager는 데이터베이스를 만든 기술자들에 의해 만들어졌으며, MongoDB Enterprise Advanced에서 사용할 수 있습니다. Ops Manager의 많은 기능들은 MongoDB가 클라우드에서 운영하고 있는 MongoDB Cloud Manager에서도 사용할 수 있습니다. Ops Manager와 Cloud Manager는 데이터베이스의 전체 생애주기를 관리하는 응용프로그램들의 통합 제품군을(AUTOMATED DEPLOYMENT AND MANAGEMENT, PROACTIVE MONITORING, DISASTER RECOVERY) 제공합니다.

DEPLOYMENT AND UPGRADES

Ops Manager는 강력한 self-service portal을 통해 또는 기존 엔터프라이즈 도구에서 Ops Manager RESTful API 호출을 통해 MogoDB 배포를 도와줍니다. 공용 클라우드 또는 사설 데이터 센터의 단일 인스턴스부터 replica set 또는 sharded cluster까지 모두 배포 및 확장할 수 있으며, 유지 보수 작업, 업그레이드, replica set들에 걸쳐 인덱스 생성, oplog 크기 조정과 같은 것들을 몇 번의 클릭으로 다운타운 없이 할 수 있게 해줍니다.

MONITORING

Ops Manager는 MongoDB 서비스에 대한 가시성을 제공합니다. Ops Manager는 기능적인 차트, 사용자 정의 대시보드 및 자동 경보, operation counter, memory와 CPU 사용률, replication 상태, open connection, queue와 모든 노드 상태를 포함하여 주요 데이터베이스와 100개 이상의 시스템 건강 측정 기준에 따른 추적감시를 하고 있습니다. 측정값들은 Ops Manager에게 안전하게 보고되며, 처리, 집계, 경보들은 브라우저에서 시각화되어 관리자들이 실시간으로 MongoDB의 건강상태를 확인하게 해줍니다. 성능 기록은 운영 기준 작성과 향후 확장을 위한 용량 계획을 위한 목적으로 검토될 수 있습니다. 기존 모니터링 툴과의 통합도 Ops Manager RESTful API와 Application Performance Management (APM) 플랫폼을 선도하는 New Relic과 같은 패키지화된 통합툴을 이용하면 간단합니다. 이러한 통합은 MogoDB 상태를 하나의 창에서 여러분의 응용프로그램 기반의 나머지 부분과 함께 통합하여 모니터링할 수 있게 해줍니다.

DISASTER RECOVERY 재해 복구

Ops Manager와 Cloud Manager는 MongoDB의 연속, 증분 백업, replica set의 시점 복구, 샤드 클러스터의 일관된 스냅샷을 제공하는 전용 백업솔루션 입니다. Ops Manager는 MongoDB 데이터와 사용자 정의 보존 정책에 따라 여러 개의 사본을 유지합니다. 여러분은 신속하고 안전하게 여러분이 필요로하는 정확한 순간에 복원을 할 수 있습니다. 자동화 기반의 복원은 완전히 구성된 클러스터를 단 몇 번의 클릭으로 데이터베이스 스냅샷으로부터 바로 재배포 하는 것이 가능하게 해줍니다.

MongoDB 운영 능력과 관계형 데이터베이스, 키-값(key-value) 저장소 비교

  MongoDB Relational Key-value
SELF HEALING RECOVERY WITH AUTOMATIC FAILOVER Yes Often Requires Additional Clustering Software No: Manual Failover Often Recommended
SEPARATE CACHING LAYER REQUIRED No Often Often
DATA CENTER AWARENESS Yes Expensive Add-on No
AUTOMATIC PROVISIONING Yes Yes No
CONTINUOUS BACKUP & POINT IN TIME RECOVERY Yes Yes No
ADVANCED SECURITY Yes Yes No
API INTEGRATION WITH SYSTEMS MANAGEMENT FRAMEWORKS Yes Yes No

INTEGRATING MONGODB WITH EXTERNAL MONITORING SOLUTIONS

Ops Manager API 는 주요 모니터링 데이터에 접근할 수 있게 해주며, 외부 관리도구에 의한 Ops Manager 기능에 프로그램적으로 접근할 수 있게 해줍니다. 또한 Ops Manager, MongoDB Enterprise SNMP 트랩으로 시스템 정보를 보고할 수 있으며, 외부 모니터링 솔루션을 통해 중앙 집중식 데이터 수집 및 집계를 지원합니다.

MONGODB DRIVERS

COMMUNITY SUPPORTED DRIVERS

Documentation Releases Source API JIRA Online Course
GO (mgo) Releases Source API JIRA  
ERLANG Releases Source API JIRA  

SUPPORTED PLATFORMS

Platform 3.2 3.0 2.6 2.4 2.2
Amazon Linux V V V V V
Debian 7 V V V V V
Fedora 8+ V V V
RHEL/CentOS 6.2+ V V V V V
RHEL/CentOS 7.0+ V V V
SLES 11 V V V V V
SLES 12 V
Solaris 64-bit V V V V V
Ubuntu 12.04 V V V V V
Ubuntu 14.04 V V V
Microsoft Azure V V V V V
Windows Vista/Server 2008R2/2012+ V V V V V
OSX 10.7+ V V V V

PLATFORMS AND SERVICES

MONGODB PRODUCTS FEARTURES

MongoDB Enterprise Server 및 고급 소프트웨어 패키지, 기술지원과 서비스들은 고객의 mission critical application 구축을 위한 최적의 솔루션을 제공할 것입니다.

MongoDB Enterprise Advanced Features
Ops Manager or Cloud Manager Premium V
Red Hat Identity Management Certification V
Kerberos & LDAP Authentication V
Auditing V
SNMP Support V
Encrypted Storage Engine V
In-Memory Storage Engine V
MongoDB Compass V
MongoDB Connector for BI V
Platform Certifications: Windows, RedHat/CentOS, Ubuntu, Amazon Linux V
Private, On-Demand Training V
Support SLA 1 hour
Support Availability 24×365
Emergency Patches V
Commercial License, Warranty, and Indemnification V
MongoDB Professional Features
Ops Manager or Cloud Manager Premium V
Database Monitoring V
Custom Alerts V
Visual Query Profiler V
Zero-downtime Upgrades V
Automated Database Deployment V
Automated Database Management V
Access to Cloud Backup Service V
MongoDB Compass V
SLA 2 hour
Support Availability 24×365
MongoDB Development Support Features
Number of Servers Unlimited
Support SLA 4 hour
Support Availability 9am – 6pm Local, M -F
Ops Manager V
Red Hat Identity Mgmt Certification V
Auditing V
SNMP Support V
Encrypted Storage Engine V
In-Memory Storage Engine V
Platform Certifications: Windows, RedHat/CentOS, Ubuntu, Amazon Linux V
MongoDB Compass V
MongoDB Connector for BI V
Private, On-Demand Training V
Commercial License V

CLOUD MANAGER

Cloud Manager Premium은 MongoDB Professional 또는 MongoDB Enterprise Advanced 와 함께 사용할 수 있습니다.

  Cloud Manager Free Cloud Manager Standard Cloud Manager Premium
Backup
Unlimited Restores V V V
Backup V V V
Comprehensive Monitoring
Data Retention 24hrs Full historical data Full historical data
Granularity 5 minute 2 minute 2 minute
Custom Alerting V V V
APM Integration V V V
Automation
Database Creation   V V
Database Modification   V V
Zero Downtime Upgrades and Downgrades   V V
Provisioning on AWS   V V
Query Optimization
Visual Query Profiler     V
Index Suggestions     V
Automated Rolling Index Builds     V