はじめに
Route53のフェイルオーバールーティングを用いて、ALBに障害やメンテナンスが行われている場合、
セカンダリのルーティング先として指定したS3の静的WebページにてSorryページを表示させる。
前提
オリジナルドメイン取得済みでALBと紐づいている状態が前提
やっていく
セカンダリ用のS3バケット設定
セカンダリ用の各種S3設定
S3バケット作成
遷移先のS3バケットを作成。
この時、オリジナルドメインと同じ名前のバケットである必要がある。
パブリックアクセスを有効にし、他設定はデフォルト。
![](https://murablog.net/wp-content/uploads/2023/10/スクリーンショット-2023-10-30-20.52.43.png)
Sorryページの素材もアップロード
![](https://murablog.net/wp-content/uploads/2023/10/スクリーンショット-2023-10-30-20.53.56.png)
静的ウェブホスティング有効化
静的ウェブホスティングも有効にする
![](https://murablog.net/wp-content/uploads/2023/10/スクリーンショット-2023-10-30-20.54.36.png)
S3バケットポリシー
バケットポリシーを記述
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "PublicReadGetObject",
"Effect": "Allow",
"Principal": "*",
"Action": [
"s3:GetObject"
],
"Resource": [
"arn:aws:s3:::blog.murabo.net/*"
]
}
]
}
これでS3のDNSにアクセスするとSorryページが表示される。
Route53のレコード設定
オリジナルドメインとELBのDNSが紐づくAレコードをフェイルオーバールーティングとし、プライマリの向き先とする。
プライマリ用レコード
![](https://murablog.net/wp-content/uploads/2023/10/スクリーンショット-2023-10-30-21.33.43.png)
ルーティングポリシーを「フェイルオーバー」に。レコードタイプをプライマリに設定。
レコードIDは任意。プライマリと分かる様にする。
ターゲットのヘルスを評価も有効化する
![](https://murablog.net/wp-content/uploads/2023/10/スクリーンショット-2023-10-30-21.35.42.png)
![](https://murablog.net/wp-content/uploads/2023/10/スクリーンショット-2023-10-30-21.34.56-1024x194.png)
セカンダリ用レコード
セカンダリ用レコードを作成。ここまでいったら「フェイルオーバーレコードを定義」をクリック
※TTLは60とかでも良いかも
![](https://murablog.net/wp-content/uploads/2023/10/スクリーンショット-2023-10-30-21.36.46.png)
S3のバケットを指定
![](https://murablog.net/wp-content/uploads/2023/10/スクリーンショット-2023-10-30-21.38.14.png)
完成
完成。フェイルオーバーレコードがプライマリとセカンダリ用で定義された。
![](https://murablog.net/wp-content/uploads/2023/10/スクリーンショット-2023-10-30-21.58.11-1024x343.png)
これでELB側に異常があった場合、S3側に自動で遷移される様になった。
※この時S3バケットにサブドメイン以外のバケット(例えばmurabo.net)があるとうまく遷移できない。