配置パラダイムを選択するには、アプリケーションの可用性(一般的な場合と停止時の両方)、レイテンシ、コンプライアンス、コストを考慮する必要があります。配置において「正しい」パラダイムは 1 つではありません。このセクションでは、配置のニーズを満たすためにご利用いただけるアーキテクチャについて説明します。
データベースを配置するときは、まず単一リージョンに配置するか、複数リージョンに配置するかを選択する必要があります。次の図はこれらのオプションを示しており、以下でさらに説明しています。

単一リージョン配置
単一リージョン配置は、最も簡単な配置オプションです。単一リージョン配置では、データはプロバイダーのリージョンのいずれか(AWS の us-west-2 や Google の asia-northeast3 など)に保存されます。複数のゾーンを持つリージョンでは、Atlas は常にゾーンレベルの可用性を提供し、クラスター ノードは単一リージョン内のアベイラビリティーゾーンに分散されます。したがって、1 つのゾーンに障害が発生しても、データは他のゾーンで引き続き利用可能です。
注意
推奨されるリージョンには 3 つのアベイラビリティーゾーンがあり、Atlas UI では星のアイコンで示されています。
単一リージョン配置はシンプルで低コストですが、アプリケーションのユーザー分布によっては可用性が低下し、レイテンシが高くなるリスクがあります。
マルチリージョン配置
マルチリージョン配置は、単一リージョン配置よりも広い地理的範囲で高可用性と低レイテンシを提供する、より複雑な配置パラダイムです。マルチリージョン配置には、いくつかの種類があります。
1 つの地域におけるマルチリージョン: 国や大陸のような単一の広い地理的領域内で、単一のクラウドプロバイダーがホストする複数のリージョンに配置します。これにより、特定のリージョンが障害を起こした場合でも可用性が確保されます。
例えば、AWS リージョンの
us-west-1とus-east-1にクラスターを配置します。両方とも米国にあります。us-east-1が利用できなくなった場合、us-west-1はほぼ通常のパフォーマンスで読み取りおよび書き込みを継続して受け入れます。複数の地域におけるマルチリージョン: 2 つ以上の地域の 1 つ以上のリージョンに配置します。これにより、特定のリージョンで障害が発生した場合や、1 つの地域全体が利用できない場合でも、可用性が確保されます。
例えば、AWS リージョンの
us-east-1とus-east-2にクラスターを配置します。これらはどちらも米国にあり、3 つ目のクラスターはヨーロッパのeu-west-2に配置します。マルチクラウド: 複数のクラウドプロバイダーによってホストされている 1 つ以上のリージョンに配置します。これにより、最高レベルの可用性が提供され、特定のリージョンに障害が発生した場合や、クラウドプロバイダー全体に障害が発生した場合でも、データを確実に利用できます。
例えば、AWS リージョン
us-west-1および Google Cloud リージョンus-east4にクラスターを配置します。
可用性に関する検討事項
可用性は、クラスターが障害に対してどれだけ回復力があるかで考慮されることが多く、障害復旧は、システムが停止からどれだけ早く回復できるか(RTO)、および停止中にどれだけデータが失われるか(RPO)を指します。すべての Atlas インスタンスは常に最新のデータを保持しているため、フェイルオーバー時にバックアップを復元する必要はありません。
Atlas には配置に組み込まれたレプリケーションがあり、これは次のことを意味します。
データベース インスタンスは、通常ミリ秒の範囲で厳密に同期されます。
停止のイベントが発生した場合、データベース インスタンス間のフェイルオーバーは完全に自動です。人間の介入は必要なく、数秒で完了します。
デフォルトの
majorityの writeConcern を使用すると、すべてのデータが複数のロケーションに書き込まれるため、フェイルオーバー中にデータが失われることはありません。さらに、DB ドライバーは進行中の操作を確実に成功させるように、自動的に再試行します。
これは、RTO、RPO、データ レプリケーション頻度が実質的に等しく、過半数のノードが正常である限り、Atlas クラスターは完全に機能することを意味します。
注意
最大 RTO と RPO は、クラスター全体とアプリケーションの配置方法の両面から総合的に考慮する必要があります。クラスター全体のワークロードを考慮し、要件をサポートできることを確認してください。
配置パラダイムの比較
どの配置パターンが適しているかを判断するには、コアビジネスにとっての重要度に基づいてアプリケーションを分類してください。アプリケーションの重要度が高いほど(つまり、停止がビジネスに与える影響が大きいほど)、あらゆる停止イベントを自動的に取り扱うアーキテクチャを検討する必要があります。
次の表は、配置パラダイムを比較したもので、ニーズに最適なものを判断するための参考になります。
優先順位レベル | 説明 | RTO | 配置モデル | 相対的なコスト |
|---|---|---|---|---|
階層 0 | 最も重要度の高いアプリケーション。地域的な停止が発生した場合でも、完全に自動化されたフェイルオーバーが必要です。 | 0 | $$$ | |
階層 1 | 重要度の低いアプリケーション。多少のダウンタイムやメンテナンスウィンドウが発生しても、収益に重大な影響はありません。 | 1 時間を超え、8 時間未満 | $$ | |
階層 2 | 重要度が最も低いアプリケーション。24 時間ダウンしても収益に大きな影響はありません。 | > 8 時間 | $+ | |
非本番環境 | 重要ではないアプリケーション。収益に直接関与せず、顧客向けではない環境。通常、開発環境とテスト環境です。 | 該当なし | 0 以上 |
注意
各配置タイプのコストは、選択するプロバイダー、必要なリージョンの数、ストレージの容量、サーバーの処理能力など、いくつかの要因によって異なります。最新の価格情報については、「MongoDB 価格設定」を参照してください。
ユースケース
配置パラダイムを選択する際は、ユーザーの地理的分布を最も広くカバーできる、最小のリージョン数を特定することから始めます。次に、可用性、パフォーマンス、データ主権の要件に応じて、リージョンやクラウドプロバイダーを追加することを検討します。
アプリケーションのユーザーの地理的分布に最適な配置パラダイムを決定するために、次のユースケースを考慮してください。
主に 1 つの地域に集中したユーザー
アプリケーションのユーザーの過半数が 1 つの地域にいる場合は、同じ地域内の 1 つ以上のリージョンに配置することをお勧めします。単一リージョン配置は、単一のアベイラビリティーゾーンでの停止に対応できますが、マルチリージョン配置は、より広い地理的範囲をカバーし、ゾーンおよびリージョンの両方の停止の場合でも可用性を確保できます。さらに高い可用性を実現するために、複数のリージョンにわたって配置することができます。これらのオプションはすべて低レイテンシをサポートし、すべてのユーザーデータが同じ地域内でアクセスおよび保存されるため、データ主権要件へのコンプライアンスが容易になります。
これらの配置パラダイムの詳細については、次のパラダイムページを参照してください。
複数の地域に分散したユーザー
アプリケーションのユーザーが米国やヨーロッパなど複数の地域に分散している場合、各地域で 1 つ以上のリージョンに配置することをお勧めします。顧客にサービスを提供する各地域に 1 つのリージョンを展開することで、1 つの地域で障害が発生した場合でも低レイテンシと可用性を確保できます。また、各地域のユーザーデータをその地域内でホストするようにデータをパーティショニングすることで、データ主権要件を満たすこともできます。
リージョンの停止時に、レイテンシを増加させたり、データ主権要件に違反したりすることなく、高可用性を確保するために、各地域で複数のリージョンに配置することもできます。クラスターを複数のリージョン、複数の地域に配置することで、マルチリージョン配置の可用性を最大限に高めることができます。
これらの配置パラダイムの詳細については、次のパラダイムページを参照してください。
世界中に分散したユーザー
アプリケーションを世界中のオーディエンスに向けて配置する場合、グローバル配置を検討する前に、複数の地域にまたがるマルチリージョン配置を行うことをお勧めします。ほとんどの場合、複数の地域におけるマルチリージョン配置は、高可用性、低レイテンシ、データ主権に関する要件を満たすことができます。まれに、Atlas のグローバル配置が必要になる場合がありますが、これは最も複雑なマルチリージョン配置パラダイムであり、非常に慎重な計画が必要です。
これらの配置パラダイムの詳細については、次のページを参照してください。