やりたいこと
APIのヘルスチェックに失敗した場合に、S3に保存した503ページをCDN経由で配信する方法を解説します。
必要な設定は大きく3つ
- S3に503ページを配置する
- CloudFrontで新しくディストリビューションを作成する
- Route53でヘルスチェックの作成と、レコードの設定を行う
実装
S3
まずはバケットを作成します。
バケット名に任意の名前を設定し、「バケットを作成」を押します。
※その他は特に変更しなくてOKです。バケット名はドメイン名と合わせる必要は無いです。
作成されたバケットを選択し、「アップロード」します。
「ファイルを追加」から503ページのファイルを追加し、アップロードを押します。
CloudFront
オリジンドメインは、S3のバケットウェブサイトエンドポイントを設定してください。
ビューワーは「Redirect HTTP tto HTTPS」
作成できたら、「エラーページ」⇒「カスタムエラーレスポンスを作成」します。
エラーコードを設定し、レスポンスページのパスにはS3に追加したファイルのパスを設定してください。
Route53
ヘルスチェックを作成できました。
ルーティングポリシー ⇒ フェイルオーバー
レコードタイプ ⇒ プライマリ
ヘルスチェックID ⇒ 先程作成したヘルスチェックを指定
503ページのレコードを新たに作成する。
ルーティングポリシー ⇒ フェイルオーバー
レコードタイプ ⇒ セカンダリ
ヘルスチェックID ⇒ 作成したヘルスチェックを指定
以上で設定できました。ぜひ、参考にしていただけますと幸いです。