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

ApsaraDB for MongoDB:パブリックインターネット経由での MongoDB への接続

最終更新日:Sep 10, 2026

このトピックでは、パブリックインターネット経経由で ApsaraDB for MongoDB インスタンスに接続する方法について説明します。

前提条件

ステップ 1: パブリック接続文字列の申請

  1. レプリカセットインスタンスまたはシャードクラスターインスタンスのページに移動します。上部メニューで、目的のリソースグループとリージョンを選択します。次に、対象インスタンスの ID をクリックします。

  2. インスタンス詳細ページの左側のナビゲーションペインで、データベース接続 をクリックします。

  3. Public IP Connection セクションで、Apply for Public IP をクリックします。

  4. Apply for Public IP ダイアログボックスで、確定する をクリックします。

  5. インスタンスのステータスがEstablishing Network Connection から Running に変わると、インスタンスのパブリック接続文字列を表示できるようになります。

    説明
    • インスタンスは、ステータスがEstablishing Network Connectionの場合でも正常に動作し続けます。

    • 接続文字列は、許可リストを設定した後にのみ表示されます。

    • 高可用性接続には、ConnectionStringURI を使用してください。

ステップ 2: インスタンスへの接続

この例では、MongoDB Shell (mongosh) を使用してインスタンスに接続します。

ConnectionStringURI (推奨)

コマンド:

mongo "<ConnectionStringURI>"

パラメータ:

パラメータ

説明

<ConnectionStringURI>

ApsaraDB for MongoDB コンソールで確認できる、インスタンスの ConnectionStringURI です。

説明

セキュリティのベストプラクティスとして、root アカウントを使用してデータベースに接続しないでください。接続する前に、Data Management (DMS) でデータベースアカウントを作成してください。

接続する際には、root:**** を新しいアカウントのユーザー名とパスワード (例: test:PassWord**) に置き換えてください。また、/admin を認証データベース (例: /testdb) に置き換えてください。

例:

mongo "mongodb://test:PassWord**@dds-bp19f409d7512a****.mongodb.rds.aliyuncs.com:3717,dds-bp19f409d7512b****.mongodb.rds.aliyuncs.com:3717,dds-bp19f409d7512c****.mongodb.rds.aliyuncs.com:3717/testdb?replicaSet=mgset-6108****"    

単一ノード接続文字列

コマンド:

mongo --host <host> --port <port> -u <username> -p --authenticationDatabase <authenticationDatabase>

パラメータ:

パラメータ

説明

<host> および <port>

ApsaraDB for MongoDB コンソールで確認できる、ノードの接続アドレスとポート。

例: dds-bp19f409d7512****.mongodb.rds.aliyuncs.com:3717

<username>

データベースアカウントの名前です。

説明

セキュリティのベストプラクティスとして、root アカウントを使用してデータベースに接続しないでください。接続する前に、Data Management (DMS) でデータベースアカウントを作成してください。

<authenticationDatabase>

データベースアカウントの認証に使用するデータベースです。

重要

認証に成功するには、アカウントが所属するデータベースで認証する必要があります。

例:

次の例では、データベースアカウントは test、認証データベースは testdb とします。

mongo --host dds-bp19f409d7512****.mongodb.rds.aliyuncs.com --port 3717 -u test -p --authenticationDatabase testdb

Enter password: プロンプトで、データベースアカウントのパスワードを入力し、Enter キーを押します。

よくある質問

パブリック IP アドレスを許可リストに追加したにもかかわらず、インスタンスに接続できないのはなぜですか?

この問題は、許可リストに誤ったパブリック IP アドレスを追加した場合に発生する可能性があります。次の手順に従って、ローカルクライアントの正しいパブリック IP アドレスを確認してください。

  1. IP アドレス 0.0.0.0/0 をMongoDB インスタンスの許可リストに追加します。

    警告

    0.0.0.0/0 を設定すると、すべてのデバイスが MongoDB インスタンスにアクセスできるようになります。これはセキュリティ上のリスクがあるため、慎重に使用する必要があります。このエントリを使用する場合は、速やかに許可リストから削除してください。

  2. MongoDB Shell (mongosh) を使用してインスタンスに接続します。

    許可リストを 0.0.0.0/0 に設定しても MongoDB に接続できない場合は、Data Management (DMS) を使用して MongoDB に接続し、ユーザー名、パスワード、認証データベースが正しいかどうかを確認してください。

  3. 次のコマンドを実行して、MongoDB Shell (mongosh) セッションのクライアント情報を照会します。

    db.currentOp({"appName" : "MongoDB Shell", "active" : true})

    コマンドを実行すると、結果の client フィールドにクライアントのパブリック IP アドレスが表示されます。出力例:

    mgset-xxx:PRIMARY> db.currentOp({"appName" : "MongoDB Shell", "active" : true})
    {
        "inprog": [
            {
                "desc": "conn1591052",
                "threadId": "48008022501120",
                "connectionId": 1591052,
                "client": "47.xxx.xxx.xxx:40602",
                "appName": "MongoDB Shell",
                "clientMetadata": {
                    "application": {
                        "name": "MongoDB Shell"
                    },
                    "driver": {
                        "name": "MongoDB Internal Client",
                        "version": "4.0.5"
                    },
                    "os": {
                        "type": "Linux",
                        "name": "Ubuntu",
                        "architecture": "x86_64",
                        "version": "16.04"
                    }
                }
            }
        ]
    }
    
    説明

    別のクライアントを使用してインスタンスに接続する場合は、次のコマンドを実行して、すべてのアクティブなクライアントの情報を照会します。

    db.runCommand({currentOp: 1, "active" : true})
  4. 取得した IP アドレスを MongoDB インスタンスの許可リストに追加し、IP アドレス 0.0.0.0/0 を削除します。

ローカルマシンのパブリック IP アドレスは動的に変更されるため、接続に失敗することがあります。解決策は何ですか?

パブリックネットワーク経由で MongoDB に接続すると、アクセスが遅い、接続がフリーズする、または ECONNRESET エラーが発生します。どうすればよいですか?

症状に基づいて、ローカルクライアントからのパブリックネットワーク接続をトラブルシューティングしてください。

  • アクセスが遅く、ネットワークの変動が疑われる場合: インスタンスを再起動しても、ネットワーク側の問題は解決されません。まず、ネットワーク状態を観察してください。問題が解決しない場合は、ローカルネットワークまたはインターネットサービスプロバイダー (ISP) の接続をトラブルシューティングしてください。

  • TCP 接続は確立されているが、ハンドシェイク中に ECONNRESET エラーが発生する場合: インスタンスの許可リストが正しく設定されているかどうかを確認してください。シャードクラスターインスタンスの場合は、Mongos ノードへの接続数が上限に達していないかどうかを確認してください。上限に達している場合は、インスタンスを再起動して接続を解放するか、インスタンスの仕様をアップグレードしてください。次に、単一ノード接続文字列を使用して一時的に接続し、ロードバランシングの問題を除外してください。単一ノード接続文字列は、トラブルシューティング目的でのみ使用し、通常の接続方法としては使用しないでください。

  • Apache SeaTunnel などのクライアントが No server chosen または接続タイムアウトを報告する場合: ドライバーがプライマリノードを識別できない可能性があります。高可用性接続には、replicaSet パラメータを含む完全な ConnectionStringURI を使用してください。または、テスト目的で一時的にプライマリノードの接続文字列のみを指定してください。問題を特定した後、完全な ConnectionStringURI の使用を再開してください。

  • データ同期タスクがフリーズする場合: クライアントログでメモリ不足 (OOM) または接続切断エラーを確認してください。次に、MongoDB 接続ログを分析して、クライアントがプライマリノードを識別できなかったためにタイムアウトしたかどうかを確認してください。接続設定を変更して、replicaSet パラメータを含む完全な ConnectionStringURI を使用した高可用性接続を使用するか、テスト目的で一時的にプライマリノードのみに接続してください。

関連ドキュメント