ApsaraDB for MongoDB レプリカセットインスタンスは、プライマリノード、セカンダリノード、読み取り専用ノード用の個別のエンドポイントと、アプリケーション接続用の高可用性 ConnectionStringURI、ConnectionStringURI SRV、ReadOnly ConnectionStringURI を提供します。このトピックでは、これらのエンドポイントを取得し、インスタンスに接続する方法について説明します。
接続アドレス
エンドポイント選択
本番環境では、負荷分散と高可用性を確保するために、ConnectionStringURI または ConnectionStringURI SRV アドレスを使用してインスタンスに接続してください。インスタンスに読み取り専用ノードがある場合は、読み取り専用アプリケーションは ReadOnly ConnectionStringURI アドレスを使用して接続してください。フェールオーバーによりノードの役割が変わる可能性があるため、単一ノード接続アドレスは使用しないでください。接続タイプの違いについては、次の表をご参照ください。
エンドポイントタイプ
|
アドレスタイプ |
説明 |
|
ConnectionStringURI SRV アドレス [推奨] |
MongoDB では、SRV は MongoDB 接続文字列を簡素化し、レプリカセット内のメンバーの自動検出をサポートする DNS レコードタイプです。 レプリカセットインスタンスでノードが追加または削除された場合、SRV アドレスを使用することで、アプリケーションはインスタンスとシームレスにやり取りできます。これにより、アプリケーションの設計と保守が簡素化されます。 重要
|
|
ConnectionStringURI アドレス |
ConnectionStringURI アドレスは、負荷分散と高可用性を提供します。インスタンス内のすべてのノードのアドレスが含まれており、データベースに対して読み書き操作を実行できます。ドライバーのバージョンが SRV アドレスやノードの自動検出をサポートしていない場合は、このアドレスを使用してください。 重要
|
|
読み取り専用 ConnectionStringURI アドレス |
読み取り専用 ConnectionStringURI アドレスには、インスタンス内のすべての読み取り専用ノードのアドレスのみが含まれます。このアドレスに接続すると、クライアントは読み取りリクエストを読み取り専用ノードに送信し、書き込みリクエストをプライマリーノードに送信します。 説明
|
|
プライマリーアドレス |
プライマリーノードの接続アドレスです。このアドレスに接続して、データベースに対して読み書き操作を実行できます。 重要
本番環境のアプリケーションでは、このアドレスを使用してインスタンスに接続することは推奨しません。フェイルオーバー後、プライマリーノードアドレスが変更されます。読み書き操作の中断を避けるために、新しいプライマリーノードに接続する必要があります。 |
|
セカンダリーアドレス |
セカンダリーノードの接続アドレスです。このアドレスに接続して、データベースに対して読み取り操作のみを実行できます。 重要
本番環境のアプリケーションでは、このアドレスを使用してインスタンスに接続することは推奨しません。フェイルオーバー後、セカンダリーノードがプライマリーに昇格する可能性があります。アプリケーションがこのアドレスを引き続き使用すると、プライマリーノードに接続する可能性があり、権限の競合や意図しない書き込み操作につながる恐れがあります。 |
|
読み取り専用アドレス |
読み取り専用ノードの接続アドレスです。このアドレスに接続して、データベースに対して読み取り操作のみを実行できます。 説明
このアドレスは、インスタンスに読み取り専用ノードがある場合にのみ表示されます。 |
接続アドレスのフォーマット
ConnectionStringURI SRV アドレス
フォーマット:
mongodb+srv://<username>:<password>@<srv-host>/<database>?[authSource=<authenticationDatabase>][&readPreference=<readPreference_value>][&readPreferenceTags=<readonly_Tags>]<other_options>
パラメータ:
|
パラメータ |
説明 |
|
|
サービスディスカバリーに DNS SRV レコードを使用することを示す接続文字列のプレフィックスです。 |
|
|
データベースアカウントの名前です。 |
|
|
データベースアカウントのパスワードです。 |
|
|
ホスト名です。 |
|
|
アクセスするデータベースです。デフォルト: admin。 |
|
|
このパラメータは、データベースアカウントが属するデータベースを指定します。 説明
ApsaraDB for MongoDB の SRV 接続文字列では、TXT レコードで |
|
|
このパラメータは、読み書き分離と負荷分散を有効にします。書き込みリクエストをプライマリーノードに、読み取りリクエストを指定されたノードタイプにルーティングします。有効な値:
説明
読み取りリクエストがセカンダリノードおよび読み取り専用ノードにルーティングされる場合、負荷が不均一になる可能性があります。ノードをさらに指定するには、 |
|
|
このパラメータは、指定されたタグに一致するノードに読み取りリクエストを優先的にルーティングします。通常、
|
|
|
その他のオプションパラメータです。 説明
SRV 接続の SSL オプションは、デフォルトで true です。SSL 暗号化を無効にするには、接続文字列に |
さまざまなシナリオに合わせて、readPreference と readPreferenceTags パラメータを組み合わせることができます:
|
フェールオーバー動作 |
優先ノード |
パラメータの組み合わせ |
|
優先ノードからの読み取りが失敗した場合、読み取りリクエストをプライマリーノードにルーティングする |
プライマリーノードを優先 |
|
|
セカンダリーノードと読み取り専用ノードを優先 |
|
|
|
セカンダリーノードを優先 説明
セカンダリーノードが利用できない場合、読み取りリクエストはプライマリーノードにフェールオーバーします。 |
|
|
|
読み取り専用ノードを優先 説明
読み取り専用ノードが利用できない場合、読み取りリクエストはプライマリーノードにフェールオーバーします。 |
|
|
|
優先ノードからの読み取りが失敗した場合、読み取りリクエストをプライマリーノードにルーティングしない |
セカンダリーノードと読み取り専用ノードからのみ読み取る |
|
|
セカンダリーノードからのみ読み取る 説明
セカンダリーノードが利用できない場合、読み取り操作は失敗します。 |
|
|
|
読み取り専用ノードからのみ読み取る 説明
読み取り専用ノードが利用できない場合、読み取り操作は失敗します。 |
|
例:
この例では、'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****
プライマリアドレス
フォーマット:
mongodb://<username>:<password>@<host>:<port>/<database>?[directConnection=true]
パラメーター:
|
パラメーター |
説明 |
|
|
データベースアカウントのユーザー名です。 |
|
|
データベースアカウントのパスワードです。 |
|
|
プライマリーノードの [ドメイン名] です。 |
|
|
プライマリーノードの [ポート] です。 |
|
|
アクセス先のデータベースです。デフォルト: admin。 |
|
|
リクエストを現在のエンドポイント (プライマリーノード) にのみ送信します。
|
例:
mongodb://root:****@dds-bp19f409d7512****.mongodb.rds.aliyuncs.com:3717/admin?directConnection=true
セカンダリ アドレス
フォーマット:
mongodb://<username>:<password>@<host>:<port>/<database>?[directConnection=true]
パラメーター:
|
パラメーター |
説明 |
|
|
データベースアカウントのユーザー名です。 |
|
|
データベースアカウントのパスワードです。 |
|
|
セカンダリノードの [ドメイン名] です。 |
|
|
セカンダリノードの [ポート] です。 |
|
|
アクセスするデータベースです。デフォルトは admin です。 |
|
|
リクエストを現在のエンドポイント (セカンダリノード) にのみ送信します。
|
例:
mongodb://root:****@dds-bp19f409d7512****.mongodb.rds.aliyuncs.com:3717/admin?directConnection=true
読み取り専用アドレス
フォーマット:
mongodb://<username>:<password>@<host>:<port>/<database>?[directConnection=true]
パラメーター:
|
パラメーター |
説明 |
|
|
データベースアカウントのユーザー名です。 |
|
|
データベースアカウントのパスワードです。 |
|
|
読み取り専用ノードの[ドメイン名]です。 |
|
|
読み取り専用ノードの[ポート]です。 |
|
|
アクセスするデータベースです。デフォルトは |
|
|
リクエストを現在のエンドポイント (読み取り専用ノード) にのみ送信します。
|
例:
mongodb://root:****@dds-bp19f409d7512****.mongodb.rds.aliyuncs.com:3717/admin?directConnection=true
エンドポイントネットワークタイプ
|
ネットワークタイプ |
説明 |
|
プライベートネットワーク |
|
|
パブリックネットワーク |
パブリックネットワーク経由でインスタンスに接続すると、セキュリティリスクが生じます。デフォルトでは、ApsaraDB for MongoDB インスタンスはパブリックエンドポイントを提供しません。パブリックネットワーク経由で接続する必要がある場合は、手動でパブリックエンドポイントを申請できます。 |
データベースエンドポイント
-
MongoDB レプリカセットインスタンス ページに移動し、リソースグループとリージョンを選択して、ターゲットインスタンスをクリックします。
-
ナビゲーションペインで、データベース接続 をクリックします。
MongoDB データベースへの接続
-
次の情報を取得します:
-
データベースアカウント。 初期アカウントは
ルートです。説明本番環境では、
ルートアカウントを使用してデータベースに接続しないでください。データベースアカウントを作成して権限を割り当てることができます。 -
データベースアカウントのパスワード。 パスワードを設定していない場合や忘れた場合は、パスワードを設定またはリセットできます。
-
アクセスするデータベース。
ルートアカウントを使用する場合、対応するデータベースはadminです。
-
次のいずれかの方法でデータベースに接続します: