AWS環境のWordPress基本構成パターンを紹介 EC2 1台

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

また、今回紹介する構成は、WebサーバーとDBサーバーを一つのインスタンスで賄っているため、AWSのAMIという機能を使うことでクローンを作るのが非常に簡単です。
例えば、WordPressのバージョンを上げたり、大規模な変更のためにテスト環境を作りたい場合、現行のサイトをそのままコピーしてテスト環境を用意する場合、このマシンをコピーすれば完了するので、非常に楽です。その方法も後半で紹介していきます。

WordPress環境の作り方

まずは、EC2でインスタンス(Amazon Linux2)を建ててください。
この時、セキュリティグループの設定では、sshとhttpと最終的に必要になるhttpsが許可されるように設定してください。セキュリティ的にsshはマイIPなどで許可制にし、httpとhttpsはデフォルトのままにすることを推奨します。マイIPの場合は、今いる場所のネットワークからのみssh接続が許可されるようになります。

インスタンス作成後にターミナル(端末、コマンドプロンプト、windows powershellどれでもOKです)でsshログインします。初めてログインする時は、Are you sure you want to continue connecting (yes/no)?と聞かれるため、yesと入力してenterを押します。XXX.XXX.XXX.XXXにはパブリックIPが入ります。

ssh -i XXXXX.pem ec2-user@XXX.XXX.XXX.XXX
sudo su -

次のコマンドを順番に入力してください。
これらのコマンドを入力することで、LAMPサーバーに必要なApache(アパッチ)とMySQL(DB:データベース)とPHP(プログラミング言語)の環境が整います。

※LAMPのLはLinuxから来ており頭文字を取ってLAMPサーバーと呼ばれています。

  • Apache 最新版
  • MySQL ver.5.7
  • PHP ver.7.2

がインストールされます。

amazon-linux-extras install php7.2
yum localinstall https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm -y
yum-config-manager --disable mysql80-community
yum-config-manager --enable mysql57-community
yum install -y httpd php mysql-community-server

systemctl start httpd mysqld
systemctl enable mysqld httpd

MySQLにログインして、Wordpressに最低限必要な設定をします。mysql -uroot と入力してenterを押せば、通常であればログインできます。できなかった場合は、MySQLログイン後、MySQL内でWordpress用のDatabase、アカウント作成およびアカウントにwordpress Databaseへの全アクセス権限付与を次のコマンドでしていきます。このとき、wordpress DatabaseのIDはwpuserでPasswordはhogeです。任意の文字列にしてください。後でWordpressをインストールする時に使います。

CREATE DATABASE wordpress charset utf8;
GRANT ALL PRIVILEGES ON wordpress.* TO "wpuser"@"localhost" IDENTIFIED BY "hoge";
FLUSH PRIVILEGES;

WordPressをインストールします。次のコマンドを入力して実行すれば、インストールに必要なデータがダウンロードされます。その後、chromeなどのWebブラウザでhttp://×××.×××.×××にアクセスし、指示に従って先ほど作成したDatebaseのアカウント情報を入力してインストールは完了します。

cd /usr/local/src
wget https://wordpress.org/latest.tar.gz
tar -zxvf latest.tar.gz
mv wordpress/* /var/www/html/
chown -R apache: /var/www/html/

AMIを使ったWordpress環境のコピーインスタンスを建てる方法(テスト環境構築)

  1. WordPress環境の作り方で作ったインスタンスをAWSコンソールで表示し選択します。
  2. アクションをクリックし、その中のイメージの中のイメージの作成をクリックします。
  3. イメージ名とイメージの説明を入力して、イメージの作成をします。
  4. しばらく待つとWordPress環境の作り方のイメージ(AMI)が作成されます。
  5. 作成されたら、WordPress環境の作り方でインスタンスを建てた時と同じ手順で、AMIの選択のところでマイAMIの中のhoge-imgを選択し建てます。
  6. この手順で、IPアドレスは違いますが中身の同じインスタンスが作成されます。

おわりに

AWSをよく知らない人でも、WebサーバーとDBサーバーが同じEC2インスタンス内にあるWordpressサーバーを建てることができると思います。また、Wordpressのバージョンアップデートなど、本番環境を複数作りたい時にも簡単にサーバーをAMIを使って建てることができると思います。

付録

mysqlでログインできなかった人向けの話

cat /var/log/mysqld.log |grep "password" このコマンドを入力してあげると、以下のように初期パスワードが出てきます。以下の場合 hogehoge がパスワードです。

---略---
2019-01-30T07:32:31.484704Z 1 [Note] A temporary password is generated for root@localhost: hogehoge
2019-01-30T07:39:15.648617Z 2 [Note] Access denied for user 'root'@'localhost' (using password: NO)
---略---

初期パスワードを使ってMySQLログイン後パスワードを変更するよう指示されるので、以下のコマンドでMySQLにログインして変更します。

mysql -u root -p hogehoge
SET password for root@localhost=password('passwordPASSWORD');

テスト環境作成などでパスワードを短くしたければ、以下のコマンドを追加で実行してください。

SET GLOBAL validate_password_length=4;
SET GLOBAL validate_password_policy=LOW;
SET password for root@localhost=password('pass');

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

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

関連する解決策

最新記事

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

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