先頃、AWSは新しいエッジコンピューティング機能であるCloudFront Functionsの一般提供を発表した。この新しいCloudFront機能を使用すると、顧客は世界中のCloudFrontエッジロケーションでJavaScript関数を実行できる。
AWSの顧客は、Amazon CloudFrontをサービスとして使用して、データ、ビデオ、APIなどのコンテンツを開発者に優しい環境で高速かつ低レイテンシで安全に配信する。2017年7月以降、リージョナルエッジキャッシュで実行される複雑で計算量の多い操作に適したLambda@Edge機能を活用できるようになった。そして今、同社はCloudFront Functionsを使用して顧客がエッジロケーションで軽量のJavaScriptコードを実行できるようにするスクリプトプラットフォームでサービスを拡張している。
AWS Lambda@Edge機能は、エッジロケーションからではなく、リージョナルデータセンタから実行される。これは、これらのリージョナルデータセンタでより多くのコンピューティングパワーが利用できるためだが、これにより配信速度が低下する。その上、このソリューションは、AWS CloudFront FunctionsがJavaScriptコードを介して配信できるようには、各エッジロケーション固有のカスタムコンテンツやコードを配信することができない。、
コンテンツは、グローバルネットワークの最も近いエッジロケーションからAWSデータセンタに配信される。顧客がAWS CloudFrontを介してコンテンツまたはコードをリクエストした時、リクエストはエンドユーザに可能な限り最高の速度でコンテンツやコードを提供する、最高の速度と最小のレイテンシーを提供するエッジロケーションにルーティングされる。
出典: https://aws.amazon.com/blogs/aws/introducing-cloudfront-functions-run-your-code-at-the-edge-with-low-latency-at-any-scale/
Amazon Web Serviceのチーフエバンジェリスト (EMEA) であるDanilo Poccia氏によるAWS Newsのブログ投稿によると、CloudFront Functionsは次のようなWebリクエストの軽量処理に理想的とのことだ:
- キャッシュキーの操作と正規化: HTTPリクエスト属性 (URL、ヘッダ、Cookie、クエリ文字列など) を変換して、オブジェクトをキャッシュするための一意の識別子や、オブジェクトが既にキャッシュされているかどうかを判断するために使用するキャッシュキーの作成。
- URLリライトとリダイレクト: リクエストを別のURLにリダイレクトするためのレスポンスの生成。
- HTTPヘッダの操作: 任意のリクエスト/レスポンスヘッダの表示、追加、変更、または削除。
- アクセス認可: リクエストを許可/拒否するためのHMACトークンやJSON Web Token (JWT) のようなユーザが生成したトークンを作成、検証によってCloudFrontを介してコンテンツを配信するためのアクセスコントロールと認可の実装。
さらに、彼は述べている:
最新のアプリケーションに必要なパフォーマンスとスケールを提供するために、CloudFront Functionsは、AWS LambdaとLambda@Edgeで使用される仮想マシン (VM) ベース分離ではなく、新しいプロセスベース分離モデルを使用します。ネットワークやファイルシステムへのアクセスの回避など、いくつかの制限を適用する必要がありました。また、関数の実行時間は1ミリ秒未満です。このようにして、1秒あたり数百万のリクエストを処理できると同時に、すべての関数の実行で優れたパフォーマンスを発揮します。関数は、コンテンツ配信ネットワーク (CDN) 全体のパフォーマンスにほとんど影響を与えません。
CloudFront FunctionsはCloudflare Workersに似ている。Cloudflare Workersは、同社のすべてのエッジインフラストラクチャで実行されるサーバーレス実行環境だ。Redditスレッドの回答者が次のように書いている:
Cloudflareは、当初からluaによる強力な軽量のネイティブスクリプト機能を備えていました。このAWSからの提供がそれに似たものであり、lambda@edgeよりもはるかに低コストで、パフォーマンスへの影響を最小限に抑えて使用できるいくつかの基盤となるCloudFront機能を公開することを望んでいました。
また、AdvantysのCTOであるArnaud Bezançon氏もツイートで次のように述べている:
Cloudflare Edgeエコシステムは、Workers、KV、およびDurableオブジェクトなども印象的です。
AWS CloudFront Functionsは、AWSユーザにとって素晴らしい追加機能です! エッジは間違いなくイノベーションの新しい分野であり、新しいフレームワークの (エッジサイドの) 遊び場です!
AWS CloudFront FunctionsはAWS CloudFrontにネイティブに組み込まれている。AWS Management Console、AWS Command Line Interface (CLI)、AWS SDK、およびAWS CloudFormationを介してユーザはCloudFront Functionsを利用できる。
同社は現在、CloudFront Functionsの100万回の呼び出しあたり0.1ドルの価格を設定している。価格設定の詳細は、価格設定ページにある。さらに、開発者はドキュメントと開発者ガイドを通じてガイドを見つけることができる。