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

コンフィギュレーションシャードでシャーディングされたシャードクラスタを開始

項目一覧

  • このタスクについて
  • 手順
  • 詳細

MongoDB 8.0以降では、通常の シャーディングされたシャーディングされたクラスターのメタデータデータ に加えて、アプリケーションデータを保存するようにコンフィギュレーションコンフィギュレーションサーバーを構成できます。 コンフィギュレーションコンフィギュレーションサーバーとシャードサーバーの両方の機能を提供する mongodノードは、コンフィギュレーションシャードと呼ばれます。 シャードサーバー機能を持たないスタンドアロン--configsvrとして実行されるmongodノードは専用コンフィギュレーションサーバーと呼ばれコンフィギュレーションサーバー。

クラスターのシャードが 3 つ以下の場合は、 コンフィギュレーションシャード の使用を検討してください。

詳細については、「コンフィギュレーションシャードのユースケース 」を参照してください。

このタスクは、次の環境でホストされている配置で実行できます。

  • MongoDB Atlas はクラウドでの MongoDB 配置のためのフルマネージド サービスです

注意

このタスクは、Atlas 共有階層または Atlas サーバーレスでは使用できません。

  • MongoDB Enterprise: サブスクリプションベースの自己管理型 MongoDB バージョン

  • MongoDB Community: ソースが利用可能で、無料で使用できる自己管理型の MongoDB のバージョン

1

本番環境には、少なくとも 3 つのノードを含むコンフィギュレーションサーバーのレプリカセットをデプロイします。

注意

コンフィギュレーションサーバーのレプリカセットの名前には、どのシャードレプリカセットとも異なる名前を使用する必要があります。

このチュートリアルでは、コンフィギュレーションサーバーのレプリカセット ノードは次のホストに関連付けられています。

コンフィギュレーションサーバーのレプリカセット ノード
Hostname

Member 0

cfg1.example.net

Member 1

cfg2.example.net

Member 2

cfg3.example.net

  1. コンフィギュレーションサーバーの各レプリカセット ノードを起動します。

    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.dbPathnet.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リファレンス ページを参照してください。

  2. mongoshをコンフィギュレーションコンフィギュレーションサーバーのノードの 1 つに接続します。

    mongosh --host <hostname> --port <port>
  3. レプリカセットを開始します。

    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" }
    ]
    }
    )

    レプリカセットの構成ドキュメントについて詳しくは、「自己管理型レプリカセット構成」を参照してください。

2

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を使用してシャーディングされたシャーディングされたクラスターに接続できるようになりました。

3

mongoshmongosに接続します。 mongosがを実行中しているhostportを指定します。

mongosh --host <hostname> --port <port>
4

以下の例では、専用のコンフィギュレーションコンフィギュレーションサーバーをコンフィギュレーションシャードとして実行するように構成しています。

db.adminCommand( {
transitionFromDedicatedConfigServer: 1
} )
5

シャーディングされたシャーディングされたクラスターがコンフィギュレーションシャードを使用するようになりましたを確認するには、 コマンドを実行して、 ステータスがserverStatus configServerInShardCacheを返しているかどうかを確認します。true

db.adminCommand( {
serverStatus: 1,
} ).shardingStatistics.configServerInShardCache
true

戻る

埋め込みコンフィギュレーションサーバーを使用してレプリカセットをシャーディングされたシャードクラスタに変換