ネットワーク

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@EdgeCloudFront Functions
実行時間数 ms〜30 秒< 1 ms
機能高度シンプル
AWS SDK×
トリガー4 つViewer 2 つのみ
用途バックエンド連携・複雑処理ヘッダ・URL 操作
料金安(1/6)

4. 仕組み

Lambda@Edge は us-east-1 にデプロイした Lambda が、各エッジロケーションに自動レプリケーションされて実行される。コード更新も自動で全エッジに反映。

動作の流れ

  1. us-east-1 で Lambda 関数作成
  2. CloudFront ディストリビューションのトリガーに登録
  3. AWS が全エッジへ自動レプリケート
  4. エッジでリクエスト発生時に実行
  5. レスポンスは通常通り返却

用途別トリガー選択

目的トリガー
ヘッダ操作・認証Viewer Request
オリジン振り分け(A/B)Origin Request
レスポンス変換Origin Response
最終レスポンス調整Viewer Response

5. ユースケース

ユースケース 1:エッジでの認証

JWT 検証・OAuth トークン検証をエッジで実施。

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

Cookie で振り分け、オリジンを動的選択。

ユースケース 3:レスポンス変換

画像のリサイズ・フォーマット変換をエッジで。

ユースケース 4:地域別コンテンツ

ユーザーの国に応じたコンテンツ生成。

ユースケース 5:SEO ヘッダ自動付与

動的にメタタグ・OGP を生成。


6. 関連用語


7. 関連サイト

AWS 公式

参考


🎓 試験での出題傾向

試験重要度主な出題パターン
CLF出題なし
SAAエッジ処理設計、デプロイリージョン
DVALambda@Edge 実装、トリガー選定
SOA運用・モニタリング