こんにちは。「クロジカサーバー管理」コンサルティングチームの三谷です。
この記事は、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サーバー構成が実現できました。
コーポレートサイトをクラウドでセキュアに
無料ではじめるサーバー管理
クロジカガイドブック
- コーポレートサイト構築・運用の課題を解決
- クロジカサーバー管理の主な機能
- 導入事例
- 導入までの流れ