MongoDBを採用することにより、従来のRDB型データベースでは
困難だった要求にも対応する
データベースシステムを開発することが可能になります。
大幅な開発期間短縮を生むアジャイルな開発技法
昨今のアプリ開発は、ビジネスニーズによる短期間でのデリバーと、頻繁な仕様変更が要求される時代に直面してます。MongoDBのドキュメント型データモデルの持つ柔軟な構造が、容易なスキーマデザインや、変更要求に強いアプリ開発を可能にします。また、アプリ運用時においても急増するトラフィックに対して、MongoDBは動的負荷分散を行う自動プロビジョニング機能や監視機能を標準で提供しています。従来のRDBシステムでは工程の長かったスキーマの初期設計やデータモデルのデザインに時間が大幅に短縮される上、その変更も非常に容易になるため、MongoDB導入は大きな開発効率改善につながります。

フレキシブルなデータモデル
MongoDBのドキュメント型データモデルは、SQLの従来の強みである複雑な検索能力やインデックス機能をサポートすると共に、異なるデータ構造を一つのコレクションで運用管理することができます。また、データのスキーマ変更、新規データフォーマットの取り込みもシステムを止めることなく動的に行うことができます。この柔軟性が、従来RDBの世界では負荷が高かったスキーマ設計や変更の工程を大幅に短縮し、開発者にとって最も重要な、アプリ自体の開発に集中できる時間を増やしてくれます。

選択自由なストレージアーキテクチャ
MongoDBの魅力は、様々なアプリニーズに対応できる、という汎用性の高さです。さらにMongoDBは、下位のハードウェアアーキテクチャの違いを最適化利用するために、異なるストレージエンジンを複数採用できるプラガブル(Pluggable)ストレージアーキテクチャを採用しています。上位アプリに対しては統一したMongoDBのQuery言語、セキュリティ、運用ツールを提供しながら、下位では異なるストレージエンジンを複合的に運用することができます。

マルチデータセンタスケーラビリティ
MongoDBのスケールアウト型のアーキテクチャは地理的に離れた、異なるデータセンタ間でのデータのバックアップ、同期や分散目的に適用することができます。データを扱うアプリはその利用拡大に伴ってスケールの要件が高まりますが、MongoDBでは、システムを止めることなく簡単にデータの許容量拡張が可能になります。当然ながら、これは単一データセンタ内でのスケールアウトによるシステム拡張のみならず、異なるデータセンタ間でのバックアップ、障害回復、BCM(Business Continuity Management)等の運用にも活かすことができます。

高度なDBシステムとしての機能の整備
データアナリティクス、可視化、テキスト検索、位置情報データ管理、インメモリデータ処理機能、レプリケーション、シャーディング、等の高度なデータベース運用管理機能がすべてMongoDBに於いてはリアルタイムで、セキュアな環境で実行できる標準機能として提供されます。これらの機能はRDBではオプションとして位置付けられる事が多く、その複雑なシステム設定工数と比較し、MongoDBは大幅に時間と労力、そして何よりもコストを削減できます。

TCOの削減
MongoDBの採用によって最大の生産性を上げるのはアプリ開発部門です。開発期間の短縮に加えて、クラウド等の安価で汎用的な仮想サーバで開発/テスト/QAができますので、アプリ開発コストが大幅に下がります。また、IT運用部門も、同様の理由によって汎用サーバによる運用/保守コスト削減が実現します。また、MongoDBのサブスクリプションでは24x7サポートがグローバルで提供されます。総合的に、従来のRDBソリューションに対する投資コストの1/10にまで落とすことが可能です。

長期的なコミット
MongoDBとそのコミュニティは、データベース業界において最も急速に成長している企業とエコシステムを保有しています。MongoDBは、1,500万回以上のダウンロード、2000社以上の顧客(内フォーチュン100企業は50%以上)、1,000社以上のパートナーを誇り、さあにデータベース業界で最大の投資を受けている企業として他社と比較しても群を抜いており、データベースベンダーとして今後も成長をし続ける企業として、安心と信頼をもってエンタプライズの戦略的な技術として採用することができます。

Nexusアーキテクチャ

MongoDBは、レガシーなRDB技術の重要な機能と、次世代のNoSQL技術を組み合わせる、というデザインコンセプトに支えられています。このコンセプトは、Oracle等の従来のデータベースベンダーの過去40年の実績を継承していこう、という考え方に基づいています。MongoDBは、これらの成熟した技術に対抗するのではなく、今まで築き上げられたRDBの機能やノウハウを生かし、今日のインターネット、クラウドの時代に最適化したアーキテクチャに前進させるべく、開発されています。

RDB技術は長きにわたってエンタプライズアプリの中核技術として地位を守りつつ、次世代のアプリにも重要な機能を提供し続けてきました。

機能範囲の広いクエリー言語とセカンダリーインデクス
運用系や分析系のアプリ両方をサポートするために、データアクセスに対する複雑な処理を行うクエリー言語のサポートが要求されます。また、アプリのデータアクセスに対する負担を軽減するためにもデータベースネーティブで高度なインデックス機能が必要とされます。
データ整合性
データベースに書き込まれた後、正しくアプリが読めるように、データ整合性が保証される必要があります。Eventually Consistent(結果整合性) なデータモデルに基づくアプリ開発はむしろRDBの世界ではアプリ開発を複雑化する要因を作ります。
エンタプライズ管理と統合
エンタプライズのIT資産全体から見て、データベースはそのアプリの重要なコンポーネントの一つです。エンタプライズの持つ、IT資産全体を監視、運用自動化、そしてセキュリティを保存するインフラも、データベースの管理を重要な要件としてシステム管理者、DBA、そしてデータアナリストが共通に運用できるようにする必要があります。

しかしながら、昨今のアプリは、従来のRDB技術が提供してこなかった機能を要求することになり、それがNoSQLの誕生を促している、と言えます。次のようなものが例としてあげられます。

柔軟なデータモデル
昨今のアプリは、爆発的に多様化しているデータモデルを取り扱っており、NoSQLの最も重要な要件としてあげられます。ドキュメント型に加え、グラフ型、キーバリュー型、ワイドカラム型等、いずれも様々な形式のデータを扱う特長を持っており、柔軟なスキーマ設計、動的なデータモデルの変更などがサポートされます。
スケーラビリティと性能
すべてのNoSQLは大量のデータを高いスループットと低いレーテンシーで処理する性能を強みとしており、そのためにパーティショニングや、シャーディング等の機能を標準的にサポートしています。これらは、スケールアップ型のRDBと異なり、大量の汎用的なハードウェアの上でスケールアウトさせる形でデータの量に依存しない高速な処理速度を実現しており、クラウドのようなプラットホームでの実装にまさに適しています。
高い可用性とグローバル展開
NoSQLは、グローバルにデータを分散、多重化、バックアップをする用途向けに開発されています。レプリケーション機能を通して、サーバ、ラック、データセンタ間のデータの自動的な同期を保証しながら、RDBの持つデータ管理/運用特性を保証します。

多くのNoSQL技術は、これらの新しい機能を、従来のRDBの持つ特性を犠牲にした上で提供してきました。MongoDBの大きな特長は、Nexas Architectureと呼ばれる、従来のRDBの基盤を守りつつも、NoSQLのイノベーティブな機能を併せ持って提供する技術コンセプトにあります。

さらに詳しく。