AI エージェント向け: ドキュメントインデックスは https://www.mongodb.com/ja-jp/docs/llms.txt で利用できます。すべてのページの markdown バージョンは、いずれかの URL パスに .md を追加することで利用できます。
Docs Menu

シャーディングされたクラスターのコンポーネント

MongoDB のシャーディングされたクラスターは、次の要素で構成されます。

  • シャード: 各シャードには、シャーディングされたデータのサブセットが含まれています。各シャードはレプリカセットとして配置する必要があります。

  • mongos によるルーティング : mongos はクエリ ルーターとして機能し、クライアントアプリケーションとシャーディングされたクラスター間のインターフェースとなります。

  • コンフィギュレーションサーバー: コンフィギュレーションサーバーは、クラスターのメタデータと構成設定を保存します。コンフィギュレーションサーバーは、レプリカセット(CSRS)として配置する必要があります。MongoDB 8.0 以降では、コンフィギュレーションサーバーを、アプリケーションデータも保存するコンフィギュレーションシャードとしてデプロイできます。

本番環境のクラスターでは、データの冗長性を確保し、システムの可用性を高レベルに保ちます。シャーディングされたクラスターを本番環境にデプロイする際は、以下の点を考慮します。

本番環境には、コンフィギュレーションサーバーとシャードのレプリカセットを少なくとも 3 つのデータセンターに配置することをお勧めします。この構成は、単一のデータセンターに障害が発生した場合でも高可用性を確保します。

シャーディングでは、シャーディングされたデータを分散するために、少なくとも 2 つのシャードが必要です。シャードが 1 つのみシャーディングされたクラスターは、近い将来にシャーディングを有効にする予定だが、デプロイ時に有効化する必要がない場合に便利です。

mongos インスタンスを複数デプロイすることで、mongos ルーターで高い可用性とスケーラビリティを実現できます。プロキシまたはロードバランサーがアプリケーションと mongos ルーターの間にある場合、クライアントのアフィニティを保つよう構成する必要があります。クライアント アフィニティにより、単一のクライアントによるすべての接続が常に同じ mongos に到達します。高可用性をシャードレベルで実現するには、次のいずれかを実行します。

  • mongod インスタンスがすでに実行中のハードウェアに mongos インスタンスを追加します。

  • アプリケーションがホストされているハードウェアに mongos ルーターを埋め込みます。

mongos ルーターはコンフィギュレーションサーバーと頻繁に通信します。ルーターの数を増やすと、パフォーマンスが低下する恐れがあります。パフォーマンスが低下する場合は、ルーターの数を減らしてください。

以下は、本番環境で通常使用されるシャーディングされたクラスターのアーキテクチャ図です。

シャードと mongos ルーターをそれぞれ複数含む、本番レベルのシャーディングされたクラスターの図

バージョン8.0の新機能。

MongoDB 8.0以降では、クラスターのメタデータに加えてアプリケーションデータを保存するコンフィギュレーションシャードとしてコンフィギュレーションサーバーを配置できます。コンフィギュレーションシャードは、専用のコンフィギュレーションサーバーの配置よりも少ないノードで済みます。詳細については、コンフィギュレーションシャードを参照してください。

次の図は、埋め込み構成シャードを使用するシャーディングされたクラスターのアーキテクチャを示しています。

クラスターのメタデータとアプリケーションデータの両方を保存する構成シャードを含む、本番環境のシャーディングされたクラスターを示す図。
クリックして拡大します

テストおよび開発用に、最小限のコンポーネント数でシャーディングされたクラスターをデプロイできます。これらの非本番クラスターには、以下のコンポーネントが含まれます。

次は、開発専用のシャーディングされたクラスターのアーキテクチャ図です。

単一のシャードと mongos ルーターを含む、開発用のシャーディングされたクラスターの図

MongoDB 8.0 以降では、テストおよび開発用の構成シャードを配置できます。この非本番クラスターには、以下のコンポーネントが含まれます。

単一の構成シャードを含む、開発用のシャーディングされたクラスターの図。
クリックして拡大します

警告

テスト クラスター アーキテクチャは、テストと開発専用です。

このページを評価