2リージョンのALBへ同じサービスを配置し、Route 53の公開ホストゾーンで単一のIPv4名を管理する。通常はプライマリだけを返し、プライマリが不健康でセカンダリが健康な場合にセカンダリを返したい。
各ALBのターゲットグループのヘルスチェックを設定済みで、この状態をDNS判断へ使う。セカンダリはデータと容量も準備済みである。別のHTTPエンドポイント監視は不要で、既存接続の即時移動は求めない。
要件を満たす設定を2つ選べ。
Failover aliasのPrimary・SecondaryとEvaluate Target Healthを組み合わせ、ALBのターゲット状態からDNS応答を選ぶ。
詳細解説
重み付き分散は通常時もセカンダリへ応答し得る。プライマリだけを使う今回の優先関係を表さない。
TTLはキャッシュ期間であり、ターゲットの健康を検査する機能ではない。短くしても不健康な宛先を判断して除外しない。
遅延に基づく選択と、固定したPrimary・Secondaryの優先関係は異なる。遅延の小さいセカンダリが通常時に選ばれる可能性がある。
エイリアスでALBを参照し、プライマリ・セカンダリという優先関係をDNS応答へ設定できる。
ALBに関連付けたターゲットグループの状態を継承して、応答先の健康判定に利用する。今回の判断基準には別のRoute 53 HTTPヘルスチェックを追加する必要がない。
公式資料で確認する
以下の項目を公式資料の記述と照合して確認します。
Route 53のFailover alias設定とALBのEvaluate Target Health条件を公式資料で確認する。
参考にした公式資料
確認できる内容
プライマリ正常・片側障害・両側障害の応答と、DNSキャッシュが残る範囲を説明できる。
理解のポイント
- Failover routing
- Evaluate Target Health
- ALB
- Weighted routing
- Latency routing
- DNSキャッシュ
確認時の注意
- 確認環境: AWS公式SOA-C03試験ガイドとAWS公式ドキュメントの確認
- AWS公式SOA-C03試験ガイドと各サービスの公式ドキュメントを確認する。
基礎のおさらい
優先関係と健康判定は別の設定
同じ名前・型のPrimaryとSecondaryを作り、それぞれのALBをエイリアス先にする。Evaluate Target HealthはALBのターゲットグループの状態を継承する。関連する各ターゲットグループに健康なターゲットが必要で、空のグループや不健康なターゲットだけのグループは不健康と判定される。別のRoute 53ヘルスチェックを併用する場合は、その判定と継承した判定の両方を満たす必要がある。
DNSの切り替えだけで復旧完了とはしない
プライマリが健康ならプライマリ、不健康でセカンダリが健康ならセカンダリを返す。両方が不健康な場合にはプライマリを返すため、障害先への応答が必ずゼロになると保証しない。リゾルバーやクライアントのキャッシュ、既存接続は即座に移動しない。セカンダリのデータ・容量・依存サービスも用意し、復旧手順を検証する。