DBの高セキュリティ・冗長化が可能!AWSのWordPress構成を紹介 Webサーバー1台 RDS1台 

この記事は、AWS初心者向けAWS環境のWordPress基本パターン8つ作ってみたのパターン3の作成方法を紹介する記事です。そのまま真似をすれば誰でもAWSを使ってWordpressの入ったタイトル通りの構成のサーバーを建てる事ができます。

RDSでMySQLを構築

WordPressが参照するためのデータベースをおくために、RDSにMySQLを構築します。

1.AWSのコンソールへログインし、サービス→データベースからRDSを選択します。

データベースの作成を選択します。

エンジンはMySQLを選択。


ユースケースについては、テストにしておきます(次の設定値の初期値が変わるだけです)。

無料枠にチェックをつければ、無料枠対象の条件が直接入ります。各種設定については、以下を参照してください。

RDSでMysqlを構築してみましょう。まずは、awsへログインして、サービスのデータベースの項目からRDSへ。

初めはこのような画面だと思います。こちらから、Create databaseを選択。DBを作成します。

Mysql互換のAuroraやMaria、PostgresSQLがありますが、今回は純正のMysqlを使ってみます。

次の画面へ進むと、Auroraへの変更を勧められるのと、DBの利用用途を聞かれます。Mysqlで良いので下2つから選びますが、テストか本番かは次の設定値の初期値が変わるだけなので、ひとまずテストで選択します。

無料枠にチェックを入れているので消えていますが、チェックを外すと下部に月額料金の目安も表示されます。

t2microのec2インスタンスは月額$10.944くらいですので、少しDBのほうが高いです。

次の項目で詳細設定を行えます。項目が多いので、項目ごと軽い説明に留めますが、立てるだけならデフォルトの設定値で大丈夫です。

  • ネットワーク & セキュリティ
    DBを使用するインスタンスと基本的には同じVPCに配置して下さい。 もし別VPC空間に配置する場合にはIPでアクセス可能にする必要があります。
  • データベースの設定
    初期DBの設定です。接続ポートなどもここで指定できます。
  • 暗号化
    DBの暗号化です。 Engine または DB インスタンスクラスによっては選択できます。
  • バックアップ
    バックアップ設定を最大35日間設定でき、指定時間になったときに自動バックアップを取得できます。
    バックアップがいらない場合には0日で無効化できます。
  • モニタリング
    詳細モニタリングをONにすると、メモリやCPUの詳細なモニタリングが可能になります。
  • ログのエクスポート
    Amazon CloudWatch Logs にログを送ることができます。
  • メンテナンス
    自動マイナーアップデートを設定できます。
    アップデートによる不具合が不安な場合には切ることもできます。

これらの項目を設定して作成を完了させると、RDSのインスタンス画面より、作成中になっているインスタンスが表示されます。

作成中が利用可能に変われば作成完了です。基本的にデフォルトで大丈夫です。作成を選択し、DB インスタンスのステータスが利用可能になったらOKです。

WordPress用のEC2インスタンス作成

WordPressを動かすために、LAMP環境を構築したサーバーを作成します。以下の記事を参考にしてください。
AWS環境のWordPress基本構成パターンを紹介 Webサーバー1台・DBサーバー1台
必要なコマンドのみ列挙しておきます。

$ ssh -i [公開鍵].pem ec2-user@[IPアドレス]
[ec2-user@ ~]$ sudo su -
[root@ ~]# amazon-linux-extras install php7.2
[root@ ~]# yum localinstall https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm -y
[root@ ~]# yum-config-manager --disable mysql80-community
[root@ ~]# yum-config-manager --enable mysql57-community
[root@ ~]# yum install -y httpd php mysql-community-server
[root@ ~]# systemctl start httpd mysqld
[root@ ~]# systemctl enable mysqld httpd
Created symlink from /etc/systemd/system/multi-user.target.wants/mysqld.service to /usr/lib/systemd/system/mysqld.service.
Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service.
[root@ ~]# cd /var/www/html/
[root@ html]# wget https://ja.wordpress.org/latest-ja.tar.gz
[root@ html]# tar -xzvf latest-ja.tar.gz
[root@ html]# rm latest-ja.tar.gz

ドキュメントルートを変更します。

[root@ html]# vim /etc/httpd/conf/httpd.conf
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# DocumentRoot: The directory out of which you will serve your
# documents. By default, all requests are taken from this directory, but
# symbolic links and aliases may be used to point to other locations.
#
DocumentRoot "/var/www/html/wordpress"
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

EC2インスタンスからRDSへの接続

1.RDSに接続できるようにEC2インスタンスをセキュリティグループに登録します。


作成したRDSのセキュリティグループのInboundを選択します。インバウンド→編集から、先ほど作成したEC2インスタンスのパブリックIPアドレスとプライベートIPアドレスを許可します。固定IPの場合はマスクに/32をつけておきます。


接続の際に使うので、エンドポイントをコピーしておきます。

2.EC2インスタンスからRDSに接続できるかどうかテストしましょう。ssh接続してインスタンスに入ります。
リモートでRDS内部のMySQLに接続します。

[root@ ~]# mysql -h [エンドポイント] -P 3306 -u [USERNAME] -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 44
Server version: 5.6.40 Source distribution

Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

以上のように表示されたら成功です。

3.RDSのMySQLにWordPress用のDBを作成します。

mysql> CREATE DATABASE wpa001;
Query OK, 1 row affected (0.01 sec)

mysql> SHOW DATABASES;
+--------------------+
| Database |
+--------------------+
| information_schema |
| innodb |
| mysql |
| performance_schema |
| sys |
| wpa001 |
+--------------------+
6 rows in set (0.00 sec)

mysql> CREATE USER wpa_user IDENTIFIED BY 'Townin@0000';
Query OK, 0 rows affected (0.00 sec)

mysql> GRANT ALL ON wpa001.* TO wpa_user IDENTIFIED BY 'Towninc@0000';
Query OK, 0 rows affected (0.01 sec)

mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.01 sec)

wpa001というDBを作成し、wpa_userという専用のユーザを設定しました。
作成したユーザでDBにアクセスできたら成功です。

[root@ ~]# mysql -u wpa_user -p -h [エンドポイント]
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 49
Server version: 5.6.40 Source distribution

Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> SHOW DATABASES;
+--------------------+
| Database |
+--------------------+
| information_schema |
| wpa001 |
+--------------------+
2 rows in set (0.00 sec)

4.サーバーからWordPressの設定画面に飛んで、DBの情報を打ち込みます。


これでタイトル通りのWordPressサーバー構成が実現できました。

Webサイト におけるセキュリティのことなら、私達にご相談ください。

私たちは、Webサイトに必要な クラウド・CMS・セキュリティ対策 を提供するWordPressプラットフォーム「SiteCloud」を提供しています。豊富な知見を活かし、企業が管理・運営するコーポレートサイト をはじめとしたWebサイトの安全な環境をご提案します。
Webサイト管理・環境におけるセキュリティでお悩みの企業の方は、お気軽にご相談ください。

関連する解決策

最新記事

詳しい資料をご覧いただけます

SiteCloudのサービス内容を記載した資料をダウンロードできます。
SiteCloudの機能や事例が分かる
無料資料ダウンロード