高可用性・耐障害性の設計応用問題
あるサービスがAmazon Route 53のフェイルオーバールーティングを使用しており、プライマリエンドポイント(東京リージョン)とセカンダリエンドポイント(大阪リージョン)を設定しています。プライマリのRoute 53ヘルスチェックが失敗した場合、どのような動作が起きますか?
A.Route 53は自動的にDNSレスポンスをセカンダリエンドポイント(大阪)に切り替え、以降のDNSクエリは大阪のIPアドレスを返す。ただしクライアントのDNSキャッシュのTTLが切れるまでは東京へのアクセスが続く場合がある← 正解
✓ 正解です。Route 53はヘルスチェック失敗を検知するとDNSレスポンスを自動でセカンダリに切り替えますが、クライアントのDNSキャッシュTTLの影響があります。
B.Route 53がヘルスチェック失敗を検知した瞬間に、既存の全クライアント接続が即座に大阪リージョンに切り替わり、進行中のリクエストも含めて中断なく移行される
✗ Route 53はDNSレベルでの切り替えであり、既存のTCP接続やHTTPセッションをリダイレクトする機能はありません。接続レベルの瞬間切り替えは行われません。
C.Route 53はヘルスチェック失敗を検知してもDNSレコードは変更せず、アラートをCloudWatchに送信する。管理者が手動でDNSレコードを変更するまでセカンダリへの切り替えは行われない
✗ Route 53フェイルオーバーは自動です。ヘルスチェック失敗を検知すると手動操作なしにDNSレコードを変更してセカンダリへ誘導します。
D.Route 53のフェイルオーバーはセカンダリエンドポイントへの切り替え後、プライマリが復旧しても自動的には元に戻らないため、手動でプライマリに切り戻す必要がある
✗ Route 53フェイルオーバーはプライマリが復旧してヘルスチェックが再び成功すると、自動的にプライマリへのDNS応答に戻ります。