この記事では、AWS EC2(AmazonLinux2023)上にWordPress環境を構築する手順を解説します。
全体構成

1.ネットワーク構築
VPC作成
- AWSマネジメントコンソール>VPCでVPCを新たに作成します。
- ciderは、「10.0.0.0/16」で設定します。

パブリックサブネット作成
- 新規作成したVPC内にサブネットを作成します。
- ciderは、「10.0.10.0/24」で設定します。
- AZは任意のものを設定します。

インターネットゲートウェイ作成
- インターネットゲートウェイ作成します。

- 先ほど作成したVPCへのアタッチします。

ルートテーブル作成
- ルートテーブルの作成を作成します。
- 送信先「0.0.0.0/0」、ターゲットを「インターネットゲートウェイ」にします


- 先ほど作成したサブネットへアタッチして、パブリックサブネットのインターネットへの通信が全てインターネットゲートウェイにルーティングされるようにします。

2.Webサーバー(Apache)の構築
EC2インスタンス作成
- 作成したパブリックサブネットにEC2を作成します。

セキュリティグループ作成
- ソース「0.0.0.0」(インターネット)でポート22(SSH)、443(HTTPS)、80(HTTP)を許可設定にします。
- 先ほど作成したEC2にセキュリティグループをアタッチします。

SSHでEC2に接続
- クライアントからEC2へSSH接続します。
- VScodeからの接続方法は以下の動画が参考になります。
【AWS EC2入門】クラウド上にサーバを構築!SSH接続してFlaskのWebアプリをデプロイしてみよう!〜初心者向け〜
- TeraTermで接続する場合は以下サイトが参考になります。
Windowsユーザー向け:Tera Termを使ったLinuxサーバーへの簡単SSH接続方法について – Qiita
💡補足
サーバーの遠隔操作として、SSHとRDP接続がある。どちらも遠隔操作という観点では同じだが、LinuxにCLIでアクセスする場合はSSH、WindowsサーバーなどにGUI接続する場合はRDP接続など利用シーンが分かれます。
Webサーバーをインストールする
- dnf(パッケージ管理ツール)のアップデート
sudo dnf update -y
- Apacheのインストール
sudo dnf -y intall httpd
- Apacheの起動
sudo systemctl start httpd.service
- Apacheのステータス確認
sudo systemctl status httpd.service
- EC2のグローバルIPにブラウザで接続し「It Works」が表示されていればOK!
- サーバーの起動と合わせてApacheが起動するように設定する
sudo systemctl enable httpd.service
3.DBサーバーの構築
プライベートサブネット作成
- RDSのサービス仕様として、事前にAZが異なるプライベートサブネットを2つ作成する必要があります。
- ciderが「10.0.20.0/24」のプライベートサブネット①と「10.0.21.0/24」のプライベートサブネット②の2個分を同様の手順で作成します。

RDS(MySQL)の作成
- EC2のダッシュボードにいき、新規セキュリティグループの作成をします。
- MySQL/Aurora(3306)のポートに対して、先ほど作成したEC2(Webサーバー)のセキュリティグループから接続許可をするようなセキュリティグループを作成します。

💡 補足
RDS作成時に事前にWebサーバーからRDSに接続するためのSGを作成する!忘れるとうまく接続できない!
- マネジメントコンソールでRDSの管理画面にいき、新規DBを作成します。
- 上記で作成したセキュリティグループをアタッチします。
- 作成時の「マスターユーザー」と「パスワード」は後で使用するので確認しておきます。
WebサーバーからRDSに接続
- SSHでEC2(Webサーバー)に接続します
- MySQLコマンドをWebサーバーにインストール
sudo dnf install mariadb105
MySQL コマンドラインクライアントのインストール – Amazon Relational Database Service
- マネジメントコンソールでRDSのエンドポイントの確認し、WebサーバーからRDSに接続する
mysql -h **エンドポイントURL** -u **root(DBユーザ名)** -p
>パスワード入力
4.WordPressの構築
WordPress用のデータベースの設定
- 上記と同じ手順でEC2(Webサーバー)からRDSに接続します。
- データベースをの中身を確認します。 RDS作成時に作成したデータベースが表示されます。もしなければ、CREATEします。
SHOW DATABASES;
CREATE DATABASE aws_wp_mysql_db; # データベース
- ユーザーの作成をします。(パスワードあり)
CREATE USER 'ユーザー名'@'%' IDENTIFIED BY 'パスワード';
- データベースへの操作権限を付与します。
GRANT ALL ON データベース名.* TO 'ユーザー名'@'%';
- 設定を反映させます。
FLUSH PRIVILEGES;
- 接続を切ります。
exit;
WordPressのインストール
- phpのインストールします。
sudo dnf install php
- phpのパッケージをインストールします。
sudo dnf install php-fpm php-mysqli php-json php php-devel
- WordPressをホームにインストールして解凍します。
cd ~
wget <https://ja.wordpress.org/latest-ja.tar.gz>
tar xzvf latest-ja.tar.gz
- Apacheの公開フォルダ配下にファイルをコピーしてApacheに参照権限を与えます。
cd wordpress/
sudo cp -r * /var/www/html/
sudo chown apache:apache /var/www/html/ -R
- Apacheを再起動して設定を反映させます。
sudo systemctl restart httpd.service
WordPressの設定
- Webサーバー(EC2)のパブリックIPにアクセスします。
- 初期設定画面でWordpressの設定情報(DB情報)を入力。
※データベースのホスト名はRDSのエンドポイント - 設定が完了すると、WordPressの管理画面が表示されます。
