ネットワーク ・
Lambda@Edge とは?CloudFront エッジで動的処理を実行
Lambda@Edge は CloudFront エッジロケーションで動作する Lambda。リージョン Lambda と違い、ユーザーに最も近い拠点で実行されるため低遅延。外部 API 呼び出し・動的コンテンツ生成・複雑な認証 に対応する点で CloudFront Fun...
CloudFront のエッジで実行する Lambda。リージョン Lambda より低遅延で、エッジでの動的処理を実現。
1. 概要(端的に)
Lambda@Edge は CloudFront エッジロケーションで動作する Lambda。リージョン Lambda と違い、ユーザーに最も近い拠点で実行されるため低遅延。外部 API 呼び出し・動的コンテンツ生成・複雑な認証 に対応する点で CloudFront Functions より高機能。
2. 何ができるか
- エッジでの動的処理:リージョンに戻らず処理完了
- 4 つのトリガー:Viewer Request / Origin Request / Origin Response / Viewer Response
- Node.js / Python 対応:通常の Lambda と同じ言語
- AWS SDK 利用可:他 AWS サービス呼び出し可
- 複雑なロジック:CloudFront Functions では不可能な処理
4 つのトリガー位置
クライアント
↓ ① Viewer Request(必ず実行)
[CloudFront エッジ]
↓ キャッシュ確認
↓ ヒット時:そのまま返却
↓ ミス時:オリジンへ
↓ ② Origin Request(オリジンへ送る前)
[オリジン(S3 等)]
↑ ③ Origin Response(オリジンから戻った直後)
↑ キャッシュ保存
↑ ④ Viewer Response(必ず実行)
クライアントへ
3. 特徴
| 観点 | 特徴 |
|---|---|
| 実行場所 | CloudFront エッジ |
| 言語 | Node.js / Python |
| 実行時間 | Viewer 5 秒 / Origin 30 秒 |
| メモリ | Viewer 128 MB / Origin 最大 10 GB |
| コードサイズ | Viewer 1 MB / Origin 50 MB |
| デプロイ先 | us-east-1(バージニア)に配置必須 |
| 料金 | リクエスト + 実行時間(リージョン Lambda より高) |
制限
- 環境変数なし
- VPC 接続なし
- デプロイは us-east-1 のみ(自動的に各エッジに展開)
vs CloudFront Functions
| 観点 | Lambda@Edge | CloudFront Functions |
|---|---|---|
| 実行時間 | 数 ms〜30 秒 | < 1 ms |
| 機能 | 高度 | シンプル |
| AWS SDK | ○ | × |
| トリガー | 4 つ | Viewer 2 つのみ |
| 用途 | バックエンド連携・複雑処理 | ヘッダ・URL 操作 |
| 料金 | 高 | 安(1/6) |
4. 仕組み
Lambda@Edge は us-east-1 にデプロイした Lambda が、各エッジロケーションに自動レプリケーションされて実行される。コード更新も自動で全エッジに反映。
動作の流れ
- us-east-1 で Lambda 関数作成
- CloudFront ディストリビューションのトリガーに登録
- AWS が全エッジへ自動レプリケート
- エッジでリクエスト発生時に実行
- レスポンスは通常通り返却
用途別トリガー選択
| 目的 | トリガー |
|---|---|
| ヘッダ操作・認証 | Viewer Request |
| オリジン振り分け(A/B) | Origin Request |
| レスポンス変換 | Origin Response |
| 最終レスポンス調整 | Viewer Response |
5. ユースケース
ユースケース 1:エッジでの認証
JWT 検証・OAuth トークン検証をエッジで実施。
ユースケース 2:A/B テスト
Cookie で振り分け、オリジンを動的選択。
ユースケース 3:レスポンス変換
画像のリサイズ・フォーマット変換をエッジで。
ユースケース 4:地域別コンテンツ
ユーザーの国に応じたコンテンツ生成。
ユースケース 5:SEO ヘッダ自動付与
動的にメタタグ・OGP を生成。
6. 関連用語
- Lambda — 通常 Lambda(リージョン)
- CloudFront — Lambda@Edge の動作環境
- CloudFront-Functions — 軽量代替
7. 関連サイト
AWS 公式
参考
🎓 試験での出題傾向
| 試験 | 重要度 | 主な出題パターン |
|---|---|---|
| CLF | − | 出題なし |
| SAA | 高 | エッジ処理設計、デプロイリージョン |
| DVA | 高 | Lambda@Edge 実装、トリガー選定 |
| SOA | 中 | 運用・モニタリング |