AMAZON AWSでWordPress構築 常時SSL対応-3

アマゾンAWSでwordpressを構築し、そして常時SSL化

アマゾンのAWSを使って、wordpressを構築する手順をご紹介します。
wordpressの表示が遅いのでアマゾンの無料枠(1年)を利用して高速なwordpressを構築したいと思います。なお、DNSはいくつかのパターンを掲載しますが、ここではDNSはアマゾンの「Route53」を使います。ちなみにDNS情報はこちらのサイトで確認出来ますのでご自身のDNS情報を念頭に置き設定をしてみてください。
アマゾンのRDSを利用して高速化を実現させます。

RDSを使用する理由はなぜ?

● MySQL と WordPress は同じサーバー上でコンピューティングリソースをめぐって競合し、サイトのパフォーマンスを低下させる可能性がある。● サイトの人気が高まるにつれて、WordPress サーバーを追加して WordPress を水平方向にスケーリングすることができない。
● データベースのバックアップやセキュリティのアップグレードを含む、すべてのデータベースのメンテナンスタスクを担当している。

データベースのセキュリティ設定手順

● ネットワークセキュリティ: 承認された IP アドレスからではないトラフィックを拒否することで、データベースインスタンスへのアクセスを制限します。
● パスワードによる認証と許可: アクセスのためにユーザー名とパスワードを要求することで、データベースへのアクセスを制限します。
次に示す手順で、これらの設定を行います。

ステップ1
EC2 インスタンスに RDS データベースへのアクセスを許可する

始めに、RDS データベースを変更して、EC2 インスタンスからのネットワークアクセスを可能にします。
ここまでのモジュールで、WordPress を使う EC2 インスタンスへの SSH および HTTP トラフィックを許可する、セキュリティグループの作成は完了しています。ここでも、それと同様の原則を適用していきます。今回許可しようとしているのは、EC2 インスタンスから RDS データベースへ向かう、一定のトラフィックです。
この設定には、AWS コンソールで [RDS データベース] を開きます。このラボの前出のモジュールで作成済みの、MySQL データベースをクリックします。
Module3-step1a
ディスプレイ上の [コネクティビティ & セキュリティ] タブまでスクロールし、[ VPC セキュリティグループ] に表示されているセキュリティグループをクリックします。
Module3-step1b
ご自身のデータベース用に設定されたセキュリティグループが、コンソール上に表示されます。[インバウンド] タブを開き、[編集] ボタンをクリックして、セキュリティグループの修正を行います。
Module3-step1c
デフォルトのセキュリティグループのルールでは、そのグループ内にある他のすべてのインスタンスからの、インバウンドトラフィックを許可しています。しかし、WordPress がある EC2 インスタンスはこのセキュリティグループに属していないため、RDS データベースへのアクセス権がありません。
[タイプ] プロパティを [MYSQL/Aurora] に変更します。これにより、[プロトコル] と [ポート範囲] が適切な値に更新されます。
Module3-step1d
その後、現行のルールで設定されているセキュリティグループ値を削除し、代わりに「wordpress」と入力します。設定済みで利用可能なセキュリティグループが、コンソールに表示されます。
Module3-step1e
ここでの EC2 インスタンス用に定義したセキュリティグループ「wordpress」をクリックします。
Module3-step1f
クリックすると、セキュリティグループ ID にこの値が埋め込まれます。これで、定義したセキュリティグループにあるすべての EC2 インスタンスに、MySQL へのアクセス権が付与されます。
設定が完了したら、青い [保存] ボタンをクリックし、変更内容を保存します。
Module3-step1g

ステップ2
EC2 インスタンスへの SSH

この時点で、EC2 インスタンスには RDS データベースへのアクセス権が付与されています。ここからは、EC2 インスタンスに SSH によるトラフィックを送ると供に、いくつかの設定コマンドを実行します。
AWS コンソールで [EC2 インスタンス] ページを開きます。WordPress のインストール用に作成した EC2 インスタンスが表示されているはずです。それをクリックします。すると、[インスタンスの説明] に、IPv4 Public IPとラベル付けされたパブリック IP アドレスが表示されます。
Module3-step2a
インスタンスに SSH を送る際に必要となるので、この IP アドレスを記録しておきます。
ここまでの段階で、インスタンスのキーペア用に .pem ファイルはダウンロード済みなので、そのファイルを見つけます。これは多くの場合、デスクトップの [ダウンロード] フォルダーにあります。
Mac もしくは Linux ユーザーの場合:
ターミナルウィンドウを開きます。Mac をお使いの場合、デフォルトでインストール済みのターミナルプログラムを使うか、独自のターミナルを使うこともできます。
ターミナル上で次のコマンドを実行し、インスタンスに SSH を送ります。「<path/to/pem/file>」の部分はご自身のファイル名で置き換えます (例: ~/Downloads/wordpress.pem) 。また、「<publicIpAddress>」の部分は、ご自身の EC2 インスタンスのパブリック IP アドレスで置き換えます。

	chmod 600 <path/to/pem/file>
	ssh -i <path/to/pem/file> ec2-user@<publicIpAddress>

接続が成功した場合は、ターミナルに次のような表示が出力されます。
Module3-step2b
Windows ユーザーの場合:
EC2 インスタンス に接続するには、Windows 用の SSH クライアントである PuTTY が必要になります。この使用方法については、「PuTTY を使用した Windows から Linux インスタンスへの接続」での解説をご参照ください。ダウンロードした .pem file と、EC2 インスタンスのパブリック IP アドレスは、この後に必要となります。
このステップでは、SSH 経由で EC2 インスタンスに接続しました。次のステップでは、EC2 インスタンスから RDS データベースに接続し、WordPress アプリケーション用にデータベースユーザーを作成します。

ステップ3
データーベースユーザー作成

ターミナル上には、EC2 インスタンスに向けたアクティブな SSH セッションが確認できるはずです。ここからは、MySQL データベースへの接続を行います。
まず、データベースとのやり取りのため、ターミナルから次のコマンドを実行して、MySQL クライアントをインストールします。

sudo yum install -y mysql

次に、AWS コンソール上で RDS データベース用のホスト名を見つけます。ホスト名は、RDS データベースの詳細情報の [コネクティビティ & セキュリティ] セクションにある、[エンドポイント] に表示されています。
Module3-step3a
ターミナルから次のコマンドを入力し、MySQL ホストの環境変数を設定します。「<your-endpoint>」の部分は、RDS インスタンスのホスト名で置き換える必要があります。

export MYSQL_HOST=<your-endpoint>

その後、ターミナルから次のコマンドを実行し、MySQL データベースに接続します。「<user>」および「<password>」の部分は、RDS データベース作成時に定義したユーザー名とパスワードで、それぞれ置き換えます。

mysql --user=<user> --password=<password> wordpress

接続に成功するとターミナルには、次に示す画像のように、MySQL データベースへの接続が表示されます。
Module3-step3b
最後に、WordPress アプリケーションのためのデータベースユーザーを作成し、このユーザーにデータベース「wordpress」へのアクセス許可を付与します。
ターミナルで次のコマンドを実行します。

CREATE USER 'wordpress' IDENTIFIED BY 'wordpress-pass';
GRANT ALL PRIVILEGES ON wordpress.* TO wordpress;
FLUSH PRIVILEGES;
Exit

データベースの保護のためには、「wordpress-pass」より安全なパスワードを使うようにします。
ここで定義したユーザー名とパスワードは、次のモジュールで WordPress インストール時の設定用に必要となるので、書き留めておきます。
このモジュールでは、RDS データベース用にネットワークとパスワードでのセキュリティを設定する方法を解説しました。現在、EC2 インスタンスには RDS データベースへのネットワークアクセス権が付与されています。加えて、Wordpress アプリケーションで使用するためのデータベースユーザーも作成しました。
次のモジュールでは、EC2 インスタンスを WordPress アプリケーションが実行できるように設定していきます。