本記事について
本記事は AWS 初学者の私が学習していく中でわからない単語や概要をなるべくわかりやすい様にまとめたものです。
もし誤りなどありましたらコメントにてお知らせいただけるとありがたいです。
前々回の記事
https://qiita.com/kou1121/items/1e2660087e09f0070a6d
前回の記事
https://qiita.com/kou1121/items/aefb40e32dffb10fe678
最終作成図
RDSのサイトアドレスをロードバランサーのDNS名に書き換える
WebServer1 または WebServer2にSShでログインしてください
rootユーザーになってcdコマンドでhtmlディレクトリに移動してください
mysql -h RDSのエンドポイント -u wordpress -p
パスワードを求められますのでパスワード入力してください
上のような画面になりMySQLを動かせるようになると思います
次にワードプレスのテーブルを使用するので
USE wordpress
次に下のコマンドを実行すると
SELECT * FROM wp_options WHERE option_name IN ('siteurl', 'home');
httpの後ろがパブリックアドレスになっているのでこちらを変更します
次のコマンドを打ってください
UPDATE wp_options SET option_value = 'http://ロードバランサーのDSN名' WHERE option_name IN ('siteurl', 'home');
ではここまで来たらさきほどコピーしたロードバランサーのDSN名をブラウザー打ち込むとブログが閲覧できると思います。
このように見えますが下線部分(赤)のところが何度か更新ボタンをクリックするとWebServer1 または WebServer2 に変わると思います。
これでロードバランサーで振り分けできることが確認できます
ロードバランサーのセキュリティグループのみの通信にする
今現在はすべての80番通信が許可されている状態になっていますのでそれをロードバランサーのセキュリティグループのみに設定します
AWSマネジメントコンソールからEC2を選択
左ペインよりセキュリティグループを選択
上にあるフィルタリングにてWeb-SG-1を検索してチェック入れてください
インバウンドルールを確認すると
今現在はHTTP通信がすべて許可されていると思います(0.0.0.0/0となっていればすべてです)
Edit inbound rulesをクリック
インバウンドルール画面に行きましたら
タイプがHTTPであるものを削除してください
ルールを追加をクリックしてHTTPを選択しCIORブロック(🔍のところ)にロードバランサーのセキュリティグループを入れてください
これでルールを保存をクリック
出来ましたらロードバランサーのDNSでサイトが見れるか確認をしてください
EC2をシャットダウンして障害テストをしてみる
AWSマネジメントコンソールからEC2を選択
左ペインよりインスタンスを選択
インスタンス画面よりWebServer1を停止します
そうするとWebServer2のみでブログが見れていることが確認できます。(なんども更新ボタンを押してみてください)
これで仮にWebServer1が何かしらの障害が起きてもWebServer2で見れることとなります
念のためにWebServer1を再開してみるとWebServer1とWebServer2に振り分けが出来ていると思います
RDSも冗長化構成にしてみる
AWSマネジメントコンソールからRDSを選択
左ペインよりデータベースを選択
database-1(自分が作ったデータベース)のラジオボタンチェックして上にある変更をクリック
DB インスタンスを変更画面に行きましたら
下に行き
可用性と耐久性のところの
スタンバイインスタンスを作成するのラジオボタンチェックを入れてください
この状態で下にある続行をクリック
次の画面に行きまして
変更のスケジュールの欄がありますので
今すぐにチェックを入れてください
下にあるDBインスタンスを変更をクリック
ステータスが変更中になっているのでしばらく待ちます
利用可能になりましたら
database-1を右側にスライドするとマルチAZありになっていると思います
ではRDSがマルチAZでフェイルオーバーするか再起動をします
※フェイルオーバーとは、「予備も一緒に動かしている(ホットスタンバイ)システムにおいて、メインサーバーに障害が発生したときに自動的に予備サーバーに切り替えてくれる機能」を指します。
database-1クリックして
アクションから再起動を選択してください
次の画面に行くとフェイルオーバーで再起動しますが?の部分にチェックを入れて
下にある確認をクリック
サイト見てみると変わらず見れることが確認できると思います
実際にフェイルオーバーしているか確認するには
database-1クリックしてログとイベントをクリックして
最近のイベントを確認
Multi-AZ instance failover startedと書かれています(赤枠)
Google翻訳すると
マルチAZインスタンスのフェイルオーバーが開始されました(これくらい読めるようになりたい・・・)
となっています
ちなみに後ろに行くほど新しいログのようです
最後に
ふ~~
終わった~~
なんか色々できるようになりました><
まだ不勉強な点があると思いますがこれからも頑張りたいと思います!!
またこの記事は AWS 初学者を導く体系的な動画学習サービス「AWS CloudTech」を見て作成しました。
https://aws-cloud-tech.com/