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