ネットワーク ・
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 Functions | Lambda@Edge |
|---|---|---|
| 実行時間 | < 1 ms | 数十 ms〜数秒 |
| 料金 | 1/6 安い | 高め |
| 言語 | JS(ES5) | Node.js / Python |
| 機能 | シンプル処理のみ | 高度・任意処理 |
| トリガー | Viewer のみ | Viewer / Origin 両方 |
| AWS SDK | × | ○ |
| 用途 | ヘッダ・URL 操作 | バックエンド連携・複雑処理 |
4. 仕組み
CloudFront Functions は CloudFront エッジのオーバーヘッド極小ランタイムで動く。Lambda とは別の専用エンジンで、起動時間とメモリ使用量が圧倒的に小さい。
動作の流れ
- クライアントが CloudFront にリクエスト
- Viewer Request 段階で Function 実行
- ヘッダ・URL を変更可能
- キャッシュ評価 → オリジン取得 or キャッシュヒット
- Viewer Response 段階で Function 実行可能
- クライアントへ返却
用途別の選定
ヘッダ書き換え・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. 関連用語
- CloudFront — Functions の動作環境
- Lambda-Edge — より高機能な選択肢
- Lambda — 通常の Lambda
7. 関連サイト
AWS 公式
参考
🎓 試験での出題傾向
| 試験 | 重要度 | 主な出題パターン |
|---|---|---|
| CLF | − | 出題なし |
| SAA | 中 | エッジ処理選定(CloudFront Functions vs Lambda@Edge) |
| DVA | 中 | エッジでの軽量処理実装 |
| SOA | 低 | 出題ほぼなし |