Lambda@Edgeとは?CloudFrontで動くAWSの高速化機能を解説
公開 2026年8月23日
Lambda@Edgeとは
Lambda@Edgeは、Amazon Web Services(AWS)が提供する機能のひとつで、コンテンツ配信ネットワーク(CDN)サービスであるAmazon CloudFrontのエッジロケーション上でAWS Lambda関数を実行できる仕組みです。エッジロケーションとは、世界各地に分散して配置されたサーバー拠点のことで、ユーザーに地理的に近い場所からコンテンツを配信するために用いられています。
通常のLambdaとの違い
通常のAWS Lambdaは、あらかじめ指定した特定のリージョン(データセンターが所在する地域)で実行されます。これに対してLambda@Edgeでは、ユーザーからのアクセスに最も近いエッジサーバー上で関数が実行されるため、サーバーとユーザーとの物理的な距離が短くなり、レイテンシ(通信の遅延)の大幅な削減が期待できます。世界中に利用者がいるサービスであっても、それぞれの利用者に近い場所で処理が行われることで、体感速度の向上につながります。
4つのトリガーイベント
Lambda@Edgeは、CloudFrontが処理する通信の流れの中で発生する、次の4つのタイミング(イベント)をトリガーとして呼び出すことができます。
- ビューアーリクエスト:ユーザーからのリクエストをCloudFrontが受信したとき
- オリジンリクエスト:CloudFrontがオリジンサーバーへリクエストを転送する前
- オリジンレスポンス:オリジンサーバーからレスポンスを受信した後
- ビューアーレスポンス:CloudFrontがユーザーへレスポンスを送信する前
これら4つのタイミングのいずれかでLambda関数を実行することで、通信の途中でさまざまな処理を差し込むことができます。
主な用途と制約
Lambda@Edgeの代表的な用途としては、HTTPヘッダーの書き換え、URLの書き換えやリダイレクト処理、アクセスしてきたユーザーによって表示内容を出し分けるA/Bテスト、簡易的な認証処理、地域や端末に応じたコンテンツのカスタマイズなどが挙げられます。対応する実行環境はNode.jsとPythonです。ただし、エッジという特殊な実行環境で動作する都合上、通常のLambdaと比べてメモリ容量や実行時間の上限といった制約が厳しく設定されている点には注意が必要です。
利用における留意点
Lambda@Edgeは複数のリージョンにあるエッジロケーションへ自動的に関数がレプリケートされる仕組みになっており、通常のLambdaとはデプロイやログの確認方法が異なる点にも注意が必要です。ログはリクエストを処理したエッジロケーションに近いリージョンのCloudWatch Logsに出力されるため、動作確認の際にはどのリージョンのログを確認すべきかを把握しておくことが重要です。用途に応じて、より制約の少ない後継サービスであるCloudFront Functionsと使い分けることも検討されます。