0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

AWSでWordPressサイトを構築メモ

Last updated at Posted at 2025-08-30

大阪事業所の西野です!
1年ほどAWSの勉強(主に資格)をしてきましたが、理解をより深めるためwordpressのサイトをAWS上に構築してみようと思います。

1.構成

今回の構成はシンプルで、WebサーバーにはインターネットからSSHで接続し、RDSをプライベートサブネットに配置。WordPressをインストールしたWebサーバーからのみリクエストを受け付ける形になっています。

スクリーンショット 2024-10-21 22.34.22.png

2.構築

2-1 VPCの作成

まずはVPCを作成します。設定値は以下の通りです。

項目 設定値
名前タグ start-aws-vpc
IPV4CIDR範囲 10.0.0.0/16

2-2 サブネットの作成

Public Subnet(Webサーバー用)と、Private Subnet(RDS用)を作成します。冗長性のため、Private Subnetは異なるAZにも配置します。

・Public Subnet

項目 設定値
名前タグ start-aws-public-subnet
AZ us-west-2a
IPV4CIDR範囲 10.0.10.0/24

・Private Subnet1
冗長性を確保するため異なるAZに作成します。

項目 設定値
名前タグ start-aws-private-subnet
AZ us-west-2a
IPV4CIDR範囲 10.0.20.0/24

・Private Subnet2

項目 設定値
名前タグ start-aws-private-subnet
AZ us-west-2b
IPV4CIDR範囲 10.0.21.0/24

こんな感じ
スクリーンショット 2024-10-21 21.05.52.png

2-3 EC2の作成

EC2は無料枠のAMIとインスタンスタイプを使用し、先ほど作成したPublic Subnetに配置します。インターネット接続の設定は以下の通りです。

・インターネットゲートウェイをVPCにアタッチ
・ルートテーブルの送信先を 0.0.0.0/0 に設定
・セキュリティグループで22番ポート(SSH)を許可

インスタンスを起動させて、SSH接続できるか疎通確認を行います。ターミナルで以下のコマンドでEC2作成時に生成されたキーペアを使用してパブリックIPを指定します。

ssh -i ~/Desktop/start-aws-keypair.pem ec2-user@'IPアドレス'

接続に成功したらこんな感じになります。

  ,     #_
   ~\_  ####_        Amazon Linux 2
  ~~  \_#####\
  ~~     \###|       AL2 End of Life is 2025-06-30.
  ~~       \#/ ___
   ~~       V~' '->
    ~~~         /    A newer version of Amazon Linux is available!
      ~~._.   _/
         _/ _/       Amazon Linux 2023, GA and supported until 2028-03-15.
       _/m/'           https://aws.amazon.com/linux/amazon-linux-2023/


問題なく接続できました。

IPを自動割り当てしているのでssh接続時に指定するipは都度変更される

2-4 Apachのインストール

Ec2でWebサービスを公開するためにApachをインストールします。 以下のコマンドでインストールします。

①httpdがApachの実行ファイルになります。

sudo yum install httpd -y

②インストールできたら起動します。

sudo systemctl start httpd.service

③実行できているか念のため確認します。

sudo systemctl status httpd.service

上記コマンドでActiveのステータスがActiveならApachの起動は完了です。

2-5 RDSの作成

DBインスタンスのインストールを行います。設定値は以下の通りです。
項目 設定値
エンジン名 MySQL
テンプレート 開発/テスト
DBインスタンスサイズ db.t4g.micro
サブネット名 start-aws-vpc
セキュリティグループ start-aws-dg-sg

セキュリティグループはWebサーバーからのリクエストのみを許可します。

2-6 webサーバーとの疎通確認

WebサーバーにMySQLをインストールし、MySQLに接続して疎通確認を行います。
sudo yum -y install mysql
mysql -h start-aws-mysql,,,-u root -p

3.wordpressのインストール

wordpress用のDBの設定を行います。
DBはすでに作成しているので、操作するためのユーザーを作成して権限を与えます。

# 'start_aws' という名前のユーザーを作成し、任意のホストから接続できるようにする
MySQL [(none)]> CREATE USER 'start_aws'@'%' IDENTIFIED BY 'password';

# 'start_aws' ユーザーに 'start_aws_dev' データベースの全てのテーブルに対するすべての権限を付与
MySQL [(none)]> GRANT ALL ON start_aws_dev.* TO 'start_aws'@'%';

権限が反映されたことを確認します。

MySQL [(none)]> SELECT user, host FROM mysql.user;
+--------------------+-----------+
| user               | host      |
+--------------------+-----------+
| rds_superuser_role | %         |
| root               | %         |
| start_aws          | %         |
| mysql.infoschema   | localhost |
| mysql.session      | localhost |
| mysql.sys          | localhost |
| rdsadmin           | localhost |
+--------------------+-----------+

インストール自体は下記の流れで行いました。

# WordPressをインストールするための最新の日本語版ファイルをダウンロード
wget https://ja.wordpress.org/latest-ja.tar.gz

# ダウンロードしたWordPressディレクトリに移動
cd wordpress

# WordPressの全ファイルを/var/www/html/にコピー
sudo cp -r * /var/www/html/

# コピーしたファイルとディレクトリの所有者をApacheに変更
sudo chown apache:apache /var/www/html/ -R

# Apacheを再起動して設定を反映
sudo systemctl restart httpd.service

この辺は試行錯誤しましたが上記でインストールが完了しました。

パブリックIPにアクセスするとwordpressのログイン画面が表示されるので作成したDBの情報を入力します。

スクリーンショット 2024-10-21 21.57.30.png

ログインするとwordpressサイトが表示されました。無事に成功です!
スクリーンショット 2024-10-21 22.00.55.png

4.まとめ

構成がシンプルだったので比較的スムーズに構築することができました。
ルーティングやインスタンス間の関係性などは実際に作業すると理解がしやすく勉強になりました。他にも色々なAWSサービスを実際に触って勉強を続けてみようと思います!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?