Q31 — AWS SAP-C02 第1章
第 31/75 問 | ← 第1章
Q106. ある企業のソリューションアーキテクトが、AWS上で実行されるWebアプリケーションをレビューしています。このアプリケーションは、us-east-1 リージョンにある Amazon S3 バケット内の静的アセットを参照しています。企業は複数の AWS リージョンにわたる耐障害性(レジリエンス)を必要としています。すでに第2のリージョンにも S3 バケットが作成済みです。これらの要件を満たすうち、運用上のオーバーヘッドが最も少ないソリューションはどれですか?
- A. アプリケーションを設定して、各オブジェクトを両方の S3 バケットに書き込むようにします。Amazon Route 53 のパブリックホステッドゾーンを設定し、各 S3 バケットに対して重み付きルーティングポリシーを用いたレコードセットを作成します。アプリケーションから、Route 53 の DNS 名を用いてオブジェクトを参照するように設定します。
- B. us-east-1 の S3 バケットから第2のリージョンの S3 バケットへオブジェクトをコピーする AWS Lambda 関数を作成します。us-east-1 の S3 バケットへのオブジェクト書き込みごとに、この Lambda 関数を呼び出します。また、2つの S3 バケットをオリジンとして含むオリジングループを設定した Amazon CloudFront ディストリビューションを作成します。
- C. us-east-1 の S3 バケットにクロスリージョンレプリケーションを設定し、オブジェクトを第2のリージョンの S3 バケットへレプリケートします。さらに、2つの S3 バケットをオリジンとして含むオリジングループを設定した Amazon CloudFront ディストリビューションを作成します。 ✓
- D. us-east-1 の S3 バケットにクロスリージョンレプリケーションを設定し、オブジェクトを第2のリージョンの S3 バケットへレプリケートします。フェイルオーバーが必要な場合、アプリケーションコードを更新して、第2のリージョンの S3 バケットからオブジェクトを読み込むようにします。
正解: C. us-east-1 の S3 バケットにクロスリージョンレプリケーションを設定し、オブジェクトを第2のリージョンの S3 バケットへレプリケートします。さらに、2つの S3 バケットをオリジンとして含むオリジングループを設定した Amazon CloudFront ディストリビューションを作成します。
解説
複数の AWS リージョンにわたる耐障害性を実現しつつ、運用上のオーバーヘッドを最小限に抑えるには、以下の選択肢 C が最適です。 C. us-east-1 の S3 バケットにクロスリージョンレプリケーションを設定し、オブジェクトを第2のリージョンの S3 バケットへレプリケートします。さらに、2つの S3 バケットをオリジンとして含むオリジングループを設定した Amazon CloudFront ディストリビューションを作成します。 解説: ・us-east-1 の S3 バケットへのクロスリージョンレプリケーション設定により、オブジェクトが自動的に第2のリージョンの S3 バケットへ複製されます。これにより、複数リージョン間でのデータの耐障害性と冗長性が確保されます。 ・CloudFront のオリジングループに両方の S3 バケットを含めることで、トラフィックを地理的に最も近い S3 バケットへ自動的に分散できます。これにより、パフォーマンス向上と耐障害性の両立が可能になります。CloudFront は、リクエスト元の位置に基づき、適切なバケットへ自動的にルーティングします。 選択肢 A は不適切です。アプリケーション側で両方のバケットへ同時書き込みを行う設計は、追加の開発工数と運用負荷を招きます。 選択肢 B は不適切です。Lambda 関数による手動コピーは、S3 のネイティブなクロスリージョンレプリケーション機能と比較して、不要な複雑さと運用負荷を増加させます。 選択肢 D は不適切です。フェイルオーバー時にアプリケーションコードを手動で変更する必要があり、人的介入と運用上の複雑さが発生します。一方、CloudFront のオリジングループを活用すれば、自動的なフェイルオーバーとロードバランスが実現可能です。 したがって、運用上のオーバーヘッドが最も少ないソリューションは C です:us-east-1 の S3 バケットへのレプリケーション設定と、2つの S3 バケットを含む CloudFront オリジングループの構成です。