次の通り王道の構成ですが、昔と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名にアクセスし、表示されるか確認する。