Q2 — AWS SAA-C03 第16章
第 2/100 問 | ← 第16章
Q1202. ある企業が、ユーザーのリクエストに応じて一時的なテキストファイルを動的に生成・返却するパッケージ化されたアプリケーションを運用しています。同社は配信にAmazon CloudFrontを利用していますが、さらにデータ転送料を削減したいと考えています。ただし、アプリケーションのソースコードを変更することはできません。ソリューションアーキテクトは、コスト削減のために何を行うべきでしょうか?
- A. Lambda@Edge を使用して、ユーザーへ送信される際にファイルを圧縮する
- B. Amazon S3 Transfer Acceleration を有効化してレスポンス時間を短縮する
- C. CloudFront ディストリビューションのキャッシュを有効化し、生成されたファイルをエッジロケーションに保存する ✓
- D. Amazon S3 のマルチパートアップロード機能を用いて、ファイルを Amazon S3 にアップロードした後にユーザーに返却する
正解: C. CloudFront ディストリビューションのキャッシュを有効化し、生成されたファイルをエッジロケーションに保存する
解説
ユーザーのリクエストに応じて一時的なテキストファイルを動的に生成・返却するアプリケーションにおいて、Amazon CloudFront を用いて配信しつつ、アプリケーションのソースコードを変更せずにデータ転送料を削減するには、最も適切な解決策は以下の通りです:C. CloudFront ディストリビューションのキャッシュを有効化し、生成されたファイルをエッジロケーションに保存する。 分析: CloudFront のキャッシュ機能:CloudFront は世界中のエッジロケーションにコンテンツをキャッシュするCDN(コンテンツデリバリーネットワーク)です。CloudFront ディストリビューションでキャッシュを有効化することで、生成された一時的なテキストファイルをエッジロケーションに保存できます。これにより、オリジンサーバー(アプリケーションがホストされている場所)へのリクエスト数が減少し、結果としてデータ転送料が削減されます。 一時的ファイルへの対応:ファイルは「一時的(single-use)」とされていますが、実際には類似したファイルや同一ファイルが短時間で複数回リクエストされる可能性があります(例:類似リクエストの集中、キャッシュヒットの発生など)。このような場合、キャッシュは依然として有効であり、オリジンへの負荷低減と転送料削減に寄与します。 ソースコード変更不要:企業はアプリケーションのソースコードを変更できないため、アプリケーション側での処理(例:ファイル圧縮)を要する選択肢は不適切です。一方、CloudFront のキャッシュ設定は、アプリケーションの変更を一切伴わずに行えるため、要件に完全に適合します。 他の選択肢が不適切な理由: A. Lambda@Edge を使用して、ユーザーへ送信される際にファイルを圧縮する: 不適切な理由:Lambda@Edge はエッジでコンテンツを変換できますが、テキストファイルはそもそもサイズが小さいため、圧縮による転送料削減効果は限定的です。また、Lambda@Edge の導入には追加の管理負荷・コストが発生し、キャッシュによるオリジン負荷低減というより根本的な課題解決が可能な状況では過剰な対応です。 B. Amazon S3 Transfer Acceleration を有効化してレスポンス時間を短縮する: 不適切な理由:S3 Transfer Acceleration は、Amazon S3 との間のファイル転送を高速化する機能であり、CloudFront 経由での配信におけるデータ転送料削減には直接寄与しません。また、本シナリオではファイルが S3 に事前に格納されているわけではなく、アプリケーションが動的に生成している点でも適用範囲外です。 D. Amazon S3 のマルチパートアップロード機能を用いて、ファイルを Amazon S3 にアップロードした後にユーザーに返却する: 不適切な理由:S3 のマルチパートアップロードは、大容量ファイルを分割して S3 へ確実にアップロードするための機能であり、CloudFront 配信時の転送料削減とは無関係です。さらに、本シナリオではファイルがアプリケーションによって動的に生成され、S3 への保存を前提としていないため、このアプローチは要件に合致しません。 結論: アプリケーションのソースコードを変更することなく、データ転送料を効果的に削減するには、CloudFront ディストリビューションのキャッシュを有効化し、生成されたファイルをエッジロケーションに保存することが最も適切な方法です。