ApsaraDB for MongoDB のシャードクラスターインスタンスは、Mongos、シャード、および ConfigServer コンポーネントに個別のエンドポイントを提供します。また、アプリケーション接続用に高可用性の ConnectionStringURI および ConnectionStringURI SRV アドレスも提供します。このトピックでは、これらのエンドポイントの取得方法と接続手順について説明します。
データベースエンドポイントの取得
ApsaraDB for MongoDB シャードクラスターインスタンス ページに移動します。上部のナビゲーションバーで、リソースグループとリージョンを選択します。次に、ターゲットインスタンスの ID をクリックします。
インスタンス詳細ページの左側のナビゲーションウィンドウで、データベース接続 をクリックします。次に、ターゲットノードのエンドポイントを取得します。
エンドポイントの説明
エンドポイントのネットワークタイプ
ネットワークタイプ | 説明 |
プライベートネットワーク |
|
パブリックネットワーク | インターネット経由でのインスタンスへの接続は特定のセキュリティリスクをもたらすため、ApsaraDB for MongoDB インスタンスはデフォルトではパブリックエンドポイントを提供しません。インターネット経由で接続するには、手動でパブリックエンドポイントを申請できます。 |
エンドポイントタイプ
エンドポイントタイプ | 説明 |
ConnectionStringURI SRV アドレス (推奨) | MongoDB では、SRV は MongoDB の接続文字列を簡素化し、クラスターメンバーの自動検出をサポートする DNS レコードの一種です。 シャードクラスターインスタンスで Mongos ノードを追加または削除する場合、SRV アドレスを使用すると、インスタンスとシームレスに対話できます。これにより、アプリケーションの設計とメンテナンスが簡素化されます。 重要
|
ConnectionStringURI アドレス | ApsaraDB for MongoDB は、Mongos およびシャードコンポーネント用の ConnectionStringURI アドレスを提供します。 単一ノードの接続文字列と比較して、本番環境のアプリケーションを ConnectionStringURI を使用してデータベースに接続する方が優れています。クライアントは、負荷分散のために複数の Mongos ノードにリクエストを自動的に送信します。Mongos ノードに障害が発生した場合、クライアントは自動的にフェールオーバーを実行し、正常な Mongos ノードにリクエストを送信します。 説明
|
Mongos アドレス | プライマリノードのエンドポイントを含む、Mongos コンポーネントのエンドpoint。 説明 日常のテストでは、Mongos コンポーネントのいずれかのノードに接続するだけで済みます。 |
シャードアドレス | プライマリ、セカンダリ、および読み取り専用ノードのエンドポイントを含む、シャードコンポーネントのエンドポイント。 説明
|
ConfigServer アドレス | プライマリノードとセカンダリノードのエンドポイントを含む、ConfigServer コンポーネントのエンドポイント。 説明
|
各エンドポイントタイプのフォーマット、パラメーター、および例は次のとおりです。
ConnectionStringURI SRV アドレス
フォーマット:
mongodb+srv://<username>:<password>@<srv-host>/<database>?[authSource=<authenticationDatabase>]<other_options>パラメーター:
パラメーター | 説明 |
| 接続文字列のプレフィックスです。サービス検出に DNS SRV レコードが使用されることを示します。 |
| データベースアカウントの名前です。デフォルト値は root です。 |
| データベースアカウントのパスワードです。 |
| ホスト名です。 |
| アクセスするデータベースの名前です。デフォルト値は admin です。 |
| このパラメーターは、データベースアカウントが属するデータベースを指定します。 説明 ApsaraDB for MongoDB の SRV 接続文字列の TXT レコードは |
| その他のオプションパラメーターです。 説明 SRV 接続の SSL オプションは、デフォルトで true です。SSL 暗号化接続を使用する必要がない場合は、接続文字列に |
例:
データベースアカウントは test で、admin データベースにあります。
mongodb+srv://test:****@dds-2zef4c23****-srv.mongodb.pre.nosql.aliyuncs.com/admin?ssl=falseConnectionStringURI アドレス
次のセクションでは、Mongos およびシャードコンポーネントの ConnectionStringURI アドレスについて説明します。
Mongos
本番環境では、ConnectionStringURI を使用してアプリケーションをデータベースに接続します。クライアントは、負荷分散のために複数の 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シャード
シャードコンポーネントの ConnectionStringURI アドレスは、負荷分散を提供し、シャード内のすべてのノードのアドレスを含む高可用性エンドポイントです。このエンドポイントに接続して、データベースに対する読み取りおよび書き込み操作を実行できます。本番環境では、このアドレスを使用してアプリケーションをインスタンスに接続することをお勧めします。
本番環境では、ConnectionStringURI アドレスを使用してアプリケーションをインスタンスに接続します。これにより、クライアントは常にプライマリノードを見つけることができ、プライマリ/セカンダリのフェールオーバーがアプリケーションの読み取りおよび書き込み操作に影響を与えないことが保証されます。
フォーマット:
mongodb://<username>:<password>@<host1>:<port1>,<host2>:<port2>,...,<hostN>:<portN>/<database>[?&authSource=<authenticationDatabase>]パラメーター:
パラメーター | 説明 |
| データベースアカウントの名前です。デフォルト値は root です。 |
| データベースアカウントのパスワードです。 |
| プライマリ、セカンダリ、および読み取り専用ノードの [ドメイン名] です。 |
| プライマリ、セカンダリ、および読み取り専用ノードの [ポート] です。 |
| アクセスするデータベースの名前です。デフォルト値は admin です。 |
| このパラメーターは、データベースアカウントが属するデータベースを指定します。 |
| このパラメーターは、読み書き分離と負荷分散を実装します。書き込みリクエストをプライマリノードに送信し、読み取りリクエストをパラメーターで指定されたノードに送信します。有効な値:
説明 読み取りリクエストがセカンダリノードと読み取り専用ノードに送信される場合、負荷が不均等になることがあります。ノードをさらに指定するには、readPreferenceTags パラメーターを設定します。 |
| このパラメーターは、指定されたタグに対応するノードに優先的に読み取りリクエストを送信します。通常、readPreference パラメーターと共に使用され、
|
MongoDB インスタンスに readPreference および readPreferenceTags パラメーターを使用できます。さまざまなタグを組み合わせることで、さまざまなシナリオの要件を満たすことができます:
読み取りリクエストに対するプライマリノードの応答ポリシー | 読み取りリクエストの送信先ノード | パラメーターの組み合わせ |
読み取りリクエストが失敗した場合、プライマリノードに送信される | プライマリノードからの読み取りを優先 |
|
セカンダリノードと読み取り専用ノードからの読み取りを優先 |
| |
セカンダリノードからの読み取りを優先 説明 セカンダリノードに障害が発生した場合、読み取りリクエストはプライマリノードに送信されます。 |
| |
読み取り専用ノードからの読み取りを優先 説明 読み取り専用ノードに障害が発生した場合、読み取りリクエストはプライマリノードに送信されます。 |
| |
読み取りリクエストが失敗した場合、プライマリノードに送信されない | セカンダリノードと読み取り専用ノードからのみ読み取る |
|
セカンダリノードからのみ読み取る 説明 セカンダリノードに障害が発生した場合、読み取り操作は失敗します。 |
| |
読み取り専用ノードからのみ読み取る 説明 読み取り専用ノードに障害が発生した場合、読み取り操作は失敗します。 |
|
例:
mongodb://test:****@d-bp1586cb62bf53b****.mongodb.rds.aliyuncs.com:3717,d-bp1586cb62bf53b****.mongodb.rds.aliyuncs.com:3717/adminMongos アドレス
フォーマット:
<host>:<port>パラメーター:
パラメーター | 説明 |
| Mongos コンポーネント内のノードの [ドメイン名] です。 |
| Mongos コンポーネント内のノードの [ポート] です。 |
例:
s-bp1c010266f6****.mongodb.rds.aliyuncs.com:3717シャードアドレス
フォーマット:
<host>:<port>パラメーター:
パラメーター | 説明 |
| シャードコンポーネント内のノードの [ドメイン名] です。 |
| シャードコンポーネント内のノードの [ポート] です。 |
例:
d-bp1c010266f6****.mongodb.rds.aliyuncs.com:3717ConfigServer アドレス
フォーマット:
<host>:<port>パラメーター:
パラメーター | 説明 |
| ConfigServer コンポーネント内のノードの [ドメイン名] です。 |
| ConfigServer コンポーネント内のノードの [ポート] です。 |
例:
cs-bp1c010266f6****.mongodb.rds.aliyuncs.com:3717MongoDB データベースにログオンする
次の情報を取得します。
データベースアカウント。 初期アカウントは root です。
重要本番環境では、root アカウントを使用してデータベースに接続しないでください。データベースアカウントを作成して権限を割り当てることができます。
データベースアカウントのパスワード。 パスワードを設定していない場合、または忘れた場合は、パスワードを設定するか、パスワードをリセットできます。
アクセスするデータベース。 データベースアカウントが root の場合、対応するデータベースは admin です。
次のいずれかのメソッドを使用してデータベースにログオンします。