Instiq
第3章 · エッジと DNS の設計·v2.0.0·更新 2026/6/3·読了目安 約11分

変更要約: ANS-C01 第3章を深掘り(トラフィックフロー/ヘルスチェック種別・エッジ関数2種/キャッシュキー・GA内部構成/ダイヤル+比較表・シナリオ・FAQ・ひっかけ、図ja化)

3.2CloudFront によるコンテンツ配信

この節の要点

エッジで速く・安全に——CloudFrontキャッシュオリジン(S3/ALB)OAC によるオリジン保護エッジでの TLS/WAF——を理解します。世界中のエッジから低遅延に配信します。

CloudFront は世界中の エッジロケーションにコンテンツをキャッシュする CDN です。ユーザーは最寄りのエッジから受け取り、低遅延でアクセスできます。

3.2.1キャッシュとオリジン保護

CloudFront の CDN とオリジンを示した図。ユーザーは最寄りの CloudFront エッジ(キャッシュ+TLS+WAF、オリジンへは OAC で接続、エッジ関数も実行)に接続し、エッジは静的コンテンツの S3 オリジン(OAC で非公開)と動的な ALB/API(カスタムオリジン)にアクセスする。キャッシュヒットはエッジで応答し、ミスはオリジンから取得すること、オリジンは OAC で保護することを示した図。
CloudFront の CDN とオリジン
  • キャッシュ:エッジにキャッシュヒットならオリジンに行かず即応答。ミス時のみオリジンから取得。
  • オリジンS3(静的)ALB/API(動的・カスタムオリジン)を指定できる。
  • OAC(Origin Access Control):S3 を非公開にしつつ CloudFront 経由のみアクセスを許可する。
  • エッジでの保護TLS 終端・WAF・エッジ関数をエッジで適用し、オリジン負荷と攻撃面を減らす。
試験ポイント

「静的コンテンツの低遅延配信=CloudFront」「S3 を非公開にしつつ CDN 配信=OAC」「キャッシュヒットはオリジンに行かない」「エッジで TLS/WAF」 は ANS-C01 で頻出です。S3 を公開せず配信したいときは OAC(旧 OAI)を使います。

補足

CloudFront は HTTP/HTTPS のコンテンツ配信に特化します。任意の TCP/UDP や静的 IP が必要な非 HTTP ワークロードは Global Accelerator を検討します(次節)。

ANS-C01 ではキャッシュの効きを左右する「キャッシュキー」と、エッジでの処理を担う 2 種類の関数が頻出です。キャッシュキーはデフォルトでパスのみですが、キャッシュポリシーで特定のヘッダー・クエリ文字列・Cookie を含めて分割できます。含めすぎるとキャッシュヒット率が下がるため、オリジンへ渡したいだけの値はオリジンリクエストポリシーで転送し、キャッシュキーには含めないのが定石です。エッジでコードを動かす手段は 2 つあり、CloudFront Functions は超軽量・サブミリ秒・ビューワーリクエスト/レスポンスのみで、ヘッダー操作やリダイレクト・URL 書き換えに使います。Lambda@Edge はより重い処理が可能で、オリジンリクエスト/レスポンスにもフックでき、外部呼び出しや本格的なロジックを実行できます。オリジン保護では、S3 をオリジンにする場合は OAC で非公開化し、カスタムオリジン(ALB 等)の場合はカスタムヘッダーに秘密値を載せて WAF で検証し、CloudFront 以外からの直接アクセスを弾く構成が定番です。配信元が複数ある場合はオリジングループでプライマリ/セカンダリのオリジンフェイルオーバーも設定できます。

項目CloudFront FunctionsLambda@Edge
実行できる箇所ビューワーリクエスト/レスポンスのみビューワー+オリジンの両方
レイテンシー/規模サブミリ秒・超高頻度向きミリ秒〜・重い処理向き
外部呼び出し不可(自己完結)可能(ネットワーク/SDK)
代表用途ヘッダー操作・リダイレクト・URL 書換認証・A/B・動的オリジン選択
補足

シナリオ:S3 の静的サイトを配信しつつ、特定パスだけ別リージョンの ALB へ動的に振り分け、画像のサムネ URL をエッジで書き換えたい。→ CloudFront に S3(OAC)と ALB(カスタムオリジン)の 2 オリジンとビヘイビアを設定し、URL 書き換えのような軽量処理は CloudFront Functions、リクエスト内容に応じたオリジン選択や認証など重い処理は Lambda@Edge に分担させる。

補足

FAQ:Q. キャッシュヒット率が上がらない? A. キャッシュキーに不要なヘッダー/クエリ/Cookie を含めていないか確認。オリジンに渡すだけならオリジンリクエストポリシーで転送し、キャッシュキーには入れない。Q. OAI と OAC の違いは? A. OAC が現行の推奨で、SSE-KMS や全リージョン・全 HTTP メソッドに対応する。新規は OAC を使う。

注意

ひっかけ:「Lambda@Edge を使えば必ず速くなる」は誤り。Lambda@Edge は処理を伴うため CloudFront Functions より重く、単純なヘッダー操作やリダイレクトには過剰。軽量・高頻度は CloudFront Functions、オリジンイベントや外部呼び出しが要る場合のみ Lambda@Edge を選ぶ。

3.2.2この節のまとめ

  • 配信=エッジキャッシュ、保護=OAC+TLS/WAF
  • オリジン=S3(静的)/ALB・API(動的)

進捗の記録にはログインが必要です。

理解度チェック

(軽い確認用)

Q1. 静的な画像/動画を世界中のユーザーへ低遅延で配信し、オリジン負荷を下げたい。何を使いますか?

Q2. S3 バケットを一般公開せず、CloudFront 経由のみでアクセスさせたい。何を使いますか?

Q3. CloudFront でキャッシュヒットした場合、リクエストはどう処理されますか?

理解度を確認第3章「エッジと DNS の設計」の問題を解く