すべてのプロダクト
Search
ドキュメントセンター

ApsaraDB for MongoDB:ApsaraDB for MongoDBシャードクラスターインスタンスへの接続

最終更新日:Aug 23, 2024

ApsaraDB for MongoDBは、シャードクラスターインスタンス内の各mongosコンポーネント、各シャードコンポーネント、およびConfigServerコンポーネントの接続文字列を提供します。 ApsaraDB for MongoDBは、シャードクラスターインスタンスごとにURI (Uniform Resource Identifier) も提供します。 シャードクラスタインスタンスのURIは、アプリケーションとインスタンス間の高可用性接続を確立するために使用されます。 このトピックでは、シャードクラスタインスタンスの接続文字列とURIを表示する方法、およびシャードクラスタインスタンスの特定のデータベースにログインする方法について説明します。

シャードクラスタインスタンスの接続文字列とURIの表示

  1. シャードクラスターインスタンスページに移動します。 上部のナビゲーションバーで、インスタンスが存在するリージョンを選択します。 次に、インスタンスを見つけて、インスタンスのIDをクリックします。

  2. インスタンスの詳細ページの左側のナビゲーションウィンドウで、データベース接続. 表示されるページで、インスタンス内のノードの接続情報を表示します。

接続文字列とURI

エンドポイントのネットワークタイプ

ネットワークタイプ

説明

プライベートネットワーク

  • VPC: Virtual Private Cloud (VPC) は、クラシックネットワークよりも高いセキュリティとパフォーマンスを提供する分離されたネットワークです。 デフォルトでは、ApsaraDB for MongoDBはインスタンスのVPCエンドポイントを提供し、高いセキュリティと高いパフォーマンスを確保します。

  • クラシックネットワーク: クラシックネットワーク内のクラウドサービスは分離されません。 クラウドサービスへの不正アクセスは、セキュリティグループまたはホワイトリストを使用してのみブロックされます。 新しいインスタンスはクラシックネットワークタイプをサポートしていません。 詳細については、「 [通知] 新しいApsaraDB For MongoDBインスタンスのクラシックネットワークが利用できない」をご参照ください。

インターネット

インターネット経由でApsaraDB for MongoDBインスタンスに接続すると、インスタンスがセキュリティリスクにさらされる可能性があります。 したがって、ApsaraDB for MongoDBインスタンスには、デフォルトでパブリックエンドポイントは提供されません。 インターネット経由でApsaraDB for MongoDBインスタンスに接続する場合は、パブリックエンドポイントを申請する必要があります。 詳細については、「 (オプション) ApsaraDB For MongoDBレプリカセットインスタンスのパブリックエンドポイントの申請」をご参照ください。

エンドポイントの種類

Endpointタイプ

説明

Mongosエンドポイント

プライマリノードのエンドポイントを含む、シャードクラスタインスタンス内のmongosコンポーネントのエンドポイント。

説明

ルーチンテストを実行するときは、mongosコンポーネントに接続するだけで済みます。

Shardエンドポイント

プライマリノード、セカンダリノード、および読み取り専用ノードのエンドポイントを含む、シャードクラスタインスタンス内のシャードコンポーネントのエンドポイント。

説明
  • デフォルトでは、シャードクラスターインスタンス内のmongosコンポーネントの接続文字列のみがApsaraDB for MongoDBコンソールに表示されます。 インスタンス内のシャードコンポーネントまたはConfigServerコンポーネントの接続文字列を表示するには、対応する接続文字列を適用します。 詳細については、「シャードノードまたはシャードクラスターインスタンスのConfigServerノードのエンドポイントの申請」をご参照ください。

  • 読み取り専用ノードがコンポーネントに存在する場合にのみ、シャードコンポーネント内の読み取り専用ノードの接続文字列を表示できます。

ConfigServerエンドポイント

プライマリノードとセカンダリノードのエンドポイントを含む、シャードクラスタインスタンスのConfigServerコンポーネントのエンドポイント。

説明
  • デフォルトでは、シャードクラスターインスタンス内のmongosコンポーネントの接続文字列のみがApsaraDB for MongoDBコンソールに表示されます。 インスタンス内のシャードコンポーネントまたはConfigServerコンポーネントの接続文字列を表示するには、対応する接続文字列を適用します。 詳細については、「シャードノードまたはシャードクラスターインスタンスのConfigServerノードのエンドポイントの申請」をご参照ください。

  • ローカルディスクを使用するシャードクラスターインスタンスのConfigServerコンポーネントのエンドポイントにのみ適用できます。

Connection string URI

ApsaraDB for MongoDBは、シャードクラスターインスタンスのmongosおよびシャードコンポーネントに接続文字列URIを提供します。

アプリケーションが本番環境にデプロイされている場合は、URIを使用してシャードクラスターインスタンスに接続することを推奨します。 これにより、クライアントはリクエストを自動的にmongosコンポーネントに配信し、インスタンス内の負荷を分散できます。 mongosコンポーネントが失敗した場合、クライアントは他の正常なmongosコンポーネントにリクエストを自動的にリダイレクトできます。

説明

デフォルトでは、シャードクラスターインスタンス内のmongosコンポーネントの接続文字列URIのみがApsaraDB for MongoDBコンソールに表示されます。 インスタンス内のシャードコンポーネントの接続文字列URIを表示するには、対応する接続文字列を申請します。 詳細については、「シャードノードまたはシャードクラスターインスタンスのConfigServerノードのエンドポイントの申請」をご参照ください。

SRV HAエンドポイント

SRV HAエンドポイントは、シャードクラスタインスタンスのメンテナンスと管理を簡素化できます。 mongosコンポーネントを追加または削除するときに、エンドポイントを変更する必要はありません。 クライアントは、サービスを中断することなくインスタンスと対話でき、アプリケーションの設計とメンテナンスが簡単になります。

アプリケーションが本番環境にデプロイされている場合は、URIを使用してシャードクラスターインスタンスに接続することを推奨します。 これにより、クライアントはリクエストを自動的にmongosコンポーネントに配信し、インスタンス内の負荷を分散できます。 mongosコンポーネントが失敗した場合、クライアントは他の正常なmongosコンポーネントにリクエストを自動的にリダイレクトできます。

重要
  • デフォルトでは、SRV HAエンドポイントはApsaraDB for MongoDBコンソールに表示されません。 SRV HAエンドポイントを使用するには、[データベース接続] ページで [プライベートSRVアドレスの申請] または [パブリックSRVアドレスの申請] をクリックします。

  • パブリックSRVエンドポイントを申請する前に、mongosコンポーネントのパブリックエンドポイントを有効化してください。 パブリックSRVエンドポイントを使用してシャードクラスタインスタンスに接続すると、クライアントは、パブリックエンドポイントがアクティブ化されているmongosコンポーネントにリクエストを自動的にリダイレクトします。

  • SRV HAエンドポイントは、クラウドディスクを使用するシャードクラスターインスタンスでのみ使用できます。

  • 仮想プライベートクラウド (VPC) にデプロイされたシャードクラスターインスタンスのプライベートSRVエンドポイントは、インスタンス内の最大20個のmongosコンポーネントに関連付けることができます。 エンドポイントが20を超えるmongosコンポーネントに関連付けられている場合、VPCのドメインネームシステム (DNS) 解決プロトコルによって課される制限により、過剰なコンポーネントはリクエストをオフロードできません。 パブリックSRVエンドポイントはこの制限の対象ではありません。

次のセクションでは、各エンドポイントの形式、パラメーター、および例について説明します。

Mongosエンドポイント

形式:

<host>:<port>

次の表に、上記のコマンドに含まれるパラメーターを示します。

パラメーター

説明

<ホスト>

mongosコンポーネント内のノードのドメイン名

<ポート>

mongosコンポーネント内のノードのポート番号

例:

s-bp1c010266f6****.mongodb.rds.aliyuncs.com:3717

Shardエンドポイント

形式:

<host>:<port>

次の表に、上記のコマンドに含まれるパラメーターを示します。

パラメーター

説明

<ホスト>

シャードコンポーネント内のノードのドメイン名

<ポート>

シャードコンポーネント内のノードのポート番号

例:

s-bp1c010266f6****.mongodb.rds.aliyuncs.com:3717

ConfigServerエンドポイント

形式:

<host>:<port>

次の表に、上記のコマンドに含まれるパラメーターを示します。

パラメーター

説明

<ホスト>

ConfigServerコンポーネント内のノードのドメイン名

<ポート>

ConfigServerコンポーネント内のノードのポート番号

例:

s-bp1c010266f6****.mongodb.rds.aliyuncs.com:3717

Connection string URI

次のセクションでは、mongosまたはshardコンポーネントの接続文字列URIについて説明します。

Mongos

重要

アプリケーションが本番環境にデプロイされている場合は、URIを使用してシャードクラスターインスタンスに接続することを推奨します。 これにより、クライアントはリクエストを自動的にmongosコンポーネントに配信し、インスタンス内の負荷を分散できます。 mongosコンポーネントが失敗した場合、クライアントは他の正常なmongosコンポーネントにリクエストを自動的にリダイレクトできます。

形式:

mongodb://<username>:<password>@<host1>:<port1>,<host2>:<port2>,...,<hostN>:<portN>/<database>[?&authSource=<authenticationDatabase>]

パラメーター

説明

<username>

データベースへのログインに使用されるデータベースアカウントの名前。 デフォルト値:root。

<パスワード>

データベースアカウントのパスワードを設定します。

<ホスト>

mongosコンポーネント内のノードのドメイン名

<ポート>

mongosコンポーネント内のノードのポート番号

<データベース>

接続するデータベースの名前。 デフォルト値: admin。

authSource=<authenticationDatabase> (オプション)

指定されたデータベースアカウントが属するデータベース。 <authenticationDatabase> は、認証に使用するデータベースの名前を示します。 認証データベースを指定しない場合は、<database> で指定したデータベースが認証データベースとして使用されます。

例:

次のサンプルコマンドでは、ユーザー名は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>]

次の表に、上記のコマンドに含まれるパラメーターを示します。

パラメーター

説明

<username>

データベースへのログインに使用されるデータベースアカウントの名前。 デフォルト値:root。

<パスワード>

データベースアカウントのパスワードを設定します。

<ホスト>

プライマリ、セカンダリ、または読み取り専用ノードへの接続に使用されるドメイン名

<ポート>

プライマリ、セカンダリ、または読み取り専用ノードへの接続に使用されるポート

<データベース>

接続するデータベースの名前。 デフォルト値: admin。

replicaSet=<replicaSet_value>

読み取り要求がレプリカセットインスタンスのすべてのノードに送信されることを指定します。 <replicaSet_value> は、インスタンスのHAエンドポイントの一意のIDを示します。

authSource=<authenticationDatabase> (オプション)

指定されたデータベースアカウントが属するデータベース。 <authenticationDatabase> は、認証に使用するデータベースの名前を示します。 認証データベースを指定しない場合は、<database> で指定したデータベースが認証データベースとして使用されます。

readPreference=[primary | primaryPreferred | secondary | secondaryPreferred] (オプション)

書き込み要求がプライマリノードに送信され、読み取り要求がセカンダリノードと読み取り専用ノードにランダムに送信されることを指定します。 このパラメータは、読み書きの分割と負荷分散を保証します。 有効な値:

  • readPreference=primary: 読み取り要求はプライマリノードにのみ送信されます。

  • readPreference=primaryPreferred: 読み取り要求は優先的にプライマリノードに送信されます。

  • readPreference=secondary: 読み取り要求は、セカンダリおよび読み取り専用ノードにのみ送信されます。 セカンダリノードと読み取り専用ノードに障害が発生した場合、読み取り要求は失敗し、プライマリノードに送信されません。

  • readPreference=secondaryPreferred: 読み取り要求は、セカンダリノードと読み取り専用ノードに優先的に送信されます。 セカンダリノードと読み取り専用ノードに障害が発生した場合、読み取り要求はプライマリノードに送信されます。

説明

このパラメーターは、クラウドディスクを使用するインスタンスでのみ使用できます。

readPreferenceTags=<readonly_Tags> (オプション)

指定したタグに対応するノードに優先的に読み取り要求を送信するように指定します。 <readonly_Tags> は、読み取り専用ノードのタグキーとタグ値を示し、role:electable型とrole:readonly型をサポートします。 有効な値:

  • readPreferenceTags=role:electable: セカンダリノードから優先的にデータが読み取られます。

  • readPreferenceTags=role:readonly: データは読み取り専用ノードから優先的に読み取られます。

説明

このパラメーターは、クラウドディスクを使用するインスタンスでのみ使用できます。

readPreferenceパラメーターとreadPreferenceTagsパラメーターは、クラウドディスクを使用するインスタンスで使用できます。 異なるタグの組み合わせは、様々なシナリオの要件を満たすことができる。 次の表に、さまざまなシナリオでのパラメーターの組み合わせを示します。

失敗した読み取り要求の処理に使用されるメソッド

読み取り要求を受信するノード

パラメータの組み合わせソリューション

失敗した読み取り要求をプライマリノードに送信する

プライマリノードから優先的にデータを読み取る

readPreference=primaryPreferred

セカンダリノードと読み取り専用ノードから優先的にデータを読み取る

readPreference=secondaryPreferred

セカンダリノードから優先的にデータを読み取る

readPreference=secondaryPreferred&readPreferenceTags=role:electable

読み取り専用ノードから優先的にデータを読み取る

readPreference=secondaryPreferred&readPreferenceTags=role:readonly

失敗した読み取り要求をプライマリノードに送信しない

セカンダリノードと読み取り専用ノードからのみデータを読み取る

readPreference=セカンダリ

セカンダリノードからのみデータを読み取る

readPreference=secondary&readPreferenceTags=role:electable

読み取り専用ノードからのみデータを読み取る

readPreference=secondary&readPreferenceTags=role:readonly

例:

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>?<options>

次の表に、上記のコマンドに含まれるパラメーターを示します。

パラメーター

説明

mongodb + srv://

接続文字列のプレフィックス。DNS SRVレコードを使用してサービスを識別することを示します。

<username>

データベースへのログインに使用されるデータベースアカウントの名前。 デフォルト値:root。

<パスワード>

データベースアカウントのパスワードを設定します。

<srv-host>

ホスト名。

<データベース>

接続するデータベースの名前。 デフォルト値: admin。

<オプション>

その他のオプションパラメーター。

説明

SVR HAエンドポイントのsslパラメーターのデフォルト値はtrueです。 シャードクラスターインスタンスへの正常な接続を確立するには、インスタンスがsslをサポートしていないため、falseに設定されているSSLパラメーターをインスタンスの接続文字列に追加します。 オプションパラメーターの詳細については、「MongoDBドキュメント」をご参照ください。

例:

次のサンプルコマンドでは、ユーザー名はtest、データベースはadminです。

mongodb+srv://test:****@dds-2zef4c23xxxx-srv.mongodb.pre.nosql.aliyuncs.com/admin?ssl=false

シャードクラスタインスタンスの特定のデータベースにログインする

  1. 次の情報を取得します。

    • シャードクラスタインスタンスの接続文字列またはURI。 詳細については、「シャードクラスターインスタンスの接続文字列とURIの表示」をご参照ください。

    • シャードクラスターインスタンスへの接続に使用されるデータベースアカウント。 初期アカウントはルートアカウントです。

      重要

      ルートアカウントを使用して本番環境のデータベースに接続しないことをお勧めします。 データベースアカウントを作成し、ビジネス要件に基づいてアカウントに権限を付与できます。 詳細については、「MongoDBデータベースユーザーの権限の管理」をご参照ください。

    • シャードクラスターインスタンスへの接続に使用されるデータベースアカウントのパスワード。 データベースアカウントのパスワードを指定しない場合、またはアカウントのパスワードを忘れた場合は、アカウントのパスワードを設定または変更できます。 詳細については、「 (オプション) パスワードのリセット」をご参照ください。

    • 接続するデータベースの名前。 ユーザー名がrootの場合は、adminと入力します。

  2. データベースへのログイン詳細については、以下のトピックをご参照ください。

一般的な接続シナリオ

よくある質問