LoginSignup
1
0

More than 1 year has passed since last update.

40 代おっさん 冗長性のあるブログを構築してみた ③

Posted at

本記事について

本記事は AWS 初学者の私が学習していく中でわからない単語や概要をなるべくわかりやすい様にまとめたものです。
もし誤りなどありましたらコメントにてお知らせいただけるとありがたいです。

前々回の記事
https://qiita.com/kou1121/items/1e2660087e09f0070a6d

前回の記事
https://qiita.com/kou1121/items/aefb40e32dffb10fe678

最終作成図

RDSEC2冗長性.png

RDSのサイトアドレスをロードバランサーのDNS名に書き換える

WebServer1 または WebServer2にSShでログインしてください

rootユーザーになってcdコマンドでhtmlディレクトリに移動してください

mysql -h RDSのエンドポイント -u wordpress -p

パスワードを求められますのでパスワード入力してください

MySQL画面.PNG

上のような画面になりMySQLを動かせるようになると思います
次にワードプレスのテーブルを使用するので

USE wordpress

次に下のコマンドを実行すると

SELECT * FROM wp_options WHERE option_name IN ('siteurl', 'home');

2MySQL画面.PNG

httpの後ろがパブリックアドレスになっているのでこちらを変更します
次のコマンドを打ってください

UPDATE wp_options SET option_value = 'http://ロードバランサーのDSN名' WHERE option_name IN ('siteurl', 'home');

3MySQL画面.PNG

ではここまで来たらさきほどコピーしたロードバランサーのDSN名をブラウザー打ち込むとブログが閲覧できると思います。

ブログ閲覧.PNG

このように見えますが下線部分(赤)のところが何度か更新ボタンをクリックするとWebServer1 または WebServer2 に変わると思います。
これでロードバランサーで振り分けできることが確認できます

ロードバランサーのセキュリティグループのみの通信にする

今現在はすべての80番通信が許可されている状態になっていますのでそれをロードバランサーのセキュリティグループのみに設定します

AWSマネジメントコンソールからEC2を選択
左ペインよりセキュリティグループを選択
上にあるフィルタリングにてWeb-SG-1を検索してチェック入れてください
インバウンドルールを確認すると

インバウンド.PNG

今現在はHTTP通信がすべて許可されていると思います(0.0.0.0/0となっていればすべてです)
Edit inbound rulesをクリック

インバウンドルール画面に行きましたら
タイプがHTTPであるものを削除してください
ルールを追加をクリックしてHTTPを選択しCIORブロック(🔍のところ)にロードバランサーのセキュリティグループを入れてください

インバウンド編集.PNG

これでルールを保存をクリック

出来ましたらロードバランサーのDNSでサイトが見れるか確認をしてください

EC2をシャットダウンして障害テストをしてみる

AWSマネジメントコンソールからEC2を選択
左ペインよりインスタンスを選択
インスタンス画面よりWebServer1を停止します
そうするとWebServer2のみでブログが見れていることが確認できます。(なんども更新ボタンを押してみてください)
これで仮にWebServer1が何かしらの障害が起きてもWebServer2で見れることとなります
念のためにWebServer1を再開してみるとWebServer1とWebServer2に振り分けが出来ていると思います

RDSも冗長化構成にしてみる

AWSマネジメントコンソールからRDSを選択
左ペインよりデータベースを選択

database-1(自分が作ったデータベース)のラジオボタンチェックして上にある変更をクリック

DB インスタンスを変更画面に行きましたら

下に行き
可用性と耐久性のところの
スタンバイインスタンスを作成するのラジオボタンチェックを入れてください
この状態で下にある続行をクリック
次の画面に行きまして
変更のスケジュールの欄がありますので
今すぐにチェックを入れてください
下にあるDBインスタンスを変更をクリック
ステータスが変更中になっているのでしばらく待ちます
利用可能になりましたら
database-1を右側にスライドするとマルチAZありになっていると思います

マルチAZ.PNG

ではRDSがマルチAZでフェイルオーバーするか再起動をします
※フェイルオーバーとは、「予備も一緒に動かしている(ホットスタンバイ)システムにおいて、メインサーバーに障害が発生したときに自動的に予備サーバーに切り替えてくれる機能」を指します。

database-1クリックして
アクションから再起動を選択してください

次の画面に行くとフェイルオーバーで再起動しますが?の部分にチェックを入れて
下にある確認をクリック

DBインスタンスを再起動.PNG

サイト見てみると変わらず見れることが確認できると思います
実際にフェイルオーバーしているか確認するには

database-1クリックしてログとイベントをクリックして
最近のイベントを確認

最近のイベント.PNG

Multi-AZ instance failover startedと書かれています(赤枠)
Google翻訳すると
マルチAZインスタンスのフェイルオーバーが開始されました(これくらい読めるようになりたい・・・)
となっています
ちなみに後ろに行くほど新しいログのようです

最後に

ふ~~
終わった~~
なんか色々できるようになりました><
まだ不勉強な点があると思いますがこれからも頑張りたいと思います!!

またこの記事は AWS 初学者を導く体系的な動画学習サービス「AWS CloudTech」を見て作成しました。
https://aws-cloud-tech.com/

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0