ApsaraDB for MongoDB は、レプリカセットインスタンスのプライマリノード、各セカンダリノード、または各読み取り専用ノードの接続文字列を提供します。 ApsaraDB for MongoDB は、アプリケーション接続のために、接続文字列 URI、SRV 高可用性接続文字列 URI、読み取り専用接続文字列 URI という、以下の高可用性(HA)Uniform Resource Identifier(URI)も提供します。 このトピックでは、レプリカセットインスタンスの接続文字列と HA URI を表示する方法と、インスタンスの特定のデータベースにログインする方法について説明します。
接続文字列と URI
エンドポイントの選択
本番環境では、負荷分散と高可用性を実現するために、接続文字列 URI または SRV 高可用性接続文字列 URI を使用してインスタンスに接続することをお勧めします。 インスタンスに読み取り専用ノードが含まれている場合は、読み取り専用接続文字列 URI を使用して、インスタンスにデータを読み取るだけのアプリケーションからインスタンスに接続することをお勧めします。 プライマリ/セカンダリのスイッチオーバーにより、ノードの役割が変わる可能性があります。 ノードの接続文字列を使用してインスタンスに接続することはお勧めしません。
エンドポイントの種類
エンドポイントの種類 | 説明 |
SRV 高可用性接続文字列 URI(推奨) | ApsaraDB for MongoDB では、SRV は、接続文字列を簡素化し、レプリカセットメンバーを自動的に識別するメカニズムを提供する、Domain Name System(DNS)レコードの一種です。 レプリカセットインスタンスのノードを追加または削除する場合は、SRV 高可用性接続文字列 URI を使用して、アプリケーションとインスタンスをシームレスに連携させ、アプリケーションの設計とメンテナンスを簡素化します。 重要
|
接続文字列 URI | 負荷分散を保証するインスタンスの高可用性接続文字列 URI。 接続文字列 URI は、インスタンス内のデータベースのデータの読み取りと書き込みに使用できます。 接続文字列 URI を使用すると、インスタンス内のノードに接続できます。 重要
|
読み取り専用接続文字列 URI | インスタンスの読み取り専用接続文字列 URI。 読み取り専用接続文字列 URI を使用すると、インスタンス内の読み取り専用ノードに接続できます。 読み取り専用接続文字列 URI を使用してインスタンス内のノードに接続すると、読み取りリクエストがノードに送信されます。 説明
|
プライマリエンドポイント | インスタンス内のプライマリノードのエンドポイント。 プライマリエンドポイントを使用して、インスタンス内のデータベースのデータの読み取りと書き込みを行うことができます。 重要 本番環境では、プライマリエンドポイントを使用してアプリケーションをインスタンスに接続することはお勧めしません。 インスタンスに対してプライマリ/セカンダリのスイッチオーバーがトリガーされると、プライマリエンドポイントが変更されます。 この場合、読み取り/書き込み操作が影響を受けないように、新しいプライマリノードに接続する必要があります。 |
セカンダリエンドポイント | インスタンス内のセカンダリノードのエンドポイント。 セカンダリエンドポイントは、インスタンス内のデータベースからデータを読み取るためだけに使用できます。 重要 本番環境では、セカンダリエンドポイントを使用してアプリケーションをインスタンスに接続することはお勧めしません。 インスタンスに対してプライマリ/セカンダリのスイッチオーバーがトリガーされると、セカンダリノードがプライマリノードになる可能性があります。 プライマリエンドポイントは書き込み操作をサポートしているため、データと権限のセキュリティ上の問題が発生します。 |
読み取り専用エンドポイント | インスタンス内の読み取り専用ノードのエンドポイント。 読み取り専用エンドポイントは、インスタンス内のデータベースからデータを読み取るためだけに使用できます。 説明 読み取り専用エンドポイントは、インスタンスに読み取り専用ノードが含まれている場合にのみ表示されます。 |
エンドポイントの形式
SRV 高可用性接続文字列 URI
形式:
mongodb+srv://<username>:<password>@<srv-host>/<database>?[authSource=<authenticationDatabase>]<other_options>
パラメーター:
パラメーター | 説明 |
| 接続文字列のプレフィックス。DNS SRV レコードを使用してサービスを識別することを示します。 |
| データベースアカウント。 |
| データベースアカウントのパスワード。 |
| ホスト名。 |
| アクセスするデータベースの名前。値を admin に設定します。 |
| データベースアカウントが属するデータベース。 説明 ApsaraDB for MongoDB の SRV 高可用性接続文字列 URI の TXT レコードは、 |
| その他のオプションパラメーター。 説明 SRV 接続の SSL オプションのデフォルト値は true です。SSL で暗号化された接続を使用する必要がない場合は、 |
例:
この例では、データベースアカウントは 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>?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****
読み取り専用接続文字列 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 インスタンスに接続するには、パブリックエンドポイントを申請します。 |
インスタンスの接続文字列と URI を表示する
[レプリカセットインスタンス] ページに移動します。上部のナビゲーションバーで、目的のインスタンスが存在するリージョンを選択します。次に、管理するインスタンスを見つけ、インスタンスの ID をクリックします。
インスタンス詳細ページの左側のナビゲーションウィンドウで、データベース接続 をクリックします。
インスタンスの特定のデータベースにログオンする
以下の情報を取得します。
インスタンスの特定のデータベースへの接続に使用するアカウント。初期アカウントはルートアカウントです。
説明本番環境では、ルートアカウントを使用してデータベースに接続しないことをお勧めします。データベースアカウントを作成し、必要な権限を付与できます。
インスタンスの特定のデータベースへの接続に使用するアカウントのパスワード。データベースアカウントのパスワードを指定していない場合、またはパスワードを忘れた場合は、パスワードを指定またはリセットします。
接続するデータベースの名前。アカウントがルートの場合は、「admin」と入力します。
インスタンスの特定のデータベースにログオンします。詳細については、以下のトピックをご参照ください。