メニュー
Amazon CloudFront
開発者ガイド (API Version 2016-09-29)

Lambda@Edge とは

AWS Lambda は、サーバーをプロビジョニングまたは管理することなく、AWS クラウドでコードを実行できるコンピューティングサービスです。AWS Lambda は必要に応じてコードを実行し、1 日あたり数個のリクエストから 1 秒あたり数千のリクエストまで自動的にスケーリングします。

Lambda@Edge は、CloudFront イベントに応じて AWS エッジロケーションで Lambda 関数を実行することができます。Lambda@Edge がない場合、カスタマイズされた処理で、一元化されたサーバーのコンピューティングリソースにリクエストを転送する必要があります。その結果、ユーザーエクスペリエンスを低下させます。

Lambda@Edge は、サーバー側の JavaScript フレームワークである Node.js をサポートします。Lambda 関数を使用して、CloudFront リクエストで4種類のトリガーポイントに応答できます:

  • リクエストが最初に閲覧者から届いたとき (閲覧者リクエスト)

  • Lambda 関数でオリジンへのリクエストを転送するとき (オリジンリクエスト)

  • Lambda 関数でオリジンからの応答を受けるとき (オリジンの応答)

  • Lambda 関数がビューワーに応答する前 (ビューワーの応答)

Lambda@Edge では、CloudFront イベントに応じて次の操作を実行します。

  • A/B テスト用に異なるバージョンのサイトに URL を書き換えるために Cookie を検査する Lambda 関数を記述する

  • user-agent ヘッダーに基づいて異なるオブジェクトをユーザーに送信する (たとえば、デバイスに基づいて異なる解像度のイメージをユーザーに送信する)

  • ヘッダーまたは認証トークンを検査し、対応するヘッダーを挿入して、リクエストをオリジンに転送する前に、アクセス制御を有効にする

  • ヘッダーの追加、削除、変更、および URL パスの書き換えを行い、キャッシュの異なるオブジェクトにユーザーをダイレクトする

CloudFront 設定の詳細については、Lambda@EdgeAWSLambda 開発者ガイドにて参照してください。