Docs Menu
Docs Home
/
MongoDBマニュアル
/

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

項目一覧

  • 本番構成
  • 開発構成

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

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

  • mongos : mongos はクエリ ルーターとして機能し、クライアント アプリケーションとシャーディングされたクラスター間のインターフェースとなります。レイテンシを最小限に抑えるために、mongos ではヘッジされた読み取りをサポートしています。

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

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

可能であれば、各レプリカセットのノードを 1 つずつ障害復旧ロケーションとしてふさわしい場所にデプロイすることを検討してください。

注意

レプリカセットのノードを 2 つのデータセンターに分散させると、1 つのデータセンターよりもメリットがあります。2つのデータセンターに分散させた場合、

  • データセンターの 1 つがダウンしても、1 つのデータセンターのみを利用する場合とは異なり、データは引き続き読み取り可能です。

  • 少数のノードを含むデータセンターがダウンした場合でも、レプリカセットは読み取り操作だけでなく書込み操作も引き続き実行できます。

  • ただしノードの大多数を含むデータセンターがダウンすると、レプリカセットは読み取り専用になります。

可能であれば、ノードは少なくとも 3 つのデータセンターに分散させます。コンフィギュレーションサーバー レプリカセット (CSRS)の場合、ベストプラクティスはノードを 3 つ(ノード数によってはそれ以上)のセンターに分散させることです。3 つのデータセンターを利用するにはコストが高すぎる場合の選択肢の 1 つは、会社のポリシー上可能であれば、データを含むノードを 2 つのデータセンターに均等に分散し、残りのノードをクラウドに保存することです。

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

複数のmongosルーターをデプロイすると、高可用性とスケーラビリティが実現できます。 プロキシまたはロードバランサーがアプリケーションとmongosルーターの間にある場合、クライアントのアフィニティを保つよう構成する必要があります。 クライアント アフィニティにより、単一のクライアントによるすべての接続が常に同じmongosに到達します。 シャードレベルの高可用性を実現する場合、一般的なパターンは、 mongodインスタンスがすでに実行されているハードウェアにmongosインスタンスを配置することです。 別のオプションは、アプリケーション層インフラストラクチャにmongosルーターを埋め込むことです。

配置内に含めることができるmongosルーターの数に制限はありません。 ただし、 mongosルーターはコンフィギュレーションサーバーと頻繁に通信するため、ルーターの数を増やすにつれてコンフィギュレーションサーバーのパフォーマンスを厳密に監視してください。 パフォーマンスの低下が見られる場合は、配置内のmongosルーターの数を制限するのに役立つ可能性があります。

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

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

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

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

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

警告

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

Tip

以下も参照してください。

戻る

シャーディング