3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

AWS Lambda@Edge 概要

Posted at
  • AWS Lambda@Edgeの概要情報をまとめる。

AWS Lambda@Edgeとは

  • CloudFrontのエッジサーバーでコードを実行するLambda関数。
  • ユーザーに近いロケーションでコードを実行することでアプリケーションのパフォーマンスを向上させる。
  • CloudFrontのイベントをトリガーとしてコードを実行する。

用語・概念

トリガー

lambdaedge_concept.png

  • Lambda関数の実行タイミング。
  • 関数実行したいタイミングに応じて、選択する。
Viewer Origin
Request CloudFront キャッシュが確認される前のタイミング。
すべてのリクエストで実行する。
リクエストがオリジンへ転送される前のタイミング。
キャッシュミスで実行する。
Response オリジンまたはキャッシュからのレスポンスを受け取った後のタイミング。
すべてのリクエストで実行する。
オリジンからレスポンスを受け取った後のタイミング。
キャッシュミスで実行する。

作成の大まかな流れ

  1. CloudFront ディストリビューションを作成する

  2. 関数を作成する※US-East-1 (バージニア北部) リージョンで作成

  3. 関数にCloudFront トリガーを追加する

サポートランタイム※20210207時点

  • Python 3.8
  • Python 3.7
  • Node.js 12
  • Node.js 10
  • Node.js 8 および Node.js 6※作成済みのもののみ利用可能。

ユースケース

セキュリティ対応

  • Lambda 関数をトリガーし、オリジン上のコードを変更せず、全てのオリジンレスポンスに HTTP セキュリティヘッダーを追加する。

エッジロケーションでの動的ウェブアプリケーション構築

  • 他の AWS サービスと組み合わせることで、オートスケーリングやオリジンのインフラ管理作業なしで、自動的にスケールイン/アウトできるウェブアプリをエッジロケーションで構築する。

A/B テスト

  • ウェブサイトのさまざまなバージョンをテストしてユーザーに提供する。

    • A/B テスト用に異なるバージョンのサイトをユーザーに表示する。
      lambdaedge_ab.png

デバイスに応じたレスポンスの返却

  • User-Agent ヘッダーを確認し、ビューワーが使用するデバイスに基づいて、異なるオブジェクトをビューワーに返却できる。以下、例。
  • デバイスの画面サイズに基づいて異なるイメージを返却する。
  • Referer ヘッダーの値を考慮する関数を作成し、最も低い解像度のイメージをボットに返却する。

ユーザーの認証・認可

  • ユーザーを認証および認可し、不正なリクエストをオリジンへ到達する前に除外できる。
    • 例:Amazon Cognito などの認証およびユーザー管理サービスを呼び出し、ビューワーのリクエストを認証・認可させる。

lambdaedge_sec.png

参考情報

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?