Q59 — AWS SAP-C02 第1章
第 59/75 問 | ← 第1章
Q134. 小売企業がAWS上でECOMMERCEアプリケーションを運用しています。このアプリケーションは、Application Load Balancer(ALB)の背後に配置されたAmazon EC2インスタンスで実行され、データベースバックエンドとしてAmazon RDS DBインスタンスを使用しています。また、ALBを1つのオリジンとして指定したAmazon CloudFrontが設定されており、静的コンテンツはキャッシュされます。すべてのパブリックホストゾーンはAmazon Route 53でホストされています。アプリケーションの更新後、ALBが時折502ステータスコード(Bad Gateway)エラーを返すようになりました。根本原因は、ALBに返されるHTTPヘッダーが不正であることです。エラー発生直後にソリューションズアーキテクトがウェブページを再読み込みすると、ページは正常に表示されます。問題の修正作業が進行中である間、ソリューションズアーキテクトは、訪問者に対して標準のALBエラーページではなくカスタムエラーページを提供する必要があります。この要件を、**最小限の運用オーバーヘッド**で満たすための手順の組み合わせはどれですか?(2つ選択してください。)
- A. Amazon S3バケットを作成します。このS3バケットを静的ウェブサイトホスティング用に設定し、カスタムエラーページをAmazon S3にアップロードします。 ✓
- B. Amazon CloudWatchアラームを作成し、ALBのヘルスチェック応答メトリクス「Target.FailedHealthChecks」がしきい値を超えた場合にAWS Lambda関数を起動するように設定します。Lambda関数を設定して、ALBのフォワーディングルールを変更し、パブリックにアクセス可能なウェブサーバーを指すようにします。
- C. 既存のAmazon Route 53レコードを変更し、ヘルスチェックを追加します。ヘルスチェックが失敗した場合のフォールバックターゲットを設定し、DNSレコードをパブリックにアクセス可能なウェブページを指すように変更します。
- D. Amazon CloudWatchアラームを作成し、ALBのヘルスチェック応答メトリクス「Elb.InternalError」が0より大きい場合にAWS Lambda関数を起動するように設定します。Lambda関数を設定して、ALBのフォワーディングルールを変更し、パブリックにアクセス可能なウェブサーバーを指すようにします。
- E. CloudFrontのカスタムエラーページ機能を活用してカスタムエラー応答を追加します。DNSレコードをパブリックにアクセス可能なウェブページを指すように変更します。 ✓
正解: A. Amazon S3バケットを作成します。このS3バケットを静的ウェブサイトホスティング用に設定し、カスタムエラーページをAmazon S3にアップロードします。, E. CloudFrontのカスタムエラーページ機能を活用してカスタムエラー応答を追加します。DNSレコードをパブリックにアクセス可能なウェブページを指すように変更します。
解説
CloudFrontのカスタムエラーページ機能は、オリジン(ここではALB)が5xxエラー(例:502 Bad Gateway)を返した際に、事前に用意したカスタムエラーページを表示する仕組みです。この機能を利用するには、カスタムエラーページをCloudFrontからアクセス可能な場所(推奨は別途作成したAmazon S3バケット)に保存する必要があります。同一オリジン(ALB)にエラーページを配置すると、オリジンが障害時にページ取得ができなくなるため、S3などの独立した信頼性の高いストレージが必須です。したがって、選択肢A(S3へのカスタムエラーページ配置)と選択肢E(CloudFrontでのカスタムエラーページ設定)の組み合わせが、運用オーバーヘッドが最小かつ要件を確実に満たす最適な解決策です。他の選択肢(B、C、D)は、ALBやRoute 53の構成変更・自動復旧を試みるものですが、502エラーの原因が一時的なヘッダー不正であり、即時のトラフィック切り替えやDNS変更は過剰かつ不正確な対応であり、また運用負荷も高くなります。