SAP-C02既存のソリューションの継続的な改善HARD単一選択

ある企業が AWS 上で稼働する Web アプリケーションで、ユーザーがアップロードした画像を Amazon S3 に保存し、CloudFront で配信しています。ユーザーが画像を削除した際に、CloudFront のエッジキャッシュに古い画像が残り続けるという問題が発生しています。削除後にエッジキャッシュを即座に無効化するには、どの方法が最も適切ですか?

  1. A. CloudFront のキャッシュポリシーで Cache-Control: no-cache ヘッダーを設定する
  2. B. S3 の削除イベントを EventBridge で受信し、Lambda 関数で CloudFront の Invalidation API(CreateInvalidation)を呼び出して該当するオブジェクトパスのキャッシュを無効化する
  3. C. S3 バケットのバージョニングを有効化し、削除されたオブジェクトのバージョンを CloudFront から参照させる
  4. D. CloudFront の TTL(Time to Live)を 0 秒に設定して、すべてのリクエストをオリジンに転送する
解答と解説を見る

正解: B

S3 の削除イベント(s3:ObjectRemoved:Delete)を EventBridge ルールで受信し、Lambda が CloudFront の CreateInvalidation API で削除されたオブジェクトのキャッシュを無効化します。これにより、ユーザーが削除した画像がキャッシュから即座に除去されます。Invalidation は特定パスを指定してコスト効率よく実行できます。 D: TTL を 0 に設定すると全リクエストがオリジンに転送され、CloudFront のキャッシュの恩恵が失われ、オリジンサーバーへの負荷が大幅に増加します。 A: Cache-Control: no-cache ヘッダーは新しいコンテンツには効果的ですが、既にキャッシュされた古いオブジェクトのキャッシュを即座に除去することはできません。 C: バージョニングは削除されたオブジェクトの復元には使えますが、CloudFront のキャッシュ無効化には関係ありません。

▸ この試験を本気で演習する(全150問・無料)