静的コンテンツ配信の最適化 S3とCloudFront、OACでセキュアに配信する
本記事はSAA試験対策として、S3に保存した静的コンテンツをCloudFront経由で安全かつ高速に配信する設計を解説します。試験では、セキュリティと配信性能の両立をどう実現するかが問われます。
覚え方のフレームは3つの観点です。限定(直接アクセスを防ぐ)・高速化(キャッシュで負荷を減らす)・防御(不正な通信を遮断する)。
限定 OAC(オリジンアクセスコントロール)
Origin Access Control(OAC)を使うと、CloudFrontからのアクセスにSigV4署名を要求し、S3バケットポリシーで「CloudFront経由のみ許可」に限定できます。S3バケットのURLを直接知られてもコンテンツを取得されないようにしたい要件ではOACを設定し、バケットへの直接のパブリックアクセスはブロックします。旧来のOAI(オリジンアクセスアイデンティティ)よりも新しい標準で、KMS暗号化されたS3オブジェクトにも対応します。
高速化 キャッシュ戦略
更新頻度の低い画像やCSS・JSにはキャッシュ期間(TTL)を長く設定し、更新のたびにファイル名にハッシュ値を付けてキャッシュを強制的に切り替える設計(キャッシュバスティング)が有効です。コンテンツ更新後すぐに全世界のエッジへ反映したい要件ではファイル名変更方式を使い、無効化(インバリデーション)の多用によるコスト増を避けます。
防御 CloudFrontとWAFの組み合わせ
CloudFrontディストリビューションにAWS WAFを関連付けると、地理的制限やレートベースのルールで不正なアクセス元を配信前に遮断できます。特定の国からのアクセスを制限しつつ、正当な利用者への配信速度は落としたくない要件ではエッジで完結するCloudFrontとWAFの構成を選びます。
| 課題 | 対処 | 使いどころ |
|---|---|---|
| S3への直接アクセス | OACでCloudFront経由のみ許可 | バケットURLの漏えいに備えたい |
| 更新反映の遅延とコスト | ファイル名変更によるキャッシュバスティング | 即時反映と低コストを両立したい |
| 不正アクセスや過剰リクエスト | CloudFrontとWAFで地理制限・レート制限 | エッジで攻撃を遮断したい |
チェックリスト
- OACによるS3への直接アクセス制限の仕組みを説明できる
- OAIとOACの違いと推奨される理由を説明できる
- キャッシュバスティングと無効化(インバリデーション)の使い分けを説明できる
- CloudFrontとWAFを組み合わせたエッジでの防御を説明できる
まとめ
静的コンテンツ配信は「限定・高速化・防御」の3観点で最適化し、OACとキャッシュ戦略、WAFを組み合わせるのが定石です。この記事の理解度はクイズで確認し、最新の試験範囲はAWS認定 公式ページで確認しましょう。
SAA(ソリューションアーキテクト アソシエイト) におすすめの教材
徹底攻略 AWS認定 ソリューションアーキテクト − アソシエイト教科書 第3版[SAA-C03]対応
AWS認定ソリューションアーキテクト−アソシエイト問題集
これだけでOK! AWS認定SAA(SAA-C03)試験突破講座
AWS認定SAA 本番模試(6回分/390問)
本セクションにはAmazonアソシエイト・Udemyアフィリエイトのリンクが含まれます。