初心に戻ってAWSでスケーラブルなウェブサイトを作成する


次の通り王道の構成ですが、昔とUIも変わってるということもあり、初心に戻ってAWSでスケーラブルなウェブサイトを作成する基礎の内容です。

1.VPCの作成

「VPCウィザードの起動」より設定を行います。

・ステップ 1: VPC 設定の選択
「1 個のパブリックサブネットを持つ VPC」を選択。

・ステップ 2: ステップ 2: 1 個のパブリックサブネットを持つ VPC
VPC:10.0.0.16 と アベイラビリティーゾーン 1aに パブリックサブネット-1a 10.0.0.0/24 を作成する。

追加で以下のサブネットを作成する。
アベイラビリティーゾーン 1cに パブリックサブネット-1c 10.0.1.0/24
アベイラビリティーゾーン 1aに プライベートサブネット-1a 10.0.2.0/24
アベイラビリティーゾーン 1cに プライベートサブネット-1c 10.0.3.0/24

パブリックサブネット-1c のルートテーブルを パブリックサブネット-1a と同じルートテーブルに所属させる。

2.EC2インスタンスの作成(WordPress)

パブリックサブネット-1a に次のユーザーデータを追加し、EC2インスタンスを起動させる。

#!/bin/bash

yum -y update
amazon-linux-extras install php7.2 -y
yum -y install mysql httpd php-mbstring php-xml

wget http://ja.wordpress.org/latest-ja.tar.gz -P /tmp/
tar zxvf /tmp/latest-ja.tar.gz -C /tmp
cp -r /tmp/wordpress/* /var/www/html/
chown apache:apache -R /var/www/html

systemctl enable httpd.service
systemctl start httpd.service

次のセキュリティグループを開けておく。
・22
・80

wordpressが起動するか確認だけしておく。

3.RDSの作成(MySQL)

rds用のセキュリティグループを作成する。
・3306 EC2インスタンスからのアクセスのみを許可する。

DBサブネットグループを作成する。
プライベートサブネット-1a 10.0.2.0/24プライベートサブネット-1c 10.0.3.0/24

プライベートサブネット-1a にrdsインスタンス(MySQL)を作成する。

4.ALBの作成

パブリックサブネット-1a 10.0.1.0/24パブリックサブネット-1c 10.0.1.0/24 に作成する。

albのセキュリティグループを新しく作成し開けておく。
・80

ターゲットグループのパスは、次のとおりとする。
/wp-includes/images/blank.gif

【2.EC2インスタンスの作成(WordPress)】で作成したEC2インスタンスをアタッチし、status が healthy になるまで待つ。

alb のDNS名にアクセスし、表示されるか確認する。

5.WordPressの作成

データベースの設定などWordPressの初期設定を行い、
ELB - EC2 - RDSの構成で作成したブログにアクセスできることを確認する。

データベースの接続する為にRDSで作成した、ユーザー名、パスワード、データーベースのホスト名(エンドポイント)を入力する。

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

必要事項を入力し、「WordPressをインストール」をクリック。

↑の必要事項で入力した情報で、wordpressにログインできるか表示されるか最後に確認する。

6.AMIの作成と起動

「2.EC2インスタンスの作成(WordPress)」で作成したEC2インスタンスのAMIを作成します。
*1点注意点ですが、「再起動しない」にチェックが入っていません。すなわちイメージの作成中に再起動が発生します。

作成したAMIを使って、パブリックサブネット-1c 10.0.1.0/24にEC2インスタンスを作成する。

ALBのターゲットグループにAMIで作成したEC2インスタンスを追加。

ここまでで、EC2の冗長構成をし、負荷分散がされていることが確認できました。

7.RDSのマルチAZ配置

【3.RDSの作成(MySQL)】で作成したRDSをマルチAZにします。

次から可用性について確認していきます。

8.可用性

ここでは、EC2インスタンスの停止やRDSのフェイルオーバー行い、障害時の動作について確認していきます。

1.「パブリックサブネット-1a 10.0.0.0/24」で作成したEC2インスタンスを停止しても、albのDNS名にアクセスし、表示されるか確認する。

2.RDSを再起動し、albのDNS名にアクセスし、表示されるか確認する。