Azure Cosmos DB for MongoDB とは?

適用対象: MongoDB

Azure Cosmos DB は、最新のアプリ開発に対応するフル マネージドの NoSQL とリレーショナル データベースです。

Azure Cosmos DB for MongoDB は、Azure Cosmos DB を使用することで、あたかも MongoDB データベースであるかのように使用しやすくなります。 MongoDB 用 API を使用してアプリケーションからアカウントの接続文字列を参照することで、既存の MongoDB スキルを使用し、お気に入りの MongoDB ドライバー、SDK、ツールを使用し続けることができます。

ヒント

コミットメントなしで Azure Cosmos DB for MongoDB をお試しいただけます。 無料で Azure Cosmos DB を試すを使用して Azure Cosmos DB アカウントを作成します。

Cosmos DB for MongoDB の利点

Cosmos DB for MongoDB には、MongoDB Atlas などの他の MongoDB サービス オファリングと比較して、多くの利点があります。

  • 即時のスケーラビリティ: 自動スケーリング機能により、ウォームアップ期間なしで、データベースをただちにスケーリングできます。 MongoDB Atlas などの他の MongoDB オファリングは、スケールアップに数時間、スケールダウンに数日かかる場合があります。

  • 自動かつ透過的なシャーディング: MongoDB 用 API では、すべてのインフラストラクチャが自動的に管理されます。 この管理には、シャーディングや、シャードの数の最適化が含まれます。 MongoDB Atlas などの他の MongoDB オファリングでは、水平スケーリングを行う場合にシャーディングを自分で指定して管理する必要があります。 この自動化により、ユーザー向けのアプリケーションの開発に、より多くの時間を増やすことができます。

  • ファイブ ナインの可用性: 99.999% の可用性を簡単に構成でき、データの喪失を確実に防ぐことができます。

  • アクティブ/アクティブ データベース: MongoDB Atlas とは異なり、Cosmos DB for MongoDB では、複数のリージョンにわたってアクティブ/アクティブがサポートされます。 データベースは複数のリージョンにまたがることができ、同じデータの書き込みと読み取りの単一障害点はありません。 MongoDB Atlas グローバル クラスターでは、同じデータの書き込みについてアクティブ/パッシブ デプロイのみがサポートされます。

  • コスト効率に優れた、粒度の細かい、無制限のスケーラビリティ: 他の MongoDB サービス オファリングとは異なり、シャード コレクションを任意のサイズにスケーリングできます。 Azure Cosmos DB プラットフォームは、そのアーキテクチャにより、VM の 1/100 という小さな単位でスケーリングできます。 したがって、未使用のリソースに料金を支払うことなく、データベースを必要な正確なサイズにスケーリングできます。

  • 任意の規模でのリアルタイム分析 (HTAP): データベースに影響を与えることなく、トランザクションの MongoDB データに対して分析ワークロードをリアルタイムで実行できます。 ETL パイプラインなしで、クラウド ネイティブの分析列ストアが利用されているため、この分析は高速かつ低コストです。 Power BI ダッシュボードを簡単に作成でき、Azure Machine Learning および Azure Cognitive Services と統合し、MongoDB ワークロードのすべてのデータを 1 つのデータ ウェアハウス ソリューションにまとめることができます。 Azure Synapse Link についての詳しい情報をご覧ください。

  • サーバーレス デプロイ: Cosmos DB for MongoDB では、サーバーレス容量モードが提供されます。 サーバーレスであるため、料金はあくまで操作に応じて発生し、データベースを使用していないときには課金されません。

  • Free レベル: Azure Cosmos DB の Free レベルでは、アカウント レベルで適用されている最初の 1000 RU/s と 25 GB のストレージを、お使いのアカウントで無期限かつ無料でご利用いただけます。 Free レベルのアカウントは自動的にサンドボックス化されるため、使用量に対して課金されません。

  • 無料の 7 日間の継続的バックアップ: Azure Cosmos DB for MongoDB では、任意の量のデータに対して無料の 7 日間の継続的バックアップが提供されます。 したがって、過去 7 日以内の任意の時点にデータベースを復元できます。

  • 数秒で終わるアップグレード: すべての API バージョンが 1 つのコードベース内に存在するため、バージョンの変更がスイッチの切り替えのように簡単です。ダウンタイムは発生しません。

  • ロール ベースのアクセス制御: Azure Cosmos DB for MongoDB を使用すると、詳細なロールとアクセス許可をユーザーに割り当てて、データへのアクセスを制御し、ユーザー アクションを監査できます。すべてネイティブの Azure ツールを使用します。

  • 詳細な監視機能: Cosmos DB for MongoDB は、Azure Monitor とネイティブに統合され、詳細な監視機能を提供します。

Cosmos DB for MongoDB のしくみ

Cosmos DB for MongoDB には、MongoDB 用のワイヤ プロトコルが実装されています。 この実装により、MongoDB クライアント SDK、ドライバー、ツールとの透過的な互換性が実現されます。 Azure Cosmos DB は、MongoDB データベース エンジンをホストしません。 ご使用の API バージョンと互換性のある MongoDB クライアント ドライバーであれば、通常、特別な構成なしに接続できます。

重要

この記事では、MongoDB データベースとのワイヤ プロトコルの互換性を提供する Azure Cosmos DB の機能について説明します。 Microsoft は、このサービスを提供するための MongoDB データベースの運営は行いません。 Azure Cosmos DB は MongoDB, Inc. とは提携していません。

MongoDB 機能の互換性

Cosmos DB for MongoDB は、次のバージョンの MongoDB サーバーと互換性があります。

サーバー バージョンの選択

すべてのバージョンが同じコードベースで実行されます。そのためアップグレード作業は簡単で、ダウンタイムなしで数秒で完了できます。 Azure Cosmos DB でいくつかの機能フラグを反転させるだけで、バージョンが切り替わります。 また、この機能フラグにより、以前の API バージョン (3.2、3.6 など) が引き続きサポートされます。 自分にとって最適なサーバー バージョンを選択できます。

ワークロードの準備ができているかどうかわかりませんか? 自動ツールを利用して、Cosmos DB for MongoDB に移行する準備ができているかどうかを判断するために、Microsoft にお問い合わせください

最初に知っておくべきこと

  • クラスター内の仮想マシンに対しては課金されません。 価格は、データベース単位またはコレクション単位で構成された要求ユニット (RU) あたりのスループットに基づきます。 Free レベルでは、最初の 1000 RU/s が無料になります。

  • Cosmos DB for MongoDB をデプロイする方法は次の 3 つです。

    • プロビジョニング スループット: 1 秒あたりの RU 数を設定して手動で変更します。 このモデルは、一貫性のあるワークロードに最も適しています。

    • 自動スケーリング: 必要なスループットの上限を設定します。 ニーズに合わせてスループットは即時にスケーリングされます。 このモデルは、頻繁に変化するワークロードに最も適しており、そのコストが最適化されます。

    • サーバーレス: 使用したスループット (期間) に対してのみ課金されます。 このモデルは、開発とテストのワークロードに最も適しています。

  • シャード クラスターのパフォーマンスは、コレクションの作成時に選択したシャード キーに依存します。 データがシャード全体に均等に分散されるよう、シャード キーは慎重に選択してください。

よく寄せられる質問

  1. Cosmos DB for MongoDB では、データ所在地の要件がサポートされていますか?

    はい。データ所在地は、1 つ以上のリージョンに関連付けられているデータベース アカウント レベルで管理されます。 通常、お客様は所在地の要件ごとにデータベース アカウントを作成します。 たとえば、米国とヨーロッパにデータを保存する必要がある場合は、2 つのデータベース アカウント (1 つは米国、もう 1 つはヨーロッパ) を作成します。

  2. Cosmos DB for MongoDB では、2 MB を超えるドキュメントがサポートされていますか?

    はい。16 MB という大きいドキュメントが完全サポートされています。

  3. Cosmos DB for MongoDB では、複数フィールドの並べ替えがサポートされていますか?

    はい。複数フィールドの並べ替えがサポートされています。 操作が効率的かつスケーラブルになるように、並べ替えのフィールドには複合インデックスが必要です。

  4. Cosmos DB for MongoDB は直線的にスケーリングされますか?

    多くの場合、Cosmos DB のコストは、直線的よりも適切にスケーリングされます。 たとえば、1 KB のドキュメントを読み取る場合、これは 1 要求ユニット (RU) に相当します。 ただし、10 KB のドキュメントを読み取る場合でも、これは約 1 RU に相当します。 Cosmos DB Capacity Calculator は、スループットのニーズを見積もるのに役立ちます。

  5. データを暗号化し、フィールド レベルでアクセスを管理するにはどうすればよいですか?

    Cosmos DB for MongoDB では、フィールド レベルの暗号化がサポートされています。

  6. 要求ユニット (RU) の料金はどのように支払いますか?

    Cosmos DB for MongoDB には、プロビジョニングされたスループット、自動スケーリング、サーバーレスの 3 つの容量モードが用意されています。 前払いは必要ありません。 自動スケーリングでは、ニーズに合わせて瞬時にスケーリングされ、サーバーレスでは、使用したスループットに対してのみ料金が発生します。

  7. Cosmos DB for MongoDB では、どのような機能がサポートされていますか?

    Cosmos DB for MongoDB では、Cosmos DB の無制限のスケール アーキテクチャに基づいた豊富な MongoDB 機能セットがサポートされています。 これらの機能には、集計パイプライン、変更ストリーム、インデックス、地理空間クエリなどがあります。 詳細については、機能のサポート マトリックスに関するページを参照してください。 ワークロードの準備ができているかどうかわかりませんか? 自動ツールを利用して、Cosmos DB for MongoDB に移行する準備ができているかどうかを判断するために、Microsoft にお問い合わせください

  8. Cosmos DB for MongoDB はオンプレミスで実行されますか?

    Cosmos DB for MongoDB はクラウドネイティブのマルチテナント サービスであり、オンプレミスでは使用できません。 Cosmos DB では、ローカルでの開発とテストのためのエミュレーターが提供されます。

次のステップ