pikesaku’s blog

個人的な勉強メモです。記載内容について一切の責任は持ちません。

Lamda@Edgeメモ

Lamda@Edgeとは?

・Cloudfrontの機能
・ユーザーに近いリージョンのエッジキャッシュでLamda関数を実行。※Cloudfron単体で出来ない処理を実現。
 より近いエッジロケーションではない!
・実行タイミングは以下4か所
 ①ViewerRequest→②OriginRequest→③OriginResponse→④ViewerResponse
 ①・②、③・④の間に、エッジキャッシュ処理がある。キャッシュ前後どちらで処理するかを制御できる。

ユースケース

・ ヘッダ加工
 HSTSヘッダ付与等
・ 画像サイズ変換
 UAに応じてサイズ変換等
・レスポンス返却
検索エンジン最適化
 アクセス元がBotの場合、別コンテンツ返却
・データ暗号化
 AWS KMSと連携しコンテンツの全体 or 一部を暗号化できる。
・A/Bテスト
 クライアント側は意識せず、接続先を分けることでパターン別の評価ができる。
 ※そもそもA/Bテストとは?
  ABテストとは2つのものを比較するテストです。Webマーケティングでよく使われる。
  https://www.profuture.co.jp/mk/column/11571
・ユーザー認証認可、優先順位付け

類似機能のCloudfront Function

 Lamda@Edgeと同様に、Cloudfronイベントをトリガにコード実行できる。

Lamda@EdgeとCloudfron Functionの主な違い

No 項目 Lamda@Edge Cloudfron Function
1 実行場所 リージョンのエッジキャッシュ エッジロケーション
2 ランタイム Node.js、Python JavaScriptのみ
3 最大実行時間 数秒
実行タイミングにより異なる。Viewerトリガーの場合、5秒。
1ミリ秒未満
4 最大メモリ 数MB
実行タイミングにより異なる。Viewerトリガーの場合、1MB。
10KB

 →上記の通り、Cloudfron Functionは良い近い所で実行できるが、簡単な処理向け。