MongoDB から Cosmos DB への移行の利点

完了

MongoDB から Cosmos DB への移行には、スケーラビリティ、グローバル分散、サーバー管理などの利点があります。

データベース開発者のリードとして、データベース ワークロードを Azure に移行する利点を理解する必要があります。 Cosmos DB には、従来のオンプレミスのドキュメント ベースデータベースでは見つからない独自の機能があります。

このユニットでは、既存の MongoDB アプリケーションとの API の互換性を維持しながら、利用できる CosmosDB の機能について説明します。

スケーラビリティ

データベースを Azure に移行することで、無制限のストレージとパフォーマンスのための柔軟なスケーラビリティを活用できます。 パフォーマンスを指定するには、コンテナー レベルまたはデータベース レベルでスループットの要求ユニット (RU) を指定します。

コンテナーのスループットの指定

最も一般的なオプションは、コンテナー レベルでスループットを指定することです。 これにより、コンテナー内のすべての論理パーティションでスループットが均一に保証され、スループットはそのコンテナーに限定されます。 スループットは論理パーティション間で均一であるため、1 つのパーティションがスループットを超えると、他のパーティションに使用可能なスループットがある場合でもレート制限されます。 そのため、ホット パーティションを回避するためにパーティション キーを構成することが重要です。

データベース スループットの指定

データベース レベルでスループットを指定することで、スループットはコンテナー間で共有されます。 これは、コンテナーのスループットが定期的に変化するが、データベースの合計スループットが比較的静的なままである場合に便利です。 各コンテナー内のスループットは、論理パーティション間で均一であり、1 つのパーティションがスループットを超えた場合、他のパーティションに使用可能なスループットがある場合でもレート制限されます。

スループットはいつでも変更でき、コンテナーまたはデータベースの最大スループットは無制限です。

移行の利点の詳細については、「 MongoDB を Azure Cosmos DB に移動する」の「根拠」セクションを参照してください。

マルチリージョン

Azure Cosmos DB は、すべてのリージョンにグローバルに分散できます。 データベースはユーザーの近くに配置できます。また、ユーザーのグローバル分散がある場合は、いつでもリージョンを追加および削除できます。 ユーザーの近くにデータを配置することで、待機時間を短縮し、ユーザー エクスペリエンスを向上させることができます。

データベースが 1 つのリージョンにある場合、データベースが 99.99% の時点で使用できるサービス レベル アグリーメント (SLA) がありますが、複数のリージョンにデプロイする場合は、読み取りと書き込みの可用性% 99.999 の SLA を利用できます。 リージョンの障害が発生した場合でも、Azure Cosmos DB は SLA を維持しながら別のリージョンに自動的にフェールオーバーします。

リージョン間のレプリケーションは、定義した整合性レベルを維持しながら自動的に処理されます。

スループットは、リージョン レベルではなく、データベースまたはコンテナー レベルで構成されます。 そのため、自動的にデプロイするすべてのリージョンで同じスループットが得られます。

サーバー管理

Azure Cosmos DB はマネージド サービスであり、セットアップと継続的な操作の最小限の管理が必要です。

グローバル配信

データを別のリージョンにレプリケートすることはターンキー イベントです。 必要なのはリージョンを指定し、すべてのデータ、スループット設定、レプリケーションが自動的に構成された状態でデータがそこにレプリケートされる必要があります。

スキーマとインデックスの管理

Cosmos DB はスキーマに依存せず、すべてのデータのインデックスを自動的に作成します。 これにより、アプリケーションのスキーマを使用してデータベース スキーマとインデックスを維持する必要がなくなります。 これにより、特にデータベースがグローバルに分散されている場合に、かなりのワークロードが削除されます。