Database Connection Establishment Error from WordPress on EC2 to RDS (PostgreSQL) / EC2 上の WordPress から RDS (PostgreSQL) へのデータベース接続確立エラーについて

0

Currently, I am setting up a WordPress site on an AWS environment with the following configuration:

  • EC2 Instance: Amazon Linux 3
  • Database: Amazon RDS for PostgreSQL 16.3

Issue:

When accessing the site via the public domain of the EC2 instance, a "Database Connection Error" message is displayed.

What I Have Tried:

  1. Verified that I can connect to the database from the terminal:
psql --host=■■■■■■■■ --port=5432 --dbname=postgres --username=postgres
Password for user postgres: ○○○○○○○○
psql (16.5, server 16.3)
SSL connection (protocol: TLSv1.3, cipher: TLS_AES_256_GCM_SHA384, compression: off)
Type "help" for help.
  1. Configured wp-config.php as follows:
DB_NAME: 'postgres'
DB_USER: 'postgres'
DB_PASSWORD: '○○○○○○○○'
DB_HOST: '■■■■■■■■'
  1. Checked the RDS instance:
  • Engine Version: 16.3
  • DB Instance Identifier: portfolio-db
  • Master Username: postgres
  1. Verified database and user:
  • List of Databases (\l command):
    • The postgres database exists
  • List of Users (\du command):
    • The postgres user exists
  1. Security Group Settings:
  • Configured inbound rules to allow communication between EC2 and RDS
  • Allowed access to port 5432

EC2 Connection Setup

Question:

Given the above configuration, could you provide insights into potential causes for the database connection error from WordPress to RDS (PostgreSQL)? Additionally, are there any other aspects I should check?


現在、AWS 環境で以下の構成を使用して WordPress サイトをセットアップしています。

  • EC2 インスタンス: Amazon Linux 3

  • データベース: Amazon RDS for PostgreSQL 16.3

問題点:

EC2のパブリックドメインでサイトにアクセスすると、「データベース接続確立エラー」が表示されます。

試したこと:

  1. ターミナルでデータベースに接続できたことを確認済み
psql --host=■■■■■■■■ --port=5432 --dbname=postgres --username=postgres
Password for user postgres:○○○○○○○○
psql (16.5, server 16.3)
SSL connection (protocol: TLSv1.3, cipher: TLS_AES_256_GCM_SHA384, compression: off)
Type "help" for help.
  1. wp-config.phpを以下に設定
DB_NAME: 'postgres'
DB_USER: 'postgres'
DB_PASSWORD: '○○○○○○○○'
DB_HOST: '■■■■■■■■'
  1. RDS インスタンスの確認:
  • エンジンバージョン: 16.3
  • DB インスタンス識別子: portfolio-db
  • マスターユーザー名: postgres
  1. データベースとユーザーの確認:
  • データベース一覧 (\l コマンド):
    • postgres データベースが存在
  • ユーザー一覧 (\du コマンド):
    • postgres ユーザーが存在
  1. セキュリティグループの設定:
  • EC2 インスタンスと RDS 間の通信を許可するインバウンドルールを設定
  • ポート 5432 へのアクセスを許可

EC2 接続のセットアップ

質問:

上記の構成で、WordPress から RDS (PostgreSQL) への接続エラーが発生する原因として考えられる点や、他に確認すべき点がありましたらご教示いただけますでしょうか。

2回答
0

WordPress から RDS (PostgreSQL) への接続エラーについて、いくつかの確認点と可能性のある原因を挙げさせていただきます:

  1. データベース名の確認: WordPress の設定ファイル(wp-config.php)で指定しているデータベース名が正しいか確認してください。デフォルトの "postgres" データベースを使用している場合、WordPress 用に新しいデータベースを作成していない可能性があります。WordPress 専用のデータベースを作成し、その名前を wp-config.php に指定することをお勧めします。

  2. ユーザー権限の確認: "postgres" ユーザーが WordPress のデータベースに対して適切な権限(CREATE、ALTER、SELECT、INSERT、UPDATE、DELETE など)を持っているか確認してください。

  3. SSL/TLS 接続の設定: RDS for PostgreSQL は通常、SSL/TLS 接続を使用します。wp-config.php ファイルで SSL 接続を強制するための設定が必要な場合があります。以下のような設定を追加してみてください:

    define('MYSQL_CLIENT_FLAGS', MYSQLI_CLIENT_SSL);
  4. PHP の PostgreSQL ドライバーの確認: EC2 インスタンスに PHP の PostgreSQL ドライバー(pgsql)がインストールされているか確認してください。以下のコマンドで確認できます:

    php -m | grep pgsql
    

    もしドライバーがインストールされていない場合は、インストールする必要があります。

  5. WordPress の PostgreSQL 互換性: WordPress は通常 MySQL/MariaDB 用に設計されています。PostgreSQL を使用する場合、互換性の問題が発生する可能性があります。WordPress 用の PostgreSQL 互換プラグインや修正パッチの使用を検討してください。

  6. ファイアウォールの設定: EC2 インスタンスのファイアウォール(iptables など)が PostgreSQL の接続(ポート 5432)を許可しているか確認してください。

  7. RDS パラメータグループの設定: RDS のパラメータグループで、リモート接続を許可する設定になっているか確認してください。

  8. 接続文字列の確認: wp-config.php の DB_HOST 設定が正確な RDS エンドポイントを指しているか再確認してください。

  9. エラーログの確認: WordPress のエラーログと RDS の PostgreSQL ログを確認し、より詳細なエラーメッセージを探してください。

これらの点を確認し、必要に応じて設定を調整することで、接続問題が解決する可能性があります。また、WordPress と PostgreSQL の組み合わせは一般的ではないため、互換性の問題が発生する可能性があることにご留意ください。
Sources
Troubleshooting connections to your RDS for PostgreSQL instance - Amazon Relational Database Service
Creating and connecting to a PostgreSQL DB instance - Amazon Relational Database Service
Connect to MySQL and MariaDB from Amazon Aurora and Amazon RDS for PostgreSQL using the mysql_fdw extension | AWS Database Blog

profile picture
回答済み 1ヶ月前
0
profile picture
エキスパート
回答済み 1ヶ月前

ログインしていません。 ログイン 回答を投稿する。

優れた回答とは、質問に明確に答え、建設的なフィードバックを提供し、質問者の専門分野におけるスキルの向上を促すものです。

質問に答えるためのガイドライン

関連するコンテンツ