他の AWS サービスから接続しようとすると、Amazon Relational Database Service (Amazon RDS) for PostgreSQL データベース (DB) インスタンスから接続タイムアウトエラーが返されます。データベースへの接続を確立できません。
RDS for PostgreSQL の接続タイムアウトエラーを解決するには、データベースエンドポイント設定、ネットワーク設定、およびセキュリティグループを確認してください。接続設定に基づいて、次の解決策を実行してください。
DB インスタンスに正しいエンドポイントとポートを使用していることを確認してください。エンドポイントとポートの情報を検索するには、「Amazon RDS DB インスタンスの接続情報の検索」を参照してください。
データベースへのアクセス権を付与するには、AWS アカウントの管理ユーザーとしてデータベースに接続します。続いて、次のコマンドを実行します。
GRANT CONNECT ON DATABASE database_name TO user_name;
注: database_name は実際のデータベース名に、user_name はアクセスを許可するデータベースユーザーに置き換えてください。
DB インスタンスがパブリックにアクセスできる場合は、パブリックアクセスオプションとルートテーブル内のインターネットゲートウェイが有効になっていることを確認します。
DB インスタンスがプライベートサブネットにある場合は、インターネットアクセス用の NAT ゲートウェイルートを持つルートテーブルがあることを確認します。別の仮想プライベートクラウド (VPC) から接続する場合は、VPC ピアリング接続を作成します。
ネットワークの問題をトラブルシューティングするには、Reachability Analyzer を使用してください。
セキュリティグループのルールで、ソース IP アドレスまたはセキュリティグループからのデータベースポートでのトラフィックが許可されていることを確認します。ポート 5432 は RDS for PostgreSQL データベースのデフォルトポートです。ネットワークアクセスコントロールリスト (ネットワーク ACL) ルールをチェックして、データベースポートでインバウンドトラフィックとアウトバウンドトラフィックの両方を許可していることを確認します。
AWS の外部から転送された接続を介して接続すると、ファイアウォールがデータベースポートへの接続をブロックすることがあります。ネットワーク管理者と協力して、DB インスタンスのエンドポイントとポートへのアウトバウンド接続を許可してください。
データベースポートを変更する方法については、「Amazon RDS DB インスタンスを変更する」を参照してください。
ローカルマシンまたは Amazon Elastic Compute Cloud (Amazon EC2) インスタンスから、次のコマンドを実行して、ポートが使用中かどうかを確認します。
netstat -tuln | grep 5432
注: 別のポートを使用する場合は、5432 をデータベースのポート番号に置き換えてください。
ポートが使用中の場合、出力にはポートとそれを使用しているプロセスが表示されます。ローカルサービスを停止するか、別のポートを使用するように DB インスタンスを変更することができます。
AWS Systems Manager Automation を使用して、Amazon EC2 インスタンスと DB インスタンス間の接続の問題を特定します。自動化により、インスタンスのステータス、サブネット CIDR、ネットワーク ACL、セキュリティグループ、ルートテーブルがチェックされます。詳細については、「How can I use the AWSSupport-TroubleshootConnectivityToRDS Systems Manager automation runbook to configure TroubleshootConnectivityToRDS between a source Amazon RDS database and an Amazon EC2 target?」(AWS Support-TroubleshootConnectivityToRDS Systems Manager 自動化ランブックを使用して、ソース Amazon RDS データベースと Amazon EC2 ターゲット間の TroubleshootConnectivityToRDS を設定する方法を教えてください) を参照してください。
注: この自動化では、エフェメラルポートや特定のポート設定は検証されません。
Amazon RDS DB インスタンスに接続できない
セキュリティグループによるアクセス制御
Error – Could not connect to server: Connection timed out (サーバー接続失敗エラー: 接続がタイムアウトしました)