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

最終更新日: 2019 年 8 月 30 日

Amazon Relational Database Service (Amazon RDS) DB インスタンスに接続できません。接続できない理由と修正方法

簡単な説明

Amazon RDS DB インスタンスに接続できない原因は、多くの要因が考えられます。最も一般的な理由をいくつか次に示します。

  • RDS DB インスタンスが 利用可能 以外の状態にあるため、接続を受け付けない。
  • インスタンスへの接続に使用するソースが、セキュリティグループ、ネットワーク ACL、またはローカルファイアウォールの RDS DB インスタンスへのアクセスを許可されたソースにない
  • DB インスタンスへの接続に誤った DNS 名またはエンドポイントが使用された。
  • マルチ AZ インスタンスがフェイルオーバーされ、セカンダリインスタンスはインバウンド接続を許可しないサブネットまたはルートテーブルを使用している。
  • ユーザー認証が正しくない。

解決方法

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

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

インスタンスが失敗状態の場合は、「RDS DB インスタンスが失敗状態にある」を参照してください。

DB インスタンスで接続が許可されていることを確認する

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

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"

マルチ AZ 配置に関連付けられたルートテーブルを確認する

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

ルートテーブルの設定方法の詳細については、「ルートテーブルの操作」を参照してください。マルチ AZ 配置の詳細については、「Amazon RDS の高可用性(マルチ AZ)」を参照してください。

注意: DB インスタンスに接続できるが、認証エラーが発生する場合は、「Amazon RDS DB インスタンスのマスターユーザーパスワードをリセットする方法」を参照してください。

接続をテストする

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

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

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