投稿日: Nov 21, 2017

本日より、Lambda@Edge の 3 つの新しい機能を使用して、ビューワー向けにパーソナライズしたコンテンツを構築し、レイテンシーを向上させてオリジンインフラストラクチャを簡素化できます。まず、コンテンツベースの動的なオリジン選択では、ビューワーの位置情報、ビューワーのデバイスタイプ、HTTP ヘッダー、URL パス、クエリ文字列、クッキーなどのリクエスト属性に応じて、異なるバックエンドオリジンサーバーにリクエストをルーティングできます。2 番目に、Amazon CloudFront のビューワー向けイベントからリモートネットワーク呼び出しを行うことができます。3 番目に、Lambda@Edge 関数からバイナリデータを生成し、Amazon CloudFront を使用してより充実したカスタマイズ済みのコンテンツを配信できます。Lambda@Edge 関数の制限も引き上げました。最大 1536 MB までのメモリを選択し、最大 50 MB までのパッケージをデプロイして、タイムアウトを最大 30 秒まで延長して Lambda@Edge 関数を実装できます。 

コンテンツベースの動的なオリジン選択: これまでの Lambda@Edge では、リクエストの転送先が CloudFront ディストリビューションに設定した定義済みのオリジンに限られていました。今回の機能拡張により、Amazon CloudFront で複数のバックエンドオリジンアプリケーションサービスを設定し、Lambda@Edge を使用してリクエストの属性に応じた適切なオリジンにリクエストを動的にルーティングできるようになりました。たとえば、複数のマイクロサービスベースのバックエンドオリジンを設定して、Lambda@Edge 関数でクエリ文字列、ヘッダー、クッキーなどのリクエスト属性を検査し、その結果に応じて動的にリクエストをルーティングできます。または、複数の異なる AWS リージョンで地理的に分散されたアプリケーションを実行している場合は、レイテンシーやデータの地域性を考慮して最適なオリジンにビューワーをルーティングできます。コンテンツベースの動的なオリジン選択では、これまでは管理を要したリバースプロキシサーバーのフリートから、サーバーレス Lambda@Edge 関数にリクエストルーティングロジックを移行することで、オリジンインフラストラクチャを簡素化することもできます。

ビューワー向けのイベントからのネットワーク呼び出し: Lambda@Edge では、オリジン向けの CloudFront イベントからのリモートネットワーク呼び出しに加えて、ビューワー向けの CloudFront イベントからのリモートネットワーク呼び出しもサポートするようになりました。たとえば、認証サーバーへのリモート呼び出しを行ってユーザー特権のレベルを確認し、各ユーザーに許可されている権限に基づいて有料コンテンツまたは無料コンテンツを提供できます。

高度なレスポンス生成: バイナリコンテンツ (イメージなど) がサポートされ、Lambda 関数の制限が引き上げられたことから、これまでよりも複雑なロジックをエッジに移行できるようになりました。たとえば、リモート呼び出しおよびバイナリのレスポンス生成により、Amazon Rekognition などのサービスを呼び出してイメージの気に入った部分を見つけてサイズ変更、トリミング、または圧縮したり、イメージに透かしを追加したり、さまざまなビューワーのデバイス向けにイメージを操作して表示を最適化したりできます。コンテンツの発行元の場合は、複数の外部ソースからのコンテンツをビューワーごとに動的にアセンブルし、コンピューティング集約型のロジックを実行して、レスポンスをカスタマイズできます。Lambda@Edge では、ビューワーのために以上のすべてを低レイテンシーで実現できます。独自のサーバーをプロビジョンしたり管理したりする必要はありません。

これらの新機能に追加料金はかかりません。Lambda@Edge の詳細については、製品ページを参照してください。これらの機能の詳しい使用方法については、以下のリソースを参照してください。

  • コンテンツベースの動的なオリジン選択を示すコードサンプルをご覧ください。
  • 動的なオリジン選択の使用方法については、こちらのブログ投稿を参照してください。
  • HTTP レスポンスの生成の詳細については、CloudFront 開発者ガイドの「HTTP レスポンスの生成」を参照してください。
  • Lambda@Edge デプロイの制限の詳細については、制限ページを参照してください。