コンフィギュレーションシャードでシャーディングされたシャードクラスタを開始
MongoDB 8.0以降では、通常の シャーディングされたシャーディングされたクラスターのメタデータデータ に加えて、アプリケーションデータを保存するようにコンフィギュレーションコンフィギュレーションサーバーを構成できます。 コンフィギュレーションコンフィギュレーションサーバーとシャードサーバーの両方の機能を提供する mongod
ノードは、コンフィギュレーションシャードと呼ばれます。 シャードサーバー機能を持たないスタンドアロン--configsvr
として実行されるmongod
ノードは専用コンフィギュレーションサーバーと呼ばれコンフィギュレーションサーバー。
このタスクについて
クラスターのシャードが 3 つ以下の場合は、 コンフィギュレーションシャード の使用を検討してください。
詳細については、「コンフィギュレーションシャードのユースケース 」を参照してください。
互換性
このタスクは、次の環境でホストされている配置で実行できます。
MongoDB Atlas はクラウドでの MongoDB 配置のためのフルマネージド サービスです
注意
このタスクは、Atlas 共有階層または Atlas サーバーレスでは使用できません。
MongoDB Enterprise: サブスクリプションベースの自己管理型 MongoDB バージョン
MongoDB Community: ソースが利用可能で、無料で使用できる自己管理型の MongoDB のバージョン
手順
コンフィギュレーションサーバーのレプリカセットの作成
本番環境には、少なくとも 3 つのノードを含むコンフィギュレーションサーバーのレプリカセットをデプロイします。
注意
コンフィギュレーションサーバーのレプリカセットの名前には、どのシャードレプリカセットとも異なる名前を使用する必要があります。
このチュートリアルでは、コンフィギュレーションサーバーのレプリカセット ノードは次のホストに関連付けられています。
コンフィギュレーションサーバーのレプリカセット ノード | Hostname |
---|---|
Member 0 |
|
Member 1 |
|
Member 2 |
|
コンフィギュレーションサーバーの各レプリカセット ノードを起動します。
各
mongod
を起動するときに、構成ファイルまたはコマンドラインのいずれかを使用してmongod
設定を指定します。構成ファイルを使用する場合、
sharding: clusterRole: configsvr replication: replSetName: <replica set name> net: bindIp: localhost,<hostname(s)|ip address(es)> sharding.clusterRole
からconfigsvr
。replication.replSetName
希望するコンフィギュレーションサーバーのレプリカセットの名前に設定します。net.bindIp
オプションを次のいずれかに設定します。ホスト名/IP アドレス。
リモート クライアントがインスタンス(コンフィギュレーションコンフィギュレーションサーバーのレプリカセットの他のノードおよび シャーディングされたシャーディングされたクラスターの他のノードを含む)に接続するために使用できるホスト名または IP アドレスのコンマ区切りリスト。
警告
インスタンスをパブリックにアクセス可能な IP アドレスにバインドする前に、クラスターを不正アクセスから保護する必要があります。 セキュリティ推奨事項の完全なリストについては、「自己管理型配置のセキュリティ チェックリスト」を参照してください。 最低限、認証を有効化し、ネットワーク インフラストラクチャの強化 を検討してください。
storage.dbPath
やnet.port
など、お使いの配置に適した追加設定。構成ファイルの詳細については、構成オプションを参照してください。
構成ファイルパスに
--config
オプションを設定して、mongod
を起動します。mongod --config <path-to-config-file> コマンドラインオプションを使用する場合は、
--configsvr
、--replSet
、--bind_ip
、など配置に応じて適切なオプションを使用してmongod
を起動します。 (例: )。mongod --configsvr --replSet <replica set name> --dbpath <path> --bind_ip localhost,<hostname(s)|ip address(es)> 警告
インスタンスをパブリックにアクセス可能な IP アドレスにバインドする前に、クラスターを不正アクセスから保護する必要があります。 セキュリティ推奨事項の完全なリストについては、「自己管理型配置のセキュリティ チェックリスト」を参照してください。 最低限、認証を有効化し、ネットワーク インフラストラクチャの強化 を検討してください。
起動パラメータの詳細については、
mongod
リファレンス ページを参照してください。mongoshをコンフィギュレーションコンフィギュレーションサーバーのノードの 1 つに接続します。
mongosh --host <hostname> --port <port> レプリカセットを開始します。
mongosh
から、rs.initiate()
メソッドを実行します。rs.initiate()
は、オプションのレプリカセット構成ドキュメントを指定できます。 レプリカセット構成ドキュメントには、次を含めます。_id
は、replication.replSetName
または--replSet
オプションのいずれかで指定されたレプリカセット名に設定されます。コンフィギュレーションサーバーのレプリカセットの
configsvr
フィールドがtrue
に設定されます。レプリカセットの各ノードごとのドキュメントを含む
members
配列
重要
レプリカセットに対して 1 つの
mongod
インスタンスでのみrs.initiate()
を実行します。rs.initiate( { _id: "myReplSet", configsvr: true, members: [ { _id : 0, host : "cfg1.example.net:27019" }, { _id : 1, host : "cfg2.example.net:27019" }, { _id : 2, host : "cfg3.example.net:27019" } ] } ) レプリカセットの構成ドキュメントについて詳しくは、「自己管理型レプリカセット構成」を参照してください。
シャーディングされたシャードクラスタの mongos を開始します。
mongos
を起動するには、構成ファイルまたはコマンドライン パラメータを使用して構成サーバーを指定します。
構成ファイルを使用する場合は、sharding.configDB
をコンフィギュレーションサーバーのレプリカセット名に設定し、レプリカセットの少なくとも 1 つのノードを <replSetName>/<host:port>
形式で設定します。
警告
インスタンスをパブリックにアクセス可能な IP アドレスにバインドする前に、クラスターを不正アクセスから保護する必要があります。 セキュリティ推奨事項の完全なリストについては、「自己管理型配置のセキュリティ チェックリスト」を参照してください。 最低限、認証を有効化し、ネットワーク インフラストラクチャの強化 を検討してください。
sharding: configDB: <configReplSetName>/cfg1.example.net:27019,cfg2.example.net:27019 net: bindIp: localhost,<hostname(s)|ip address(es)>
--config
オプションと構成ファイルへのパスを指定して、mongos
を起動します。
mongos --config <path-to-config>
構成ファイルの詳細については、構成オプションを参照してください。
コマンドライン パラメーターを使用する場合は、mongos
を起動し、配置に応じて --configdb
、--bind_ip
などのオプションを指定します。たとえば次のとおりです。
警告
インスタンスをパブリックにアクセス可能な IP アドレスにバインドする前に、クラスターを不正アクセスから保護する必要があります。 セキュリティ推奨事項の完全なリストについては、「自己管理型配置のセキュリティ チェックリスト」を参照してください。 最低限、認証を有効化し、ネットワーク インフラストラクチャの強化 を検討してください。
mongos --configdb <configReplSetName>/cfg1.example.net:27019,cfg2.example.net:27019,cfg3.example.net:27019 --bind_ip localhost,<hostname(s)|ip address(es)>
配置に適したその他のオプションを含めます。
この点でシャーディングされたクラスターはmongos
サーバーとコンフィギュレーションサーバーで構成されています。 mongosh
を使用してシャーディングされたシャーディングされたクラスターに接続できるようになりました。
クラスターがコンフィギュレーションシャードを使用していることを確認する
シャーディングされたシャーディングされたクラスターがコンフィギュレーションシャードを使用するようになりましたを確認するには、 コマンドを実行して、 ステータスがserverStatus
configServerInShardCache
を返しているかどうかを確認します。true
db.adminCommand( { serverStatus: 1, } ).shardingStatistics.configServerInShardCache
true