ApsaraDB for MongoDBは、シャードクラスターインスタンス内の各mongosコンポーネント、各シャードコンポーネント、およびConfigServerコンポーネントの接続文字列を提供します。 ApsaraDB for MongoDBは、シャードクラスターインスタンスごとにURI (Uniform Resource Identifier) も提供します。 シャードクラスタインスタンスのURIは、アプリケーションとインスタンス間の高可用性接続を確立するために使用されます。 このトピックでは、シャードクラスタインスタンスの接続文字列とURIを表示する方法、およびシャードクラスタインスタンスの特定のデータベースにログインする方法について説明します。
シャードクラスタインスタンスの接続文字列とURIの表示
シャードクラスターインスタンスページに移動します。 上部のナビゲーションバーで、インスタンスが存在するリージョンを選択します。 次に、インスタンスを見つけて、インスタンスのIDをクリックします。
インスタンスの詳細ページの左側のナビゲーションウィンドウで、データベース接続. 表示されるページで、インスタンス内のノードの接続情報を表示します。
接続文字列とURI
エンドポイントのネットワークタイプ
ネットワークタイプ | 説明 |
プライベートネットワーク |
|
インターネット | インターネット経由でApsaraDB for MongoDBインスタンスに接続すると、インスタンスがセキュリティリスクにさらされる可能性があります。 したがって、ApsaraDB for MongoDBインスタンスには、デフォルトでパブリックエンドポイントは提供されません。 インターネット経由でApsaraDB for MongoDBインスタンスに接続する場合は、パブリックエンドポイントを申請する必要があります。 詳細については、「 (オプション) ApsaraDB For MongoDBレプリカセットインスタンスのパブリックエンドポイントの申請」をご参照ください。 |
エンドポイントの種類
Endpointタイプ | 説明 |
Mongosエンドポイント | プライマリノードのエンドポイントを含む、シャードクラスタインスタンス内のmongosコンポーネントのエンドポイント。 説明 ルーチンテストを実行するときは、mongosコンポーネントに接続するだけで済みます。 |
Shardエンドポイント | プライマリノード、セカンダリノード、および読み取り専用ノードのエンドポイントを含む、シャードクラスタインスタンス内のシャードコンポーネントのエンドポイント。 説明
|
ConfigServerエンドポイント | プライマリノードとセカンダリノードのエンドポイントを含む、シャードクラスタインスタンスのConfigServerコンポーネントのエンドポイント。 説明
|
Connection string URI | ApsaraDB for MongoDBは、シャードクラスターインスタンスのmongosおよびシャードコンポーネントに接続文字列URIを提供します。 アプリケーションが本番環境にデプロイされている場合は、URIを使用してシャードクラスターインスタンスに接続することを推奨します。 これにより、クライアントはリクエストを自動的にmongosコンポーネントに配信し、インスタンス内の負荷を分散できます。 mongosコンポーネントが失敗した場合、クライアントは他の正常なmongosコンポーネントにリクエストを自動的にリダイレクトできます。 説明 デフォルトでは、シャードクラスターインスタンス内のmongosコンポーネントの接続文字列URIのみがApsaraDB for MongoDBコンソールに表示されます。 インスタンス内のシャードコンポーネントの接続文字列URIを表示するには、対応する接続文字列を申請します。 詳細については、「シャードノードまたはシャードクラスターインスタンスのConfigServerノードのエンドポイントの申請」をご参照ください。 |
SRV HAエンドポイント | SRV HAエンドポイントは、シャードクラスタインスタンスのメンテナンスと管理を簡素化できます。 mongosコンポーネントを追加または削除するときに、エンドポイントを変更する必要はありません。 クライアントは、サービスを中断することなくインスタンスと対話でき、アプリケーションの設計とメンテナンスが簡単になります。 アプリケーションが本番環境にデプロイされている場合は、URIを使用してシャードクラスターインスタンスに接続することを推奨します。 これにより、クライアントはリクエストを自動的にmongosコンポーネントに配信し、インスタンス内の負荷を分散できます。 mongosコンポーネントが失敗した場合、クライアントは他の正常なmongosコンポーネントにリクエストを自動的にリダイレクトできます。 重要
|
次のセクションでは、各エンドポイントの形式、パラメーター、および例について説明します。
Mongosエンドポイント
形式:
<host>:<port>
次の表に、上記のコマンドに含まれるパラメーターを示します。
パラメーター | 説明 |
| mongosコンポーネント内のノードのドメイン名。 |
| mongosコンポーネント内のノードのポート番号。 |
例:
s-bp1c010266f6****.mongodb.rds.aliyuncs.com:3717
Shardエンドポイント
形式:
<host>:<port>
次の表に、上記のコマンドに含まれるパラメーターを示します。
パラメーター | 説明 |
| シャードコンポーネント内のノードのドメイン名。 |
| シャードコンポーネント内のノードのポート番号。 |
例:
s-bp1c010266f6****.mongodb.rds.aliyuncs.com:3717
ConfigServerエンドポイント
形式:
<host>:<port>
次の表に、上記のコマンドに含まれるパラメーターを示します。
パラメーター | 説明 |
| ConfigServerコンポーネント内のノードのドメイン名。 |
| ConfigServerコンポーネント内のノードのポート番号。 |
例:
s-bp1c010266f6****.mongodb.rds.aliyuncs.com:3717
Connection string URI
次のセクションでは、mongosまたはshardコンポーネントの接続文字列URIについて説明します。
Mongos
アプリケーションが本番環境にデプロイされている場合は、URIを使用してシャードクラスターインスタンスに接続することを推奨します。 これにより、クライアントはリクエストを自動的にmongosコンポーネントに配信し、インスタンス内の負荷を分散できます。 mongosコンポーネントが失敗した場合、クライアントは他の正常なmongosコンポーネントにリクエストを自動的にリダイレクトできます。
形式:
mongodb://<username>:<password>@<host1>:<port1>,<host2>:<port2>,...,<hostN>:<portN>/<database>[?&authSource=<authenticationDatabase>]
パラメーター | 説明 |
| データベースへのログインに使用されるデータベースアカウントの名前。 デフォルト値:root。 |
| データベースアカウントのパスワードを設定します。 |
| mongosコンポーネント内のノードのドメイン名。 |
| mongosコンポーネント内のノードのポート番号。 |
| 接続するデータベースの名前。 デフォルト値: admin。 |
| 指定されたデータベースアカウントが属するデータベース。 |
例:
次のサンプルコマンドでは、ユーザー名はtest、データベースはadminです。
mongodb://test:****@s-bp1c010266f6****.mongodb.rds.aliyuncs.com:3717,s-bp1773180e38****.mongodb.rds.aliyuncs.com:3717/admin
シャード
シャードクラスタインスタンス内のシャードコンポーネントの接続文字列URIは、負荷分散を実装し、高可用性を確保できるHA接続文字列URIです。 接続文字列URIを使用してインスタンスに接続し、インスタンス内のデータベースに対して読み取り /書き込み操作を実行できます。 エンドポイントには、コンポーネント内のすべてのノードのエンドポイントが含まれます。 アプリケーションが本番環境にデプロイされている場合は、URIを使用してシャードクラスターインスタンスに接続することを推奨します。
このURIに接続すると、すべてのリクエストはプライマリノードによって処理されます。 読み取り /書き込み操作は、プライマリ /セカンダリの切り替えの影響を受けません。
形式:
mongodb://<username>:<password>@<host1>:<port1>,<host2>:<port2>,...,<hostN>:<portN>/<database>?replicaSet=<replicaSet_value>[&authSource=<authenticationDatabase>]
次の表に、上記のコマンドに含まれるパラメーターを示します。
パラメーター | 説明 |
| データベースへのログインに使用されるデータベースアカウントの名前。 デフォルト値:root。 |
| データベースアカウントのパスワードを設定します。 |
| プライマリ、セカンダリ、または読み取り専用ノードへの接続に使用されるドメイン名。 |
| プライマリ、セカンダリ、または読み取り専用ノードへの接続に使用されるポート。 |
| 接続するデータベースの名前。 デフォルト値: admin。 |
| 読み取り要求がレプリカセットインスタンスのすべてのノードに送信されることを指定します。 |
| 指定されたデータベースアカウントが属するデータベース。 |
| 書き込み要求がプライマリノードに送信され、読み取り要求がセカンダリノードと読み取り専用ノードにランダムに送信されることを指定します。 このパラメータは、読み書きの分割と負荷分散を保証します。 有効な値:
説明 このパラメーターは、クラウドディスクを使用するインスタンスでのみ使用できます。 |
| 指定したタグに対応するノードに優先的に読み取り要求を送信するように指定します。
説明 このパラメーターは、クラウドディスクを使用するインスタンスでのみ使用できます。 |
readPreference
パラメーターとreadPreferenceTags
パラメーターは、クラウドディスクを使用するインスタンスで使用できます。 異なるタグの組み合わせは、様々なシナリオの要件を満たすことができる。 次の表に、さまざまなシナリオでのパラメーターの組み合わせを示します。
失敗した読み取り要求の処理に使用されるメソッド | 読み取り要求を受信するノード | パラメータの組み合わせソリューション |
失敗した読み取り要求をプライマリノードに送信する | プライマリノードから優先的にデータを読み取る |
|
セカンダリノードと読み取り専用ノードから優先的にデータを読み取る |
| |
セカンダリノードから優先的にデータを読み取る |
| |
読み取り専用ノードから優先的にデータを読み取る |
| |
失敗した読み取り要求をプライマリノードに送信しない | セカンダリノードと読み取り専用ノードからのみデータを読み取る |
|
セカンダリノードからのみデータを読み取る |
| |
読み取り専用ノードからのみデータを読み取る |
|
例:
mongodb://test:****@dds-bp19f409d7512****.mongodb.rds.aliyuncs.com:3717,dds-bp19f409d7512****.mongodb.rds.aliyuncs.com:3717/admin?replicaSet=mgset-6108****
SRV HAエンドポイント
形式:
mongodb+srv://<username>:<password>@<srv-host>/<database>?<options>
次の表に、上記のコマンドに含まれるパラメーターを示します。
パラメーター | 説明 |
| 接続文字列のプレフィックス。DNS SRVレコードを使用してサービスを識別することを示します。 |
| データベースへのログインに使用されるデータベースアカウントの名前。 デフォルト値:root。 |
| データベースアカウントのパスワードを設定します。 |
| ホスト名。 |
| 接続するデータベースの名前。 デフォルト値: admin。 |
| その他のオプションパラメーター。 説明 SVR HAエンドポイントのsslパラメーターのデフォルト値はtrueです。 シャードクラスターインスタンスへの正常な接続を確立するには、インスタンスがsslをサポートしていないため、falseに設定されている |
例:
次のサンプルコマンドでは、ユーザー名はtest、データベースはadminです。
mongodb+srv://test:****@dds-2zef4c23xxxx-srv.mongodb.pre.nosql.aliyuncs.com/admin?ssl=false
シャードクラスタインスタンスの特定のデータベースにログインする
次の情報を取得します。
シャードクラスタインスタンスの接続文字列またはURI。 詳細については、「シャードクラスターインスタンスの接続文字列とURIの表示」をご参照ください。
シャードクラスターインスタンスへの接続に使用されるデータベースアカウント。 初期アカウントはルートアカウントです。
重要ルートアカウントを使用して本番環境のデータベースに接続しないことをお勧めします。 データベースアカウントを作成し、ビジネス要件に基づいてアカウントに権限を付与できます。 詳細については、「MongoDBデータベースユーザーの権限の管理」をご参照ください。
シャードクラスターインスタンスへの接続に使用されるデータベースアカウントのパスワード。 データベースアカウントのパスワードを指定しない場合、またはアカウントのパスワードを忘れた場合は、アカウントのパスワードを設定または変更できます。 詳細については、「 (オプション) パスワードのリセット」をご参照ください。
接続するデータベースの名前。 ユーザー名がrootの場合は、adminと入力します。
データベースへのログイン詳細については、以下のトピックをご参照ください。