はじめに
Route53のフェイルオーバールーティングを用いて、ALBに障害やメンテナンスが行われている場合、
セカンダリのルーティング先として指定したS3の静的WebページにてSorryページを表示させる。
前提
オリジナルドメイン取得済みでALBと紐づいている状態が前提
やっていく
セカンダリ用のS3バケット設定
セカンダリ用の各種S3設定
S3バケット作成
遷移先のS3バケットを作成。
この時、オリジナルドメインと同じ名前のバケットである必要がある。
パブリックアクセスを有効にし、他設定はデフォルト。
Sorryページの素材もアップロード
静的ウェブホスティング有効化
静的ウェブホスティングも有効にする
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レコードをフェイルオーバールーティングとし、プライマリの向き先とする。
プライマリ用レコード
ルーティングポリシーを「フェイルオーバー」に。レコードタイプをプライマリに設定。
レコードIDは任意。プライマリと分かる様にする。
ターゲットのヘルスを評価も有効化する
セカンダリ用レコード
セカンダリ用レコードを作成。ここまでいったら「フェイルオーバーレコードを定義」をクリック
※TTLは60とかでも良いかも
S3のバケットを指定
完成
完成。フェイルオーバーレコードがプライマリとセカンダリ用で定義された。
これでELB側に異常があった場合、S3側に自動で遷移される様になった。
※この時S3バケットにサブドメイン以外のバケット(例えばmurabo.net)があるとうまく遷移できない。