今回の記事について
この記事はAWS初学者を導く体系的な動画学習サービス
「AWS CloudTech」の課題カリキュラムで作成しました。
https://aws-cloud-tech.com
前回の続き
前回の記事の続きになります。
前回作成した環境に構築していきますので、まずはこちらをご覧ください。
今回やる事
・もう片方のAZへAMIを使ってEC2を作成
・ELBの設置
・片方のEC2を停止してもwordpressサイトが表示されるか、ELBがちゃんと機能するか確認
・RDSのフェイルオーバーができるか確認
環境
macOS Big Sur バージョン11.2.2
構成図
もう片方のAZへAMIを使ってEC2を作成
まずAMIを作成する前に、ELBを設置してそれぞれのEC2サーバーを切り替えた時の表示を区別したいので、Web Server1, Web Server2という文字をそれぞれのEC2へ書き込む。
なので手順としては
1、既存のEC2へWeb Server 1という文字を書き込み
2、EC2のAMIを作成し、別のパブリックサブネットにEC2を作成する
3、手順1と同じように今度はWeb Server 2という文字を書き込む
1、既存のEC2へWeb Server 1という文字を書き込み
EC2へログイン
cd /var/www/html
sudo vi index.php
echo '<p>Web Server 1</p>';
(下記画像のように記入)
2、EC2のAMIを作成し、別のパブリックサブネットにEC2を作成する
・一度EC2を停止
・アクション⇨イメージとテンプレート⇨イメージを作成
・イメージ名を入力し、イメージを作成
・左ペインのAMIで状態がpendingからavailableになったら、AMIを使ってEC2インスタンスを起動
・もう一つのパブリックサブネットに作成する
3、手順1と同じように今度はWeb Server 2という文字を書き込む
AMIで作成したEC 2にログインし、/var/www/html/index.php ファイルを開く
echo '<p>Web Server 2</p>';
に変更。
ELBの設置
ALBの作成
手順1 ロードバランサーの設定
・基本的な設定
名前:任意の名前
スキーム:インターネット向け
IPアドレスタイプ:Ipv4
・リスナー設定
HTTP 80
・アベイラビリティーゾーン
VPC、各ゾーンのパブリックサブネットを選択
手順2 セキュリティ設定の構成
リスナーでHTTPSの設定をしていなければ、注意画面が出るが、あとで設定できるのでここはひとまず次へ進む
手順3 セキュリティグループの設定
新規作成でLB用のSGを作りましょう。
設定はデフォルトのまま、とりあえずポート80をフルオープンでOKです。
手順4 ルーティングの設定
・ターゲットグループ
ターゲットグループの名前設定:任意の名前
ターゲットの種類:インスタンス
プロトコル:HTTP
ポート:80
プロトコルバージョン:HTTP1
・ヘルスチェック
プロトコル:HTTP
パス:指定したファイルを作成する必要がある
例:/readme.html で設定した場合
インスタンス内の/var/www/html配下にreadme.htmlファイルを作成する必要がある(何か書き込んだファイル)
・ヘルスチェックの詳細設定
デフォルトもしくは任意の設定
手順5 ターゲットの登録
設定したパブリックサブネットのそれぞれのインスタンスを登録済みに追加する
手順6 確認
設定した項目を確認し、問題なければ作成
ターゲットグループの欄に移動し、作成したターゲットグループを選択
Targetsの部分のHealth StatusがHealthyになってればヘルスチェック完了してる。
*うまくいってなければ、パスを確認してみてください
片方のEC2を停止してもwordpressサイトが表示されるか、ELBがちゃんと機能するか確認
・RDSの中に設定されているサイトアドレスをELBのDNS名に書き換える
手順1 どちらかのウェブサーバーにログインし、RDSに接続する
mysql -h RDSのエンドポイント -u wordpress -p
⇨パスワード入力
手順2 ワードプレスのテーブルを選択
USE wordpress
手順3 現在の設定を確認
SELECT * FROM wp_options WHERE option_name IN ('siteurl', 'home');
手順4 テーブルのアドレスを変更
UPDATE wp_options SET option_value = 'http://xx.xx.xx.xx' WHERE option_name IN ('siteurl', 'home');
*xx.xx.xx.xxの部分にELBのDNS名を入力
再び手順3で書き変わっているか確認する
・DNS名をブラウザに打ち込みブログが表示されるか確認
何度か更新ボタンを押して、WebServer1, WebServer2がランダムに表示されればELBが機能している証拠
補足1:
EC2のセキュリティグループの設定でHTTPフルオープンの代わりに、ELBのセキュリティグループからの通信のみを許可する設定にする
変わらず接続できればOK
補足2
試しにEC2を一台停止して、変わらずウェブサイトが表示されるか確認。
片方のインスタンスに障害が起きても、もう片方のインスタンスが接続されることが確認できればOK
RDSのフェイルオーバーができるか確認
RDSの設定を変更
マルチAZ配置欄で「スタンバイインスタンスを作成する」にチェック
次へ進む
今回はデモなので、今すぐ変更にチェックをし、変更ボタンを押す。
RDSを再起動してみる
アクション⇨再起動⇨「フェイルオーバーで再起動しますか?」にチェックを入れ再起動
フェイルオーバーされたか確認
RDSのログとイベントで「Multi-AZ instance failover completed」になってればフェイルオーバー出来たことが確認できる
次回の記事


