MongoDB を Cosmos DB に移行する利点

完了

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

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

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

スケーラビリティ

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

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

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

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

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

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

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

マルチリージョン

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

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

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

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

サーバー管理

Azure Cosmos DB は管理サービスであり、セットアップと継続的運用に必要な管理は最小限で済みます。

グローバル配信

別のリージョンへのデータのレプリケートはターンキー イベントです。 ユーザーが行う必要があるのはリージョンの指定だけであり、すべてのデータ、スループットの設定、および自動的に構成されるレプリケーションがそこにレプリケートされます。

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

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