MongoDB Search とMongoDB ベクトル検索を使用するMongoDBシステムを設計する場合、次の 2 つの一般的な配置タイプがあります。
mongod
とmongot
プロセスが同じホストを共有するコロケーション アーキテクチャ。このアーキテクチャは、開発および小規模な検索またはベクトル検索のワークロードに適しています。mongod
プロセスとmongot
プロセスが各ワークロードのニーズに応じてサイズ設定された個別のマシンで実行される専用のインフラストラクチャモデル。このインフラストラクチャは、高可用性、シャーディング、または重い検索クエリとインデックスを伴う大規模な検索またはベクトルワークロードを要求するアプリケーションに推奨されます。
このセクションでは、両方の配置タイプについて説明します。また、シャーディングされたMongoDBクラスターに mongot
を配置することの影響についても説明します。
コロケーション アーキテクチャ
これは、開発環境や高速な反復処理が必要な状況に推奨される、最もシンプルなアーキテクチャです。高速プロトタイプに優れ、必要な構成量は最小限に抑えられます。
配置は、mongod
プロセスと mongot
プロセスの両方を実行中1 台のマシンで構成されています。すべての通信は localhost
アドレスを介して実行され、すべての認証とセキュリティ機能を無効にするか、または権限を付与できます。
ほとんどの小規模な検索ワークロードでは、このアーキテクチャを マルチノードのレプリカセットに拡張できます。コロケーション アーキテクチャを実装するときは注意し、リソース競合のサインをモニターしてください。

専用インフラストラクチャ
これは、本番環境に推奨される汎用のアーキテクチャです。専用インフラストラクチャは、データベースノードと検索ノードの両方の水平スケーラビリティと垂直スケーラビリティの両方に対応します。
配置は、レプリカセット構成で mongod
を実行中マシン少なくとも 3 台と、mongot
を実行中マシンを少なくとも 2 台で構成されています。検索クエリで高可用性を実現するには、mongod
ノードにアプリケーションレベルのロードバランサーが必要です。Envy のようなロードバランサーの使用を検討し、リクエストごとのラウンドロギングなどのロード バランシング戦略を使用します。
逆の方向では、負荷分散は必要ありません。mongot
は、 構成 に基づいて、データレプリケーションとインデックスカタログ データ用に通信するための mongod
ノードを自動的に選択します。

シャーディングされたトポロジー
このアーキテクチャは専用インフラストラクチャ アーキテクチャと似ていますが、レプリカセットの構成は個々のシャードに複製されます。
注意
1 つのシャードから複製するには、mongot
のみを構成する必要がありますが、インデックスカタログにアクセスするには、mongot
にルーター アドレスを構成する必要があります。
シャーディングされたトポロジーアーキテクチャでは、mongot
は一度に 1 つのシャードにのみ属します。その結果、各シャード内のロード バランサーは、その個々のシャードにトラフィックを転送するようにのみ設定する必要があります。
既存のMongoDB Searchインデックスを持つコレクションにシャードを追加すると、そのMongoDB Searchインデックスの新しく追加されたシャードで最初の同期が行われます。各シャードのMongoDB Searchインデックスには、そのシャードに存在するコレクションのドキュメントのみが含まれます。詳細については、グローバル コレクションのシャーディング を参照してください。
警告
MongoDB Searchインデックスがすでに存在するコレクションをシャード化する場合、インデックスが新しいシャードで構築されているときに検索クエリーのダウンタイムが一定期間発生する可能性があります。
また、 MongoDB Searchインデックスを含むすでにシャーディングされたコレクションにシャードを追加する場合、追加されたシャードで最初の同期プロセスが完了するまで、そのコレクションに対する検索クエリは失敗します。詳しくは、「 最初の同期のトラブルシューティング 」を参照してください。
