はじめに
前回の続きです。プラスアルファで冗長構成を組んでみましたので、参考にしてみてください。
構成図
今回のデモで追加したAWSリソース
・ELB(ALB)
・SecurityGroup(ELB用)(以降はSGと表記)
構築順序
1. ALB(ロードバランサー)の作成
2. RDSへhttp通信先の変更設定(EC2のIP→ALBのDNS名)
3. EC2のSG変更
4. EC2の冗長試験
5. RDSの冗長試験
構築
1. ALB(ロードバランサー)の作成
➀「ロードバランサー」画面右の「ロードバランサーの作成」→「ALBを作成」押下
➁「ロードバランサー名」:任意の名前を入力
➂「スキーマ」:「インターネット向け」を選択
➃「VPC」:自身の作成したVPCを選択
⑤「マッピング」:AZ及びサブネットについて、前回EC2を作成したAZ及びサブネットを選択
➅「SG」:ALB用のSGを作成し、選択
➆「ターゲットグループを作成」を押下
➇~⑬までは、「ターゲットグループ」の作成手順となる。
➇「ターゲットタイプの選択」:「インスタンス」を選択
➈「ターゲットグループ名」:任意の名前を入力
➉「VPC」:自身の作成したVPCを選択
⑪「次へ」押下
⑫「使用可能なインスタンス」:2つのEC2インスタンスにチェックを入れる。
※EC2インスタンスは起動中でないと、選択候補に表示されない。
⑬「保留中として以下を含める」押下
⑭「保留中のターゲットの登録」押下
⑮「デフォルトアクション」:上記で作成したターゲットグループを選択
⑯「ロードバランサーの作成」押下
2. RDSへhttp通信先の変更設定(EC2のIP→ALBのDNS名)
前提:2つの内、どちらかのEC2へログインする。
ここからは、下記のコマンドを実行
mysql -h <RDSエンドポイント名> -u <ユーザ名> -p
USE <DBテーブル名>
SELECT * FROM wp_options WHERE option_name IN ('siteurl', 'home');
UPDATE wp_options SET option_value = 'http://<ALBのDNS名>' WHERE option_name IN ('siteurl', 'home');
3. EC2のSG変更
➀EC2のSG画面にて、インバウンドルールへELBのSGからの通信を許可するよう設定
➁「ルールを保存」押下
4. EC2の冗長試験
➀起動中のEC2インスタンスの内、どちらか1つにチェックを入れる。
➁「インスタンスの状態」→「インスタンスを停止」押下
➂「停止済み」確認
5. RDSの冗長試験
➀RDSコンソール画面にて、「アクション」→「再起動」押下
➁「フェイルオーバーで起動しますか?」にチェックを入れる。
➂「確認」押下
➃「ログとイベント」にて、DBの再起動からマルチAZインスタンスへのフェイルオーバーが完了しているログを確認
最後に
冗長構成を作成する手順は、いつも通りCloudTechを参考にさせていただきましたが、思ったよりも簡単だったという印象でした。
ですが、本当に冗長されているのかブラウザ上の変化がなかったので、そこの部分の細工は必要だと感じましたので、ぜひ皆さんの作成の際は、そこまで意識して構築できると良いかもしれません(笑)