プログラミングマガジン

プログラミングを中心にIT技術をできるだけわかりやすくまとめます。

  • ホーム
  • AWS
  • 【AWS】cloudfrontのLambda@Edgeについて
 
 
     
  • サーバー言語  
    • Python
    • Ruby
    • PHP
    • SQL
  •  
  • インフラ  
       
    • AWS
    •  
    • 基本
    • Git
  • Web
       
    • Web開発
    • JavaScript
    • Vue.js
    • React
  •  
  • 設計  
       
    • 実装設計
    • DB設計
  • 問い合わせ
  

【AWS】cloudfrontのLambda@Edgeについて

11.02

  • miyabisan2
  • 5件のコメント

この記事は2分で読めます

Lambda@Edgeとは?

AWS LambdaをCloudFrntのイベントを契機にエッジロケーションでNode.jsのソースを実行させることができます。

特徴

AWS Lambdaを動かすのでLambdaの以下のような特徴は流用できます。

  • サーバー管理不要
  • 自動管理、スケーリング
  • グローバル分散
  • 利用に応じた支払い

メリット

オリジン負荷低減/オリジンアーキテクチャをシンプル化できる。

例えば、電子書籍コンテンツを配信するサービスであればその電子書籍のアクセス認証などをLamda@Edge側に寄せてアプリケーションサーバー側の処理内容をシンプル化するなど。

実行可能ポイント(イベント)

以下4つのポイント(イベント)でLambda関数を実行が可能です。なお、Origin側のイベント(Origin RequestとOrigin Response)は実行結果をキャッシュ可能です。

具体的にできること

基本的にはデータストアを必要としない処理に関してはある程度なんでもできてバックエンドアプリケーションからこちらに寄せてしまってもよいです。(ただ、もしデータストアを使いたい場合はDynamoDB Global TableというLambda@Edgeと非常に親和性が高いサービスもあります。)

コンテンツ生成

  • 特定のパターンのみ動的なレスポンスにする。(HTMLを少し変える)
  • イメージのリサイズ
  • A/Bテスト

セキュリティ

  • ベーシック認証をかける。
  • CDNのコンテンツの利用可否をトークンによる検証を実行する。
  • コンテンツの有効期限チェック

キャッシュヒット率の向上

  • どこのオリジンにアクセスを流すかのコントロール
  • キャッシュコントロールヘッダをいじる。
  • クエリ文字列やユーザーエージェントの正規化

意図的にCache-Controlの値をいじってキャッシュにあえてヒットさせないなどの手法などをとることも可能です。

Lambda@Edge用のLambda関数のデプロイフロー

仕組みとしては、バージニア北部のリージョンにマスタ関数を作成して各リージョンにレプリカを作るというようなデプロイの流れになります。

Lambda@Edgeの実行環境

リージョン

2023年現在だと、「米国東部 (バージニア北部) リージョン」しか対応していません。東京リージョンでは対応していないので必ず作成時はバージニア北部リージョンを選択しましょう。

ランタイム

Nodeはもともと実行できたが、2020年3月からPythonも実行可能になった。

実装

Lambda関数の作成

任意のコードを貼り付けて、デプロイします。その後バージョンを一つ作成します。

トリガーの追加

cloudfrontのデストリビューションと、event名を選択します。(下記の例で言えば「Origin request時」に実行している。)

スポンサーリンク
  • 2023 11.02
  • miyabisan2
  • 5件のコメント
  • AWS
  • Tweets Twitter
  • このエントリーをはてなブックマークに追加
  • LINEで送る

関連記事

  1. 2021 01.16

    【AWS】セキュリティの考え方(責任共有モデル、SSO、Cognito、CloudTrail、KMS、Inspector、ACM、WAFなど)

  2. 2020 12.29

    【AWS】EBSの基本、EC2へ「EBS」をマウントする手順

  3. 2020 12.31

    【AWS】「EKS」、「eksctl」

  4. 2021 01.03

    【AWS】「Lambda」のパフォーマンスチューニング

  5. 2020 12.29

    【AWS】「ECR」、「App Runner」など

  6. 2021 12.07

    【AWS】cloudwatchの仕組み、監視設計など

  • コメント ( 0 )
  • トラックバック ( 0 )
  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。

返信をキャンセルする。

【Laravel】Windowsの環境構築

【Next.js】Server Actionsについて

RETURN TOP

著者プロフィール

エンジニア歴10年で過去に業務系、Webデザイン、インフラ系なども経験あります。現在はWeb系でフロントエンド開発中心です。

詳細なプロフィールはこちら

スポンサーリンク

カテゴリー

  • Android
  • AngularJS
  • API
  • AWS
  • C++
  • CSS
  • C言語
  • DDD
  • DevOps
  • Django
  • Docker
  • Figma
  • Git
  • GitLab
  • GraphQL
  • Hasura
  • Java
  • JavaScript
  • Kubernetes
  • Laravel
  • linux
  • MySQL
  • Next.js
  • nginx
  • Node.js
  • NoSQL
  • Nuxt.js
  • Oracle
  • PHP
  • Python
  • React
  • Redux
  • Rspec
  • Ruby
  • Ruby on Rails
  • Sass
  • Spring Framework
  • SQL
  • TypeScript
  • Unity
  • Vue.js
  • Webサービス開発
  • Webデザイン
  • Web技術
  • インフラ
  • オブジェクト指向
  • システム開発
  • セキュリティ
  • その他
  • データベース
  • デザインパターン
  • テスト
  • ネットワーク
  • プログラミング全般
  • マイクロサービス
  • マイクロソフト系技術
  • マルチメディア
  • リファクタリング
  • 副業
  • 未分類
  • 業務知識
  • 生成AI
  • 設計
  • 関数型言語
RETURN TOP

Copyright ©  プログラミングマガジン | プライバシーポリシー