AWS、エッジにおけるJavaScript実行環境に本格参入 CloudflareやDenoなどの競合に
今回は「AWS、エッジにおけるJavaScript実行環境に本格参入 CloudflareやDenoなどの競合に」についてご紹介します。
関連ワード (同社、実行時間、積極的等) についても参考にしながら、ぜひ本記事について議論していってくださいね。
本記事は、It Media News様で掲載されている内容を参考にしておりますので、より詳しく内容を知りたい方は、ページ下の元記事リンクより参照ください。
この記事は新野淳一氏のブログ「Publickey」に掲載された「」(2021年5月7日掲載)を、ITmedia NEWS編集部で一部編集し、転載したものです。
Amazon Web Services(AWS)は、エッジ環境で軽量なJavaScriptによる処理を実行可能な新サービス「Amazon CloudFront Functions」をしました。
AWSではすでにエッジで処理を行う「Lambda@Edge」を提供しており、そこでNode.jsとPythonによるコードを実行可能です。
しかしLambda@Edgeは13カ所のリージョナルエッジキャッシュにおいて処理が行われるのに対し、CloudFront Functionsは218カ所以上のCloudFront Edge Locationsにおいて処理が行われるため、よりユーザーに近い広範囲なロケーションで実行されます。
また、実行時間もLambda@Edgeが最大で5秒以内(ビューワによるトリガー)もしくは30秒以内(オリジンによるトリガー)なのに対して、CloudFront Functionsでは1ミリ秒以内と非常に短い時間でレスポンスを返すことが大きな特徴となっています。
その分、CloudFront FunctionsはECMAScript 5.1対応のJavaScriptランタイムのみをサポートし、メモリは2MB、パッケージサイズは10KBなどの制限があります。
CloudFront Functionsのユースケースとしては、画像変換のような一定のコンピューティングリソースを要求し時間がかかりそうな処理ではなく、URLの書き換えやCookieの処理などの軽量かつ短時間で済むものが想定されています。
Lambda@Edgeがどちらかといえばクラウドの処理をオフロードするような用途であるのに対し、CloudFront FunctionsはCDNのエッジにおいてユーザーの近くで行われる軽量な処理に向いているといえそうです(今後、実行環境は順次強化されていくと思われますが)。
エッジで進むJavaScript実行環境に、AWSも参入
CloufFront Functionsに似たサービスは、CDNプロバイダのCloudflareが、127カ所(発表時点)のCDNのエッジにJavaScriptのコードを配置し実行できる「Cloudflare Workers」としてすでにしています。
Cloudflare Workersは、その名称にあるようにService WorkerのAPIを備えています。
Node.jsの作者でありDenoの作者でもあるライアン・ダール氏が立ち上げた「Deno Company」も、グローバルに分散した環境でJavaScriptを実行するサービス「」を試験的に提供しています。
Deno DeployもService Worker APIを備えているほか、TypeScriptやWebAssemblyにも対応します。
Fastlyも、CDNのエッジでの処理のために「Compute@Edge」と呼ばれるサービスを提供しています。同社はCompute@EdgeでAssemblyScriptに対応。WebAssemblyによる処理の実行を計画しており、そのためのWebAssemblyランタイムなどを積極的にしています。
このようにエッジにおいてJavaScript/TypeScript/WebAssemblyを用いた軽量な実行環境の提供が始まっており、そして今後5Gに代表されるレイテンシが小さく高速な通信網が普及するにつれて、その性能を生かすためにエッジで処理を行うニーズも高まってくると予想されます。
今回、AWSが発表したCloudFront Functionsもそうしたニーズを想定し、各社から登場してきているエッジにおけるJavaScript系ランタイムに対して、AWSが参入することを示したように見えます。
Copyright © ITmedia, Inc. All Rights Reserved.
27828:
2021-05-10 21:07私たちが目標を達成するには二つしか方法はない。時間を投入して自分で実行するか、他の人に仕事を任せるかのどちらかである。自分で時間を投入する場合は能率を考え、人に任せる場合は効果を考えるべきである。