Amazon DocumentDB クラスターへの接続に関する問題を解決するには、どうすれば良いですか ?

最終更新日: 2020 年 1 月 24 日

Amazon DocumentDB (MongoDB 互換) クラスターに接続できません。接続できない理由と、接続の問題の解決方法を教えてください。

簡単な説明

Amazon DocumentDB は VPC のみのサービスであり、パブリックエンドポイントをサポートしていません。その結果、AWS 外部の環境から Amazon DocumentDB クラスターに直接接続することはできません。次の方法を使用して Amazon DocumentDB に接続できます。

  1. Amazon Elastic Compute Cloud (Amazon EC2) インスタンス、または同じ Amazon Virtual Private Cloud (Amazon VPC) 内にある別の AWS サービス (AWS Lambda、Amazon SageMaker など) から接続します。
  2. VPC ピアリングを使用して、別の VPC にある EC2 インスタンスから接続します。
  3. SSH トンネルを使用して AWS 外部のマシンから接続します。

解決方法

同じ VPC 内の EC2 インスタンスから接続する

1.    ソースマシンから SSH 接続できるのと同じ VPC 内に EC2 インスタンスを作成します。

2.    Amazon DocumentDB クラスターのセキュリティグループに、EC2 インスタンスからの接続を許可するルールがあることを確認します。デフォルトでは、Amazon DocumentDB クラスターのセキュリティグループは、ポート 27017 でのインバウンド接続を許可する必要があります。

3.    SSH を使用して EC2 インスタンスに接続します。Linux インスタンスの場合は、次の例を参照してください。

ssh -i "keypairfile.pem" ec2-user@<EC2 DNS endpoint>

4.    EC2 インスタンスに mongo シェルをインストールします (まだインストールしていない場合)。

5.    クラスターに接続します。

mongo --ssl --host <Cluster endpoint> :27017 --sslCAFile rds-combined-ca-bundle.pem --username <username> --password >password>

MongoDB シェルバージョン: 3.2.11

connecting to: <Cluster>:27017/<user>
rs0:PRIMARY> 

別の VPC の EC2 インスタンスから接続する

1.    Amazon DocumentDB クラスターとは異なる VPC で実行されている EC2 インスタンスから VPC ピアリング接続を作成します。

2.    ピアリング接続が成功したら、「同じ VPC 内の EC2 インスタンスから接続する」の下にあるステップに従います。

SSH トンネルを使用して AWS 外部のマシンから接続する

1.    ローカルコンピュータから Amazon DocumentDB クラスターと同じ VPC で実行されている EC2 インスタンスへの SSH トンネルをセットアップします。詳細については、「Amazon VPC の外部から Amazon DocumentDB クラスターに接続する」を参照してください。

ssh -i "keypairfile.pem" -L 27017:<cluster endpoint>:27017 ec2-user@<EC2 tunnel endpoint> -N

これにより、ローカルホスト (27017) に直接コマンドを実行でき、コマンドが Amazon DocumentDB クラスターに送信されます。ただし、ベストプラクティスとして、本稼働環境の場合、または Amazon DocumentDB クラスターを接続のレプリカセットとして使用する場合は、この方法を使用しないでください。詳細については、「レプリカセットとしての Amazon DocumentDB への接続」を参照してください。

トラブルシューティング

これらのいずれかの方法を使用していて、それでも接続できない場合は、以下を確認してください。

  1. Amazon DocumentDB クラスターには少なくとも 1 つのインスタンスがあり、クラスター内のインスタンスが利用可能な状態であること。インスタンスが使用可能な状態ではない場合、接続を受け入れることはできません。
  2. インスタンスへの接続に使用するソースが、ネットワークアクセスコントロールリスト (ACL)、ローカルファイアウォール、セキュリティグループルールでクラスターへのアクセスを許可されたソースとしてリストされていること。
  3. Amazon DocumentDB クラスターへの接続に、正しい DNS 名またはエンドポイントが使用されていること。DNS と接続に関する問題のトラブルシューティングについては、「Amazon DocumentDB エンドポイントに接続できない」を参照してください。
  4. ユーザー名とパスワードは、クラスターに接続するときに正しく入力されます。パスワードを忘れた場合は、Amazon DocumentDB クラスターを変更してパスワードをリセットできます。
  5. SSL 証明書は、クライアントまたはアプリケーションから接続するときに渡されます。デフォルトでは、Amazon DocumentDB クラスターに対して TLS 設定が有効になっています。TLS 設定を無効にするには、新しいカスタム Amazon DocumentDB クラスターパラメータグループを作成し、tls パラメータを [disabled] に設定してから、新しいクラスターパラメータグループを使用するようにクラスターを変更します。詳細については、「Amazon DocumentDB クラスターパラメータグループの管理」を参照してください。