NEWSニュース&ブログ

基礎からすぐできるAWS 簡易ブログシステムの構築5

この記事は最終更新から10年以上経過しています。内容が古くなっている可能性があります。

投稿日:2015/4/3

基礎からすぐできるAWSと題した簡易ブログシステム構築の5回目です。今回が最終回になります。前回はDBサーバーインスタンス作成~接続確認~NATサーバーインスタンス作成~疎通確認を実施しました。
今回はMySQLインストール~WordPressインストール~WordPress設定を行います。

参考文献

今回実施する内容は下記文献を参考としております。手順の詳細などは本書籍を参照してください。
Amazon Web Services 基礎からのネットワーク&サーバ構築

検証で構築する環境と実施する内容

AWS上にVPCを一つ作成し、その中に公開用のVPCサブネットとプライベートのVPCサブネットを作成します。公開用のVPCサブネットにはWebサーバとDBサーバのインターネット接続用NATサーバを構築します。プライベートのVPCサブネットにはDBサーバを構築します。
作業は検証環境の作業端末から接続します。

・検証環境の構成図

図1 構成図
・実施内容

AWSにアカウントが作成されているものとします。(今回は⑮~⑰まで。)
① VPC作成
② VPCサブネット作成
③ インターネットゲートウェイ作成
④ ルートテーブル作成
⑤ インスタンス作成(Webサーバ)
⑥ インスタンス接続
⑦ Webサーバーインストール
⑧ ファイアウォール(セキュリティグループ)設定
⑨ DNS名前解決設定
⑩ インスタンス作成(DBサーバ)
⑪ インスタンス接続(Webサーバ経由)
⑫ インスタンス作成(NATサーバ)
⑬ NATインスタンス起動
⑭ NATインスタンス疎通確認
⑮ MySQLインストール(DBサーバ)
⑯ WordPressインストール(Webサーバ)
⑰ WordPress設定

では⑮から見ていきます。  

⑮ MySQLインストール(DBサーバー)

WordPressのデータを格納するために、DBサーバーにMySQLをインストールします。

(1)MySQLインストール
DBサーバーにログインし、ec2-userで以下のコマンドを実行します。
sudo yum -y install mysql-server
[ec2-user@ip-10-0-2-10 ~]$ sudo yum -y install mysql-server
Loaded plugins: priorities, update-motd, upgrade-helper
amzn-main/latest                                                                                     | 2.1 kB     00:00
amzn-main/latest/group                                                                               |  35 kB     00:00
amzn-main/latest/primary_db                                                                          | 3.1 MB     00:00
amzn-updates/latest                                                                                  | 2.3 kB     00:00
amzn-updates/latest/group                                                                            |  35 kB     00:00
amzn-updates/latest/updateinfo                                                                       | 197 kB     00:00
amzn-updates/latest/primary_db                                                                       | 494 kB     00:00
Resolving Dependencies
--> Running transaction check
---> Package mysql-server.noarch 0:5.5-1.6.amzn1 will be installed
--> Processing Dependency: mysql55-server >= 5.5 for package: mysql-server-5.5-1.6.amzn1.noarch
--> Running transaction check
---> Package mysql55-server.x86_64 0:5.5.40-1.3.amzn1 will be installed

(中略)

============================================================================================================================
 Package                              Arch                Version                           Repository                 Size
============================================================================================================================
Installing:
 mysql-server                         noarch              5.5-1.6.amzn1                     amzn-main                 2.8 k
Installing for dependencies:
 mysql55                              x86_64              5.5.40-1.3.amzn1                  amzn-updates              7.5 M

(中略)
Total download size: 23 M
Installed size: 80 M
Downloading packages:
(1/13): mysql-server-5.5-1.6.amzn1.noarch.rpm                                                        | 2.8 kB     00:00
(2/13): mysql55-5.5.40-1.3.amzn1.x86_64.rpm                                                          | 7.5 MB     00:01

(中略)
Installed:
  mysql-server.noarch 0:5.5-1.6.amzn1

Dependency Installed:
  mysql55.x86_64 0:5.5.40-1.3.amzn1                             mysql55-common.x86_64 0:5.5.40-1.3.amzn1
  mysql55-libs.x86_64 0:5.5.40-1.3.amzn1                        mysql55-server.x86_64 0:5.5.40-1.3.amzn1
  perl-Compress-Raw-Bzip2.x86_64 0:2.061-3.11.amzn1             perl-Compress-Raw-Zlib.x86_64 1:2.061-4.1.amzn1
  perl-DBD-MySQL.x86_64 0:4.023-5.17.amzn1                      perl-DBI.x86_64 0:1.627-4.8.amzn1
  perl-Data-Dumper.x86_64 0:2.145-3.5.amzn1                     perl-IO-Compress.noarch 0:2.061-2.12.amzn1
  perl-Net-Daemon.noarch 0:0.48-5.5.amzn1                       perl-PlRPC.noarch 0:0.2020-14.7.amzn1

Complete!


(2)MySQLを起動します。
sudo service mysqld start
[ec2-user@ip-10-0-1-10 ~]$ sudo service mysqld start
(中略)
                                                           [  OK  ]
Starting mysqld:                                           [  OK  ]
プロセスが起動していることを確認します。
[ec2-user@ip-10-0-1-10 ~]$ ps -ef | grep mysqld

root      2620     1  0 04:36 pts/0    00:00:00 /bin/sh /usr/bin/mysqld_safe --datadir=/var/lib/mysql --socket=/var/lib/mysql/mysql.sock --pid-file=/var/run/mysqld/mysqld.pid --basedir=/usr --user=mysql
mysql     2815  2620  0 04:36 pts/0    00:00:00 /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin --user=mysql --log-error=/var/log/mysqld.log --pid-file=/var/run/mysqld/mysqld.pid --socket=/var/lib/mysql/mysql.sock
ec2-user  2846  2241  0 04:37 pts/0    00:00:00 grep mysqld


(3)MySQL に接続するrootユーザ(※)のPWを設定します。
※LinuxOSのrootユーザと異なります。
[ec2-user@ip-10-0-2-10 ~]$ mysqladmin -u root password
New password:*****
Confirm new password:*****


(4)rootユーザでMySQL に接続します。
[ec2-user@ip-10-0-2-10 ~]$ mysql -u root -p
Enter password:*****
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.5.40 MySQL Community Server (GPL)

Copyright (c) 2000, 2014, 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>


(5)DB作成
「blogdb」というDB名でデータベースを作成します。
mysql> CREATE DATABASE blogdb DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
Query OK, 1 row affected (0.00 sec)


(6)DB接続ユーザ作成
全てのホストから接続可能な「user1」というユーザを作成し、blogdbに対する全ての権限を与えます。
mysql> grant all on blogdb.* to user1@"%" identified by 'user1';
Query OK, 0 rows affected (0.00 sec)


(7)作成したDBユーザの権限をMySQLに反映します。
設定した権限をMySQLに反映するため、以下のコマンドを実行します。
mysql> flush privileges;;
Query OK, 0 rows affected (0.00 sec)


(8)DBユーザの確認
作成したDBユーザの確認をします。「user1」で作成されていることが確認できます。
mysql> select user,host from mysql.user;
+-------+--------------+
| user  | host         |
+-------+--------------+
| user1 | %            | ★
| root  | 127.0.0.1    |
| root  | ::1          |
|       | ip-10-0-2-10 |
| root  | ip-10-0-2-10 |
|       | localhost    |
| root  | localhost    |
+-------+--------------+
7 rows in set (0.00 sec)

mysql>exit


(9)MySQL 自動起動設定
DBサーバー起動時に、MySQLを自動起動するよう設定します。
[ec2-user@ip-10-0-2-10 ~]$ sudo /sbin/chkconfig mysqld on

[ec2-user@ip-10-0-2-10 ~]$ chkconfig --list mysqld
mysqld          0:off   1:off   2:on    3:on    4:on    5:on    6:off
「3:on」と表示されており、自動起動の設定が確認できました。

⑯ WordPressインストール(Webサーバー)

WordPressをWebサーバーにインストールします。
WordPressのインストールについての詳細は以下を参照してください。
https://ja.wordpress.org/


(1)WordPressで使用するPHP・PHPライブラリをWebサーバーにインストールします。
Webサーバーにログインし、ec2-userで以下のコマンドを実行します。
sudo yum -y install php php-mysql php-mbstring
(出力結果省略)

 


(2)DBサーバーのMySQLへの接続用にWebサーバーにMySQLをインストールします。
sudo yum -y install mysql
(出力結果省略)

 


(3)MySQLに接続確認をします。
mysql -h 10.0.2.10 -u user1 -p
[ec2-user@ip-10-0-1-10 ~]$ mysql -h 10.0.2.10 -u user1 -p
Enter password:*****
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 4
Server version: 5.5.40 MySQL Community Server (GPL)

Copyright (c) 2000, 2014, 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>
mysql> exit

[ec2-user@ip-10-0-2-10 ~]$ exit
logout
Connection to 10.0.2.10 closed.
[ec2-user@ip-10-0-1-10 ~]$
無事接続できることを確認し、DBサーバーからログアウトします。

 



(4)WordPressインストール
WordPressのメディアをダウンロードし展開することで、Webサーバーにインストールできます。
[ec2-user@ip-10-0-1-10 ~]$ cd
[ec2-user@ip-10-0-1-10 ~]$ pwd
/home/ec2-user
[ec2-user@ip-10-0-1-10 ~]$ wget http://ja.wordpress.org/latest-ja.tar.gz

--2015-01-05 04:49:02--  http://ja.wordpress.org/latest-ja.tar.gz
Resolving ja.wordpress.org (ja.wordpress.org)... 66.155.40.249, 66.155.40.250
Connecting to ja.wordpress.org (ja.wordpress.org)|66.155.40.249|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 6620693 (6.3M) [application/octet-stream]
Saving to: ‘latest-ja.tar.gz’

100%[===================================================================================================================================================>] 6,620,693   5.26MB/s   in 1.2s

2015-01-05 04:49:03 (5.26 MB/s) - ‘latest-ja.tar.gz’ saved [6620693/6620693]

 

Zipファイルを展開し、「wordpress」ディレクトリが作成されていることを確認します。
[ec2-user@ip-10-0-1-10 ~]$ ll
total 6472
-r-------- 1 ec2-user ec2-user    1696 Dec 18 08:23 blog-system.pem
-rw-rw-r-- 1 ec2-user ec2-user 6620693 Dec 19 22:40 latest-ja.tar.gz ★

[ec2-user@ip-10-0-1-10 ~]$ tar xzvf latest-ja.tar.gz
total 6476
-r-------- 1 ec2-user ec2-user    1696 Dec 18 08:23 blog-system.pem
-rw-rw-r-- 1 ec2-user ec2-user 6620693 Dec 19 22:40 latest-ja.tar.gz
drwxr-xr-x 5 ec2-user ec2-user    4096 Dec 19 09:50 wordpress

 

「wordpress」ディレクトリ配下の全てをapacheが参照可能なディレクトリにコピーし、インストールします。
[ec2-user@ip-10-0-1-10 ~]$ cd wordpress

[ec2-user@ip-10-0-1-10 wordpress]$ sudo cp -r * /var/www/html/

[ec2-user@ip-10-0-1-10 wordpress]$ ls -la /var/www/html/
total 192
drwxr-xr-x  5 root root  4096 Jan  5 04:51 .
(中略)
drwxr-xr-x  9 root root  4096 Jan  5 04:51 wp-admin
-rw-r--r--  1 root root   271 Jan  5 04:51 wp-blog-header.php
-rw-r--r--  1 root root  5008 Jan  5 04:51 wp-comments-post.php
-rw-r--r--  1 root root  3727 Jan  5 04:51 wp-config-sample.php
drwxr-xr-x  5 root root  4096 Jan  5 04:51 wp-content
-rw-r--r--  1 root root  2956 Jan  5 04:51 wp-cron.php
drwxr-xr-x 12 root root  4096 Jan  5 04:51 wp-includes
-rw-r--r--  1 root root  2380 Jan  5 04:51 wp-links-opml.php
-rw-r--r--  1 root root  2714 Jan  5 04:51 wp-load.php
-rw-r--r--  1 root root 33435 Jan  5 04:51 wp-login.php
-rw-r--r--  1 root root  8252 Jan  5 04:51 wp-mail.php
-rw-r--r--  1 root root 11115 Jan  5 04:51 wp-settings.php
-rw-r--r--  1 root root 25152 Jan  5 04:51 wp-signup.php
-rw-r--r--  1 root root  4035 Jan  5 04:51 wp-trackback.php
-rw-r--r--  1 root root  3032 Jan  5 04:51 xmlrpc.php

 

アクセス権をapacheが更新可能に変更します。
[ec2-user@ip-10-0-1-10 ~]$ sudo chown apache:apache /var/www/html -R

[ec2-user@ip-10-0-1-10 wordpress]$ ls -la /var/www/html/
total 192
drwxr-xr-x  5 apache apache  4096 Jan  5 04:51 .
(中略)
drwxr-xr-x  5 apache apache  4096 Jan  5 04:51 wp-content
-rw-r--r--  1 apache apache  2956 Jan  5 04:51 wp-cron.php
drwxr-xr-x 12 apache apache  4096 Jan  5 04:51 wp-includes
-rw-r--r--  1 apache apache  2380 Jan  5 04:51 wp-links-opml.php
-rw-r--r--  1 apache apache  2714 Jan  5 04:51 wp-load.php
-rw-r--r--  1 apache apache 33435 Jan  5 04:51 wp-login.php
-rw-r--r--  1 apache apache  8252 Jan  5 04:51 wp-mail.php
-rw-r--r--  1 apache apache 11115 Jan  5 04:51 wp-settings.php
-rw-r--r--  1 apache apache 25152 Jan  5 04:51 wp-signup.php
-rw-r--r--  1 apache apache  4035 Jan  5 04:51 wp-trackback.php
-rw-r--r--  1 apache apache  3032 Jan  5 04:51 xmlrpc.php

 



(5)apacheを再起動し、PHPを有効化します。
[ec2-user@ip-10-0-1-10 wordpress]$ sudo service httpd restart
Stopping httpd:                                            [  OK  ]
Starting httpd:                                            [  OK  ]
以上で、WordPressのインストールは完了です。

⑰WordPress設定

WebサーバーにブラウザアクセスしWordPressの初期設定を行います。
初期設定後、ブログサイトにアクセスできることを確認します。

(1)WebサーバーのパブリックDNS名をブラウザURLに入力してWebサーバーにアクセスします。
WebサーバーのパブリックDNS名を確認します。

図2 WebサーバーのパブリックDNS名確認

 

ブラウザURLにパブリックDNS名を入力し、エンターを押します。
下記画面が表示されたら、「さあ、始めましょう!」をクリック。

図3 ブラウザURLに入力

 

(2)WordPressの初期設定を行います。
「データベース名」、「ユーザ名」、「パスワード」、「データベースのホスト名」を入力し
「送信」をクリックします。(テーブル接頭辞はデフォルト値)

図4 WordPress初期設定1

 

「インストール実行」をクリック

図5 WordPress初期設定2

 

「ようこそ」画面で「サイトのタイトル」、「ユーザ名」、「パスワード」、「メールアドレス」を入力後
「WordPressをインストール」をクリックします。

図6 WordPress初期設定3

 

「成功しました!」が表示されたら「ログイン」をクリックします。

図7 WordPress初期設定4

 

(3)WordPressにログインし、ブログサイトが表示できることを確認します。
以下の画面でユーザ名とパスワードを入力し「ログイン」を押します。

図8 WordPressログイン

 

「サイトを表示」をクリックします。

図9 サイトを表示

 

以下のようにブログサイトにアクセスできることが確認できました。

図10 サイトを表示

 

以上で、基礎からすぐできると題した簡易ブログシステムの構築が完了となります。
オンプレミス環境だと複数台のサーバーやネットワーク機器、ファシリティの用意などは簡単にできませんが、AWSを利用することで事前準備不要で、すばやく環境構築ができますので、すぐに手を動かすことで構成やシステムの理解が早まると感じました。

以上