Amazon RDS DB インスタンスに接続する際の問題を解決するにはどうすればよいですか?

所要時間2分
0

Amazon Relational Database Service (Amazon RDS) DB インスタンスに接続できません。

簡単な説明

Amazon RDS DB インスタンスに接続できない根本的な原因は多数あります。一般的な理由は次のとおりです。

  • RDS DB インスタンスが利用可能以外の状態にあるため、接続を受け入れられない。
  • DB インスタンスに接続するソースに、セキュリティグループ、ネットワークアクセスコントロールリスト (ACL)、またはローカルファイアウォールでの認証アクセス権がない。
  • DB インスタンスへの接続に、間違った DNS 名またはエンドポイントが使用されている。
  • マルチ AZ DB インスタンスがフェイルオーバーし、セカンダリ DB インスタンスがインバウンド接続を許可しないサブネットまたはルートテーブルを使用している。
  • 次のいずれかの理由により、ユーザー認証が正しくない。
    DB クライアントからインスタンスにアクセスする際に、データベースレベルで誤ったユーザー名またはパスワードを使用している。
    インスタンスにアクセスするのに必要なデータベース権限がない。
    クライアントがデータベースのバージョンと互換性のないバージョンで実行されている。

**ヒント:**次のトラブルシューティング手順を使用して、接続に関する問題の原因を特定できます。または、AWS Support-ConnectivityToRDS AWS Systems Manager Automation ドキュメントを使用して問題を診断することもできます。この自動化ドキュメントでは、Amazon Elastic Compute Cloud (Amazon EC2) インスタンスのプライマリ IP アドレスに基づいてネットワーク ACL を診断できます。ただし、エフェメラルポートは検証されません。自動化ドキュメントでは EC2 インスタンスのプライマリ IP アドレスに基づいてセキュリティグループもチェックされますが、特定のポートはチェックされません。詳細については、「Run an automation」を参照してください。

解決策

DB インスタンスが利用可能な状態であることを確認する

DB インスタンスを最近起動した、または再起動した場合は、Amazon RDS コンソールで DB インスタンスが利用可能な状態であることを確認します。DB インスタンスのサイズによっては、DB インスタンスがネットワーク接続に使用できるようになるまでに最大 20 分かかることがあります。

DB インスタンスが失敗の状態にある場合は、「私の Amazon RDS DB インスタンスが失敗の状態になっているのはなぜですか?」を参照してください。

DB インスタンスが接続を許可していることを確認してください

DB インスタンスに接続しているソースからのトラフィックが、以下の 1 つ以上の原因によってゲートされていないかを確認します。

  • **DB インスタンスに関連付けられている Amazon Virtual Private Cloud (Amazon VPC) セキュリティグループ。**必要に応じて、VPC に関連付けられたセキュリティグループに、DB インスタンスに出入りするソースに関連するトラフィックを許可するルールを追加します。IP アドレス、IP アドレスの範囲、または別の VPC セキュリティグループを指定できます。VPC と DB インスタンスに関する一般的な情報については、「VPC の DB インスタンスにアクセスするシナリオ」を参照してください。
  • **DB インスタンスに関連付けられている任意の DB セキュリティグループ。**DB インスタンスが VPC 内にない場合、インスタンスは DB セキュリティグループを使用してトラフィックをゲートしている可能性があります。DB セキュリティグループを更新して、接続に使用する IP アドレス範囲または Amazon EC2 セキュリティグループからのトラフィックを許可します。
  • **VPC の外部への接続。**DB インスタンスがパブリックにアクセス可能で、パブリックサブネットに関連付けられていることを確認します (例えば、ルートテーブルではインターネットゲートウェイからのアクセスが許可されています)。詳細については、「VPC の DB インスタンスにアクセスするシナリオ」を参照してください。
    DB インスタンスがプライベートサブネットにある場合は、必ず VPC ピアリングまたは AWS Site-to-Site VPN を使用してインスタンスに安全に接続してください。Site-to-Site VPN では、VPC をリモートネットワークに接続できるカスタマーゲートウェイを設定します。VPC ピアリングを使用するには、ソース VPC とインスタンスの VPC の間にピアリング接続を作成し、VPC の外部からインスタンスにアクセスします。Amazon EC2 インスタンスを踏み台 (ジャンプ) ホストとして使用することもできます。
  • **ネットワーク ACL。**ネットワーク ACL は、VPC 内の特定のサブネットのリソースのファイアウォールとして機能します。VPC で ACL を使用する場合は、DB インスタンスとの間のインバウンドトラフィックとアウトバウンドトラフィックを許可するルールがあるか確認してください
  • **ネットワークまたはローカルのファイアウォール。**DB インスタンスがインバウンドとアウトバウンドの通信に使用するポートへのトラフィックとポートからのトラフィックがネットワークで許可されているか、ネットワーク管理者に確認します。
    : Amazon RDS は ping を含むインターネット制御メッセージプロトコル (ICMP) トラフィックを受け入れません。

DNS 名またはエンドポイントの潜在的な問題のトラブルシューティング

DB インスタンスに接続するときは、Amazon RDS コンソールが提供する DNS 名 (エンドポイント) を使用します。必ず正しいエンドポイントを使用してください。また、DB インスタンスへの接続に使用するクライアントに、正しい形式のエンドポイントを提供してください。DB エンジン接続の詳細と、さまざまなクライアントアプリケーションでエンドポイントを使用する方法については、「Amazon RDS のスタート方法」を参照してください。

例えば、VPC 内の Amazon EC2 インスタンスから DB インスタンスエンドポイントに nslookup を使用します。

nslookup myexampledb.xxxx.us-east-1.rds.amazonaws.com
Server: xx.xx.xx.xx
Address: xx.xx.xx.xx#53

信頼性のない回答の例を以下に示します。

Name: myexampledb.xxxx.us-east-1.rds.amazonaws.com
Address: 172.31.xx.x

データベースレベルの問題をトラブルシューティングする

  • DB クライアントからインスタンスにアクセスする際は、必ず正しいユーザー名とパスワードを使用してください。
  • ユーザーには DB インスタンスに接続するためのデータベース権限が必要です。
  • CPU やメモリの競合など、Amazon RDS のリソーススロットリングがないか確認してください。こうした競合があると、インスタンスへの新しい接続を確立する際に問題が発生する可能性があります。
  • インスタンスが max_connections 数の制限に達していないことを確認してください。

インスタンスに関連付けられているルートテーブルを確認する

マルチ AZ 配置を作成する場合は、アプリケーションの耐障害性を向上させるために、異なるアベイラビリティーゾーンで複数のレプリカ DB インスタンスを起動します。各 DB インスタンスに関連付けられているサブネットは、同じまたは類似するルートテーブルに関連付けられている必要があります。プライマリ DB インスタンスが、別のルートテーブルに関連付けられているスタンバイレプリカにフェイルオーバーすると、トラフィックが正しくルーティングされない可能性があります。トラフィックが以前に問題なくルーティングされていたとしても、正しくルーティングされなくなる可能性があります。

ルートテーブルの設定の詳細については、「Configure route tables」を参照してください。マルチ AZ 配置の詳細については、「マルチ AZ 配置の設定と管理」を参照してください。

**注:**DB インスタンスに接続できるものの、認証エラーが発生した場合は、「RDS DB インスタンスの管理者ユーザーのパスワードをリセットするにはどうすればよいですか?」を参照してください。

接続を確認する

次のコマンドのいずれかを実行して接続を確認します。

telnet <RDS endpoint> <port number>
nc -zv <RDS endpoint> <port number>

telnet コマンドまたは nc コマンドのいずれかが成功すると、ネットワーク接続が確立されたことになります。つまり、この問題はユーザー名やパスワードなど、データベースへのユーザー認証が原因である可能性が高いということです。

関連情報

Amazon RDS DB インスタンスに接続できない

VPC のパブリックサブネットまたはプライベートサブネットを使用する Amazon RDS DB インスタンスへの接続をトラブルシューティングするにはどうすればよいですか?

Amazon RDS でのセキュリティ

SSL/TLS を使用した DB インスタンスへの接続の暗号化