ApsaraDB for MongoDB は、シャードクラスターインスタンス内の各 Mongos コンポーネント、各シャードコンポーネント、および ConfigServer コンポーネントに接続文字列を提供します。 ApsaraDB for MongoDB は、インスタンス内のすべての Mongos またはシャードコンポーネントに接続文字列 Uniform Resource Identifier (URI) も提供します。 シャードクラスターインスタンスの URI は、アプリケーションとインスタンス間の高可用性 (HA) 接続を確立するために使用されます。 このトピックでは、シャードクラスターインスタンスの接続文字列と URI を表示する方法、およびインスタンスの特定のデータベースにログインする方法について説明します。
インスタンスの接続文字列と URI を表示する
[シャードクラスターインスタンス] ページに移動します。 上部のナビゲーションバーで、インスタンスが存在するリージョンを選択します。 次に、管理するインスタンスを見つけ、インスタンスの ID をクリックします。
インスタンスの詳細ページの左側のナビゲーションウィンドウで、データベース接続 をクリックします。 表示されるページで、インスタンス内のノードの接続情報を表示します。
接続文字列と URI
エンドポイントのネットワークタイプ
ネットワークタイプ | 説明 |
プライベートネットワーク |
|
インターネット | インターネット経由で ApsaraDB for MongoDB インスタンスに接続する場合、インスタンスはセキュリティリスクにさらされる可能性があります。 そのため、デフォルトでは、ApsaraDB for MongoDB インスタンスのパブリックエンドポイントは提供されません。 インターネット経由で ApsaraDB for MongoDB インスタンスに接続する場合は、パブリックエンドポイントを申請する必要があります。 詳細については、「(オプション) ApsaraDB for MongoDB インスタンスのパブリックエンドポイントを申請する」をご参照ください。 |
エンドポイントタイプ
エンドポイントタイプ | 説明 |
Mongos エンドポイント | インスタンス内の Mongos コンポーネントのプライマリノードのエンドポイント。 エンドポイントを使用すると、コンポーネントのプライマリノードに接続できます。 説明 ルーチンテストを実行する場合、Mongos ノードに接続するだけで済みます。 |
シャードエンドポイント | インスタンス内のシャードコンポーネントのノードのエンドポイント。 エンドポイントを使用すると、コンポーネントのプライマリノード、セカンダリノード、または読み取り専用ノードに接続できます。 説明
|
ConfigServer エンドポイント | インスタンス内の ConfigServer コンポーネントのノードのエンドポイント。 エンドポイントを使用すると、コンポーネントのプライマリノードまたはセカンダリノードに接続できます。 説明
|
接続文字列 URI | ApsaraDB for MongoDB は、インスタンス内のすべての Mongos またはシャードコンポーネントに接続文字列 URI を提供します。 アプリケーションが本番環境にデプロイされている場合は、接続文字列 URI を使用してインスタンスに接続することをお勧めします。 これにより、クライアントはインスタンス内の負荷を分散するためにリクエストを Mongos ノードに自動的に配信できます。 Mongos ノードに障害が発生した場合、クライアントはリクエストを他の正常な Mongos ノードに自動的にリダイレクトできます。 説明 デフォルトでは、ApsaraDB for MongoDB コンソールには、インスタンス内の Mongos ノードの接続文字列のみが表示されます。 インスタンス内のすべてのシャードコンポーネントの接続文字列 URI を表示するには、インスタンス内のシャードコンポーネントのエンドポイントを申請します。 詳細については、「シャードまたは ConfigServer コンポーネントのエンドポイントを申請する」をご参照ください。 |
SRV HA エンドポイント | SRV HA エンドポイントを使用すると、シャードクラスターインスタンスのメンテナンスと管理を簡素化できます。 Mongos ノードを追加または削除するときにエンドポイントを変更する必要はありません。 クライアントはサービス中断なしにインスタンスと対話できるため、アプリケーションの設計とメンテナンスが簡素化されます。 アプリケーションが本番環境にデプロイされている場合は、接続文字列 URI を使用してインスタンスに接続することをお勧めします。 これにより、クライアントはインスタンス内の負荷を分散するためにリクエストを Mongos ノードに自動的に配信できます。 Mongos ノードに障害が発生した場合、クライアントはリクエストを他の正常な Mongos ノードに自動的にリダイレクトできます。 重要
|
次のセクションでは、各エンドポイントの形式、パラメーター、および例について説明します。
Mongos エンドポイント
形式:
<host>:<port>
パラメーター:
パラメーター | 説明 |
| Mongos コンポーネントのノードの [ドメイン名]。 |
| Mongos コンポーネントのノードの [ポート番号]。 |
例:
s-bp1c010266f6****.mongodb.rds.aliyuncs.com:3717
シャードエンドポイント
形式:
<host>:<port>
パラメーター:
パラメーター | 説明 |
| シャードコンポーネントのノードの [ドメイン名]。 |
| シャードコンポーネントのノードの [ポート番号]。 |
例:
s-bp1c010266f6****.mongodb.rds.aliyuncs.com:3717
ConfigServer エンドポイント
形式:
<host>:<port>
パラメーター:
パラメーター | 説明 |
| ConfigServer コンポーネントのノードの [ドメイン名]。 |
| ConfigServer コンポーネントのノードの [ポート番号]。 |
例:
s-bp1c010266f6****.mongodb.rds.aliyuncs.com:3717
接続文字列 URI
次のセクションでは、すべての Mongos またはシャードコンポーネントの接続文字列 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。 |
| 読み取りリクエストがインスタンスのすべてのノードに送信されることを指定します。 |
| 指定されたデータベースアカウントが属するデータベース。 |
| 書き込みリクエストがプライマリノードに送信され、読み取りリクエストがパラメーターで指定されたノードに送信されることを指定します。 このパラメーターは、読み取り/書き込み分離と負荷分散を保証します。 有効な値:
説明 読み取りリクエストがセカンダリノードと読み取り専用ノードに送信される場合、負荷が不均一になる可能性があります。 読み取りリクエストを受信するノードをさらに指定するには、readPreferenceTags パラメーターを設定します。 |
| 読み取りリクエストが指定されたタグに対応するノードに優先的に送信されることを指定します。 ほとんどの場合、このパラメーターは readPreference パラメーターと一緒に指定され、
|
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>?[authSource=<authenticationDatabase>]<other_options>
次の表に、上記のコマンドに含まれるパラメーターを示します。
パラメーター | 説明 |
| 接続文字列のプレフィックス。DNS SRV レコードを使用してサービスを識別することを示します。 |
| データベースにログインするために使用されるデータベースアカウントの名前。 デフォルト値: root。 |
| データベースアカウントのパスワード。 |
| ホスト名シリーズ。 |
| 接続するデータベースの名前。 デフォルト値: admin。 |
| 指定されたデータベースアカウントが属するデータベース。 説明 ApsaraDB for MongoDB インスタンスの SRV 接続文字列の TXT レコードは、 |
| その他のオプションパラメーター。 説明 SRV HA エンドポイントの ssl パラメーターのデフォルト値は true です。 SSL 暗号化機能を使用しない場合は、 |
例:
次のサンプルコマンドでは、ユーザー名は test、データベースは admin です。
mongodb+srv://test:****@dds-2zef4c23****-srv.mongodb.pre.nosql.aliyuncs.com/admin?ssl=false
インスタンスの特定のデータベースにログインする
次の情報を取得します。
インスタンスの接続文字列または URI。 詳細については、「シャードクラスターインスタンスの接続文字列と URI を表示する」をご参照ください。
インスタンスへの接続に使用されるデータベースアカウント。 初期アカウントはルートアカウントです。
重要本番環境では、ルートアカウントを使用してデータベースに接続しないことをお勧めします。 ビジネス要件に基づいてデータベースアカウントを作成し、アカウントに権限を付与できます。 詳細については、「MongoDB データベースユーザーの権限を管理する」をご参照ください。
インスタンスへの接続に使用されるデータベースアカウントのパスワード。 データベースアカウントのパスワードを指定していない場合、またはアカウントのパスワードを忘れた場合は、アカウントのパスワードを設定または変更できます。 詳細については、「(オプション) パスワードをリセットする」をご参照ください。
接続するデータベースの名前。 ユーザー名が root の場合は、admin と入力します。
特定のデータベースにログインします。 詳細については、以下のトピックをご参照ください。