無限ノック › SAA 練習問題一覧 › 問題
SAA弾力性に優れたアーキテクチャの設計

グローバルメディア企業が、us-east-1 の Amazon S3 バケットをオリジンとする CloudFront ディストリビューションで動画コンテンツを配信しています。プライマリオリジンが障害を起こした際に us-west-2 の S3 バケットへ自動的にフェイルオーバーし、エンドユーザーへの影響を最小化する必要があります。最小の運用負荷でこれを実現する方法はどれですか?

A
Route 53 のフェイルオーバールーティングポリシーとヘルスチェックを設定し、障害時に CloudFront ディストリビューションを別リージョンのものへ切り替える
Route 53 フェイルオーバーは、DNS レベルの切り替えで有効ですが、CloudFront ディストリビューション自体のフェイルオーバーには DNS TTL の遅延が伴い、オリジングループほどシームレスではありません。CloudFront はオリジングループでこの機能をネイティブに提供します。
B
CloudFront のオリジングループを設定し、プライマリに us-east-1 の S3、セカンダリに us-west-2 の S3 を登録する。プライマリが 4xx/5xx を返した際に自動でセカンダリへフェイルオーバーさせる
✓ 正解
CloudFront のオリジングループは、プライマリオリジンが指定した HTTP ステータスコード(4xx/5xx)を返した場合やタイムアウトした場合に、自動的にセカンダリオリジンへフェイルオーバーするネイティブ機能です。追加コードや複雑な設定不要で、コンソールまたは IaC から設定できるため運用負荷が最小です。S3 クロスリージョンレプリケーションと組み合わせることでデータの同期も担保できます。
C
AWS Global Accelerator を CloudFront の前段に配置し、ヘルスチェックに基づいて正常なリージョンへトラフィックを誘導する
AWS Global Acceleratorは、主に TCP/UDP トラフィックをリージョン間でルーティングするサービスで、CloudFront の S3 オリジンフェイルオーバーの用途には設計上適合せず、構成も複雑になります。
D
Lambda@Edge 関数を Origin Request トリガーに設定し、プライマリ S3 へのリクエストが失敗した場合にセカンダリ S3 バケットへリクエストを書き換える
Lambda@Edgeは、技術的には可能ですが、関数の実装・テスト・デプロイが必要で運用負荷が高く、オリジングループで宣言的に実現できることをコードで行う過剰な解決策です。

解説

CloudFront のオリジングループは、プライマリオリジンが指定した HTTP ステータスコード(4xx/5xx)を返した場合やタイムアウトした場合に、自動的にセカンダリオリジンへフェイルオーバーするネイティブ機能です。追加コードや複雑な設定不要で、コンソールまたは IaC から設定できるため運用負荷が最小です。S3 クロスリージョンレプリケーションと組み合わせることでデータの同期も担保できます。 選択肢AのRoute 53 フェイルオーバーは、DNS レベルの切り替えで有効ですが、CloudFront ディストリビューション自体のフェイルオーバーには DNS TTL の遅延が伴い、オリジングループほどシームレスではありません。CloudFront はオリジングループでこの機能をネイティブに提供します。 選択肢CのAWS Global Acceleratorは、主に TCP/UDP トラフィックをリージョン間でルーティングするサービスで、CloudFront の S3 オリジンフェイルオーバーの用途には設計上適合せず、構成も複雑になります。 選択肢DのLambda@Edgeは、技術的には可能ですが、関数の実装・テスト・デプロイが必要で運用負荷が高く、オリジングループで宣言的に実現できることをコードで行う過剰な解決策です。

ドメイン別正答率・予想スコアでリアルタイムに実力把握

無限ノックでSAAを徹底対策。全問AI生成のオリジナル問題。

無料で演習を始める →
← SAA の問題一覧に戻る