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