Q85 — AWS DOP-C02 第2章
第 85/100 問 | ← 第2章
企業は、アプリケーションのフェイルオーバーを実現する必要があります。このアプリケーションは、Amazon CloudFront および 1 つの Application Load Balancer (ALB) で構成され、単一のリージョンで運用されています。 企業は ALB を CloudFront のデフォルトオリジンとして構成済みです。 最近のいくつかのアプリケーション障害の後、企業はゼロ秒の RTO を求めています。企業はアプリケーションを、温かく準備されたバックアップ構成のセカンダリリージョンへ展開しました。設計者は、HTTP リクエストが所定の RTO を満たすよう、アプリケーションのフェイルオーバーをセカンダリリージョンへ自動化する必要があります。
- A. セカンダリ ALB をデフォルトオリジンとする第 2 の CloudFront ディストリビューションを作成します。Amazon Route 53 のフェイルオーバー戦略を持つエイリアスレコードを作成し、2 つの CloudFront ディストリビューションのターゲットヘルスチェックを「有効」に設定します。アプリケーションを更新して、この新しいレコードセットを使用するようにします。
- B. ディストリビューション上に新しいオリジンを作成し、ALB をそのオリジンとして設定します。オリジングループの失敗を HTTP 5xx ステータスコードに基づいて設定します。デフォルトの動作を更新して、オリジングループを使用するようにします。 ✓
- C. 2 つの ALB のターゲットヘルスチェックを「有効」に設定した Amazon Route 53 のフェイルオーバー戦略を持つエイリアスレコードを作成します。2 つのレコードの TTL を 0 に設定します。ディストリビューションのオリジンとして新しいレコードセットを使用するように更新します。
- D. HTTP 5xx ステータスコードを検出する CloudFront 関数を作成します。この関数が 5xx ステータスコードを検出した場合、関数を構成してセカンダリ ALB へ 307 Temporary Redirect レスポンスを返すようにします。ディストリビューションのデフォルト動作を更新し、関数からのレスポンスを処理するようにします。
正解: B. ディストリビューション上に新しいオリジンを作成し、ALB をそのオリジンとして設定します。オリジングループの失敗を HTTP 5xx ステータスコードに基づいて設定します。デフォルトの動作を更新して、オリジングループを使用するようにします。
解説
ゼロ秒の RTO を達成するには、DNS ベースのフェイルオーバー(Route 53 のヘルスチェックとフェイルオーバー戦略)が最も適しています。Route 53 は、ヘルスチェックでオリジンの可用性をリアルタイムで監視し、障害発生時に即座にトラフィックをセカンダリリージョンへ切り替えることができます。選択肢 C は、2 つの ALB をターゲットとした Route 53 のフェイルオーバー戦略を設定し、TTL を 0 にすることで DNS キャッシュによる遅延を排除し、即時切り替えを実現します。選択肢 A は CloudFront ディストリビューションを複数使用しますが、CloudFront 自体のキャッシュおよび設定伝播遅延により、ゼロ秒 RTO は保証されません。選択肢 B のオリジングループは、単一の CloudFront ディストリビューション内で複数のオリジンを管理するものですが、ALB のヘルスチェックは HTTP 5xx だけではなく、接続性やタイムアウトなども含む広範な健全性判断が必要であり、5xx に限定するのは不十分です。選択肢 D の CloudFront 関数は、HTTP レスポンスのステータスコードを検知できますが、オリジンの根本的な障害(例:ALB の完全停止)を検知できず、また 307 リダイレクトはクライアント側で再リクエストを発行させるため、RTO をゼロ秒にすることはできません。正解は、AWS の高可用性アーキテクチャガイドラインに従い、Route 53 のヘルスチェックとフェイルオーバーを活用する選択肢 C です。