ネットワーク

CloudFront Functions とは?エッジ実行の超軽量 JavaScript

CloudFront Functions は CloudFront のエッジロケーションで実行される軽量 JavaScript 関数。HTTP ヘッダ書き換え・URL リダイレクト・キャッシュキー操作・認証ヘッダ生成等の シンプルな処理 に最適化されている。Lambda@E...

CloudFront のエッジで実行する超軽量 JavaScript。Lambda@Edge より速く・安く、シンプルな処理向け。


1. 概要(端的に)

CloudFront Functions は CloudFront のエッジロケーションで実行される軽量 JavaScript 関数。HTTP ヘッダ書き換え・URL リダイレクト・キャッシュキー操作・認証ヘッダ生成等の シンプルな処理 に最適化されている。Lambda@Edge より 速く(< 1 ms)・安い(1/6)


2. 何ができるか

  • ヘッダ書き換え:レスポンス・リクエストの HTTP ヘッダ操作
  • URL リダイレクト:301 / 302 リダイレクト
  • キャッシュキー操作:カスタムキャッシュキー
  • A/B テスト:Cookie ベースの振り分け
  • 基本認証:シンプルな認証チェック

制限

  • ECMAScript 5.1 のみ(外部モジュール不可)
  • 実行時間 1 ms 以内
  • メモリ 2 MB
  • コードサイズ 10 KB
  • ボディアクセス不可(ヘッダ・URL のみ)
  • AWS SDK 利用不可(他サービス呼び出し不可)

3. 特徴

観点特徴
実行場所CloudFront エッジ(450+ 拠点)
言語JavaScript(ECMAScript 5.1)
実行時間< 1 ms
料金リクエストあたり $0.10/100 万
無料枠月 200 万リクエスト
トリガーViewer Request / Viewer Response のみ

vs Lambda@Edge

観点CloudFront FunctionsLambda@Edge
実行時間< 1 ms数十 ms〜数秒
料金1/6 安い高め
言語JS(ES5)Node.js / Python
機能シンプル処理のみ高度・任意処理
トリガーViewer のみViewer / Origin 両方
AWS SDK×
用途ヘッダ・URL 操作バックエンド連携・複雑処理

4. 仕組み

CloudFront Functions は CloudFront エッジのオーバーヘッド極小ランタイムで動く。Lambda とは別の専用エンジンで、起動時間とメモリ使用量が圧倒的に小さい

動作の流れ

  1. クライアントが CloudFront にリクエスト
  2. Viewer Request 段階で Function 実行
  3. ヘッダ・URL を変更可能
  4. キャッシュ評価 → オリジン取得 or キャッシュヒット
  5. Viewer Response 段階で Function 実行可能
  6. クライアントへ返却

用途別の選定

ヘッダ書き換え・URL リダイレクト・A/B テスト
  → CloudFront Functions

外部 API 呼び出し・複雑処理・SDK 必要
  → Lambda@Edge

5. ユースケース

ユースケース 1:URL リダイレクト

旧 URL → 新 URL の 301 リダイレクト。

ユースケース 2:HTTP ヘッダ追加

セキュリティヘッダ(HSTS / CSP)の自動付与。

ユースケース 3:キャッシュキー正規化

クエリ文字列を整理してキャッシュ効率向上。

ユースケース 4:基本認証

管理画面へのシンプルな Basic 認証。

ユースケース 5:A/B テスト

Cookie で新旧版を振り分け。


6. 関連用語


7. 関連サイト

AWS 公式

参考


🎓 試験での出題傾向

試験重要度主な出題パターン
CLF出題なし
SAAエッジ処理選定(CloudFront Functions vs Lambda@Edge)
DVAエッジでの軽量処理実装
SOA出題ほぼなし