Lambda@Edge は、Amazon CloudFrontの機能で、アプリケーションのユーザーに近いロケーションでコードを実行できるため、パフォーマンスが向上し、待ち時間が短縮されます。Lambda@Edge では、世界中の複数のロケーションでインフラストラクチャをプロビジョニングまたは管理する必要はありません。課金は実際に使用したコンピューティング時間に対してのみ発生し、コードが実行されていないときには料金も発生しません。
Lambda@Edge を使用すると、サーバー管理を何も行わなくても、ウェブアプリケーションをグローバルに分散させ、パフォーマンスを向上させることができます。Lambda@Edge は、Amazon CloudFront コンテンツ配信ネットワーク (CDN) によって生成されたイベントに対応してコードを実行します。コードを AWS Lambda にアップロードするだけで自動的にコードの実行やスケーリングが行われ、エンドユーザーに最も近い AWS ロケーションでの高可用性が実現します。
メリット
応答性の高いアプリケーションを構築する
Lambda@Edge は、ユーザーに近い AWS のロケーションでコードをグローバルに実行するので、機能が充実した、高性能で低レイテンシーのカスタマイズされたコンテンツを配信できます。
サーバー管理が不要
オリジンサーバーを複数のロケーションでプロビジョニング、拡張、管理したり、ロードバランシングやドメインネームシステム (DNS) のルーティングサービスを設定しなくても、世界中の AWS でコードを自動的にスケールして実行することができます。オリジンで実行しているアプリケーションに何も変更を加えずに、新しい機能を追加することができます。最後に、Lambda@Edge と Amazon CloudFront を使用することで、従来の CDN より管理するオリジンインフラストラクチャが少なくなります。
コンテンツ配信をカスタマイズする
Lambda@Edge を使用すると、Amazon CloudFront CDN を介して配信されるコンテンツをカスタマイズできることに加えて、アプリケーションのパフォーマンスに対するニーズに基づいて、コンピューティングリソースと実行時間をカスタマイズできます。
仕組み
![AWS Lambda@Edge: 仕組み AWS Lambda@Edge: 仕組み](https://d1.awsstatic.com/products/cloudfront/AWS-Lambda-at-Edge_How-It-Works-diagram.7ed76b49010fff37b53eb87467cd922b391a3cc7.png)
ユースケース
オリジンインフラストラクチャを単純化し、負荷を軽減する
Lambda@Edge は、オリジンの拡張機能として、またはそれに置き換えて使用することができます。これにより、エッジでの単純な HTTP リクエストと応答処理から、ウェブサイトセキュリティ、リアルタイム画像変換、インテリジェントなボットの軽減、検索エンジンの最適化など、より高度な機能に至るまですべてを実行できます。
ウェブサイトセキュリティとプライバシー
Lambda 関数をトリガーして、オリジン上のアプリケーションコードを変更することなく、すべてのオリジン応答に HTTP セキュリティヘッダーを追加できます。これにより、ユーザーやコンテンツプロバイダのセキュリティとプライバシーが向上し、CloudFront を使用して低いレイテンシーでコンテンツを配信することができます。
ブログを読む。 >>
![ウェブサイトセキュリティとプライバシー ウェブサイトセキュリティとプライバシー](https://d1.awsstatic.com/products/cloudfront/AWS-Lambda-at-Edge_Website-Security-Privacy-diagram%20Oct%202018.f21955f79e01b70af1ba03b88d33058a61ab7b0a.png)
エッジの動的ウェブアプリケーション
開発者は Lambda@Edge と他の AWS のサービスを組み合わせることで、自動的なスケーリング、バックアップ、データセンターの冗長性に必要なオリジンインフラストラクチャや管理作業なしに、自動的に拡大縮小できる強力なウェブアプリケーションをエッジで構築できます。
![エッジの動的ウェブアプリケーション エッジの動的ウェブアプリケーション](https://d1.awsstatic.com/products/cloudfront/AWS-Lambda-at-Edge_Dynamic-Web-Applications-diagram%20Oct%202018.bd812cc73e6417ec6216a027c2e95db8da713339.png)
検索エンジン最適化 (SEO)
Lambda@Edge を使用して、ウェブサイトの検索エンジン最適化 (SEO) を向上させることができます。たとえば、ユーザーエージェントが Googlebot や Bingbot などの検索エンジンのボットである場合、Amazon S3 に格納されている事前レンダリングされた HTML ページを配信するために Lambda 関数をトリガーできます。
ブログを読む。 >>
![SEO SEO](https://d1.awsstatic.com/products/cloudfront/AWS-Lambda-at-Edge_Search-Engine-Optimization-SEO1-diagram%20Oct%202018.70cd8a474e7e7258fedff83fb508953379c4265f.png)
オリジンとデータセンターをインテリジェントにルーティング
Lambda@Edge を使用して、さまざまなビューワーの特性に基づいてリクエストをさまざまなオリジンに動的にルーティングすることで、ユーザーのパフォーマンスを向上させながら、オリジンの負荷のバランスを取ることができます。たとえば、ビューワーの位置に基づいて、ホームリージョン内のオリジンにリクエストをルーティングすることができます。
ブログを読む。 >>
![](https://d1.awsstatic.com/products/cloudfront/AWS-Lambda-at-Edge_Intelligently-Route-Across-Origins-Data-Centers-diagram.93f5f7ac26fc356e82be3012478fc9dc9e76c091.png)
エッジでボットを緩和
Lambda@Edge は、不要なボットをエッジでブロックし、許可されたトラフィックを通過させるのに役立ちます。これらの自動化されたプロセスをインテリジェントに軽減することにより、実際のユーザーのパフォーマンスを向上させながら、有用でないウェブクローラーやボットからオリジンインフラストラクチャを保護することができます。
![エッジでボットを緩和 エッジでボットを緩和](https://d1.awsstatic.com/products/cloudfront/AWS-Lambda-at-Edge_Bot-Mitigation-diagram%20Oct%202018.de1498290487704d8522798f655fd819ced31ec6.png)
ユーザーエクスペリエンスの向上
Lambda@Edge は、パフォーマンスを犠牲にすることなくコンテンツをパーソナライズできるようにすることで、世界中のウェブサイトやウェブアプリケーションのユーザーエクスペリエンスを向上させることができます。
リアルタイム画像変換
ユーザー特性に基づいてオンザフライでイメージを変換することで、ユーザーエクスペリエンスをカスタマイズできます。たとえば、ビューアのデバイスタイプ (モバイル、デスクトップ、タブレット) に基づいてイメージのサイズを変更できます。また、CloudFront エッジロケーションで変換された画像をキャッシュして、画像を配信するときのパフォーマンスをさらに向上させることもできます。
ブログを読む。>>
![リアルタイム画像変換 リアルタイム画像変換](https://d1.awsstatic.com/products/cloudfront/AWS-Lambda-at-Edge_Real-time-Image-Transformation-diagram.733d6d40faba6081da1089dbb6638d7fcddb29ef.png)
A/B テスト
ブラウザの URL を変更したり変更したりすることなく、ウェブサイトのさまざまなバージョンをテストしてユーザーに提供することができます。 これにより、ウェブサイトのアップデートをシームレスにリリースしてウェブサイトの全体的なエクスペリエンスを向上させ、引き続きユーザーの応答性を高めることができます。
![A/B テスト A/B テスト](https://d1.awsstatic.com/products/cloudfront/AWS-Lambda-at-Edge_Blue-Green-Testing-diagram%20Oct%202018.c28c2aa68d336a53e34a1a3971df89c39d838c91.png)
ユーザーの認証と認可
Lambda@Edge を使用すると、ウェブサイト上のプレミアム有料コンテンツのユーザーを認証および認可し、不正なリクエストがオリジンインフラストラクチャに到達する前に除外することができます。たとえば、Lambda 機能を起動して、Amazon Cognito などの認証およびユーザー管理サービスを呼び出すことによって、各ビューワーのリクエストを認可することができます。
ブログを読む。 >>
![ユーザーの認証と認可 ユーザーの認証と認可](https://d1.awsstatic.com/products/cloudfront/AWS-Lambda-at-Edge_User-Authentication-Authorization-diagram%20Oct%202018.70f98c0359e15e154c2fc4cad06e0a7bd1a5d207.png)
ユーザーの優先順位付け
Lambda@Edge は、ユーザーをさまざまなページや経験にルーティングすることによって、ウェブサイトへのアクセスを制御し、優先順位を付けるのに役立ちます。たとえば、ショッピングのセール期間中にトラフィックが急増したときに、コードを実行して e コマースウェブサイトでプレミアムユーザーと有料ユーザーの優先順位付けを行う Lambda 関数を起動することができます。他の買い物客を一時的な「待合室」にリダイレクトすることもできます。待合室はブランディングやマーケティングのやり取りを行う代わりのサイトで、そこでメインの小売サイトにアクセスする順番待ちをすることができます。
ブログを読む。 >>
![ユーザーの優先順位付け ユーザーの優先順位付け](https://d1.awsstatic.com/products/cloudfront/AWS-Lambda-at-Edge_User-Prioritization-diagram%20Oct%202018.7e875c67897bc8100c657840f3527131ac7b70cf.png)
ユーザーの追跡と分析
Lambda@Edge と Kinesis を一緒に使用することで、リアルタイムのストリーミングデータを処理できるので、クリックストリームの分析を含め、ウェブサイトやモバイルアプリケーションでグローバルに展開されるユーザーアクティビティを追跡および分析できます。
ブログを読む。>>
![ユーザーの追跡と分析 ユーザーの追跡と分析](https://d1.awsstatic.com/products/cloudfront/AWS-Lambda-at-Edge_User-Tracking-Analytics-diagram%20Oct%202018.5cc920f99c9450467b7290c20a8a4eb7c444e915.png)