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

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

最終更新日:Mar 01, 2025

ApsaraDB for MongoDB は、シャードクラスターインスタンス内の各 Mongos コンポーネント、各シャードコンポーネント、および ConfigServer コンポーネントに接続文字列を提供します。 ApsaraDB for MongoDB は、インスタンス内のすべての Mongos またはシャードコンポーネントに接続文字列 Uniform Resource Identifier (URI) も提供します。 シャードクラスターインスタンスの URI は、アプリケーションとインスタンス間の高可用性 (HA) 接続を確立するために使用されます。 このトピックでは、シャードクラスターインスタンスの接続文字列と 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 インスタンスのパブリックエンドポイントを申請する」をご参照ください。

エンドポイントタイプ

エンドポイントタイプ

説明

Mongos エンドポイント

インスタンス内の Mongos コンポーネントのプライマリノードのエンドポイント。 エンドポイントを使用すると、コンポーネントのプライマリノードに接続できます。

説明

ルーチンテストを実行する場合、Mongos ノードに接続するだけで済みます。

シャードエンドポイント

インスタンス内のシャードコンポーネントのノードのエンドポイント。 エンドポイントを使用すると、コンポーネントのプライマリノード、セカンダリノード、または読み取り専用ノードに接続できます。

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

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

ConfigServer エンドポイント

インスタンス内の ConfigServer コンポーネントのノードのエンドポイント。 エンドポイントを使用すると、コンポーネントのプライマリノードまたはセカンダリノードに接続できます。

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

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

接続文字列 URI

ApsaraDB for MongoDB は、インスタンス内のすべての Mongos またはシャードコンポーネントに接続文字列 URI を提供します。

アプリケーションが本番環境にデプロイされている場合は、接続文字列 URI を使用してインスタンスに接続することをお勧めします。 これにより、クライアントはインスタンス内の負荷を分散するためにリクエストを Mongos ノードに自動的に配信できます。 Mongos ノードに障害が発生した場合、クライアントはリクエストを他の正常な Mongos ノードに自動的にリダイレクトできます。

説明

デフォルトでは、ApsaraDB for MongoDB コンソールには、インスタンス内の Mongos ノードの接続文字列のみが表示されます。 インスタンス内のすべてのシャードコンポーネントの接続文字列 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 での Domain Name System (DNS) 解決プロトコルの制限により、超過ノードはリクエストをオフロードできません。 インスタンスのパブリック SRV エンドポイントは、この制限の対象外です。

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

Mongos エンドポイント

形式:

<host>:<port>

パラメーター:

パラメーター

説明

<host>

Mongos コンポーネントのノードの [ドメイン名]

<port>

Mongos コンポーネントのノードの [ポート番号]

例:

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

シャードエンドポイント

形式:

<host>:<port>

パラメーター:

パラメーター

説明

<host>

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

<port>

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

例:

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

ConfigServer エンドポイント

形式:

<host>:<port>

パラメーター:

パラメーター

説明

<host>

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

<port>

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

例:

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

接続文字列 URI

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

Mongos ノード

重要

アプリケーションが本番環境にデプロイされている場合は、接続文字列 URI を使用してインスタンスに接続することをお勧めします。 これにより、クライアントはインスタンス内の負荷を分散するためにリクエストを Mongos ノードに自動的に配信できます。 Mongos ノードに障害が発生した場合、クライアントはリクエストを他の正常な Mongos ノードに自動的にリダイレクトできます。

形式:

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

パラメーター

説明

<username>

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

<password>

データベースアカウントのパスワード。

<host>

Mongos コンポーネントのノードの [ドメイン名]

<port>

Mongos コンポーネントのノードの [ポート番号]

<database>

接続するデータベースの名前。 デフォルト値: 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。

<password>

データベースアカウントのパスワード。

<host>

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

<port>

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

<database>

接続するデータベースの名前。 デフォルト値: 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 パラメーターを設定します。

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

読み取りリクエストが指定されたタグに対応するノードに優先的に送信されることを指定します。 ほとんどの場合、このパラメーターは readPreference パラメーターと一緒に指定され、primary モードとは互換性がありません。 <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=secondary

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

説明

セカンダリノードに障害が発生した場合、読み取り操作は失敗します。

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>?[authSource=<authenticationDatabase>]<other_options>

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

パラメーター

説明

mongodb+srv://

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

<username>

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

<password>

データベースアカウントのパスワード。

<srv-host>

ホスト名シリーズ。

<database>

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

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

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

説明

ApsaraDB for MongoDB インスタンスの SRV 接続文字列の TXT レコードは、authSource=admin を示します。 これにより、<database> パラメーターで指定されたデータベースは認証されません。 そのため、認証データベースを変更する場合、<database> パラメーターを変更する代わりに、authSource=<authenticationDatabase> を手動で指定する必要があります。 詳細については、「接続文字列」をご参照ください。

<other_options>

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

説明

SRV HA エンドポイントの ssl パラメーターのデフォルト値は true です。 SSL 暗号化機能を使用しない場合は、false に設定された ssl パラメーターをインスタンスのエンドポイントに追加します。 オプションパラメーターの詳細については、「接続文字列」をご参照ください。

例:

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

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

インスタンスの特定のデータベースにログインする

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

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

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

      重要

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

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

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

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

一般的な接続シナリオ

FAQ