AWSブログサービスを構築する(1)の続きです。
2021/08/02 追記しました
教材
この記事はAWS初学者を導く体系的な動画学習サービス
「AWS CloudTech」の課題カリキュラムで作成しました。
https://aws-cloud-tech.com
やったこと
「冗長性のあるブログサービスを構築する」の一部
を実施しました。
ALBを含んだ構成にしました。
⑪から㉒まで、順番に実施しました。
用意するもの
Windows10のPC Teraterm
今回の完成形
実作業
※前回作成したはずのWPが、504 Gateway Timeout と表示され焦りましたが、RDSをスナップショットを取って削除していたことを思い出し、スナップショットからRDSを復元しました。
それでもまだ 504 Gateway Timeout が解決しないので、 AWSブログサービスを構築する(1)の手順をもう一度実施しました。
はじめてのAMI (AMI作成 → SG作成 )
イメージ取り
⑪EC2のAMIを作成します。
EC2を作成します。(当該EC2を停止してから)
EC2作成時、マイAMIから作成し、アベイラビリティゾーン1cのPublicサブネットに置く
SGはアベイラビリティゾーン1aのEC2と同じSGを指定する
キーペアもアベイラビリティゾーン1aのEC2と同じキーペアを指定する
はじめてのALB( ALB作成 → SG作成 → TG作成 )
※ロードバランサーはEC2の左側の下のほうにあります。
⑫ロードバランサを作成します。
アプリケーションロードバランサーで、HTTP用、リスナーはHTTP80番。
※参考にしたサービスの、
いったんHTTP80番で作成して、あとでHTTPSのみ許可にするやり方が、分かりやすかった。
書籍でもHTTPSから作成する方法がほとんどだったので。
アベイラビリティゾーンは1aと1cに☑を入れます。
⑬ロードバランサーのセキュリティグループを作成します。
新しいセキュリティグループでHTTP80番で作成されます
⑭ロードバランサーで指定するターゲットグループを作成します。
ヘルスチェックの設定では/readme.htmlとします
⑮ロードバランサーの配下に設定するインスタンスを指定します。
今回はアベイラビリティゾーン1aにあるEC2とアベイラビリティゾーン1cにあるEC2を指定しました。
⑯ターゲットグループのタブでヘルスチェックがhealthyになっているか確認。
ここまで実施した人への注意
この状態で放置するとワードプレスの表示が崩れたままなので、以降の作業もぶっ続けで行うことをお勧めします。
RDSでの作業
⑰どちらかのEC2へログインします(パブリックIPが変更されているかもしれないので注意)
⑱RDSのMysqlにログインします
mysql -h [RDSエンドポイント名] -u [ユーザ名] -p
⑲サイトURLをLBのDNS名に変更する
UPDATE wp_options SET option_value = 'LBのDNS名' WHERE option_name IN ('siteurl', 'home');
⑳ブラウザに「LBのDNS名」を入力するとワードプレスが表示できてしまうことを確認する
SGの設定変更
※このままですと、EC2はロードバランサー以外の通信も許可してしまうので、
ALBからの通信のみ許可するように変更します。SGで。
㉑EC2の画面のセキュリティグループを選択、
EC2のウェブサーバに設定したSGを選んで、インバウンドルールを編集。
結構SGを作成しているので、間違えないように。
WEBのSG
LBのSG
RDSのSG
㉒HTTPが二つあるので一番上を削除し。もう一つののHTTPのソースの::/0を削除し、sgと打つ。
LBのSGを選択してルールを保存。
やらなかったこと
参考にしたサービスではこのあとRDSも冗長構成にするハンズオンがありましたが、わたしは今回、事情があって実施しませんでした。もちろん後日実施予定です。
追記
Route53 ・ ACM・ ALB・ムームードメインで独自ドメインhttps化しました。
①ムームードメインで独自ドメイン取得・決済
②Route53でホストゾーン作成→ムームードメインのコンパネネームサーバに入力
③ACM作成
④ALB作成
⑤EC2のSG編集
⑤Route53でレコード作成
⑥ヘルスチェック確認