当社が求めてきた開発プラットフォームの構築を目標に掲げて、2017年にCloudflare Workers®を立ち上げました。Cloudflareがインフラストラクチャの設定や保守のオーバーヘッドを管理する一方で、開発者のみなさんが素晴らしいソフトウェアを構築できるようにしたいと考えています。Workersは、最初のコード行から最初のアプリケーションまでグローバルに広がる製品が完成するまでずっとみなさんに寄り添います。当社のEdgeネットワークをプログラム可能にし、世界中200を超えるロケーションにあるサーバーを提供することで、さらに大きなアイディアを実現させる力を提供します。

Cloudflareは、水面下でさらにパワフルで柔軟性のあるEdgeの開発を推進するために作業を続けてきました。そして本日、プライベートベータ版におけるCPU制限がない、新プラットフォームのWorkers Unboundのローンチとともに、この新局面を発表できることになりました(詳細についてはこちらでサインアップしてご覧ください)。

Workers Unboundとは?Cloudflare Workersとの違いは?

Workers Unboundは、オリジナルのCloudflare Workers(現在、Workers Bundledと呼んでいます)と似ていますが、さらに長い実行時間を必要とするアプリケーション向けです。処理負荷がどれだけ高くても、お客様がそれをWorkersに移動させることができるようにCPU制限を拡張しています。そのため開発者は、Edgeで高速かつシンプルな作業をするか、リソースが無制限の集中型クラウドで重いコンピューティングを実行するか、どちらかを選ぶ必要がなくなります。

このプラットフォームは、画像処理や複雑なアルゴリズムといった負荷のかかるコンピューティングを伴う新しいクラスのアプリケーションをアンロックします。実際に、企業顧客のみなさまからアンロックする機能が欲しいというリクエストを多く以前からいただいており、現在、広く一般にもご利用いただけるように作業を進めているところです。

Workers Unboundは、多目的のコンピューティングプラットフォームを構築するものですが、単なるニッチなエッジコンピューティングの代替品ではありません。以前であれば、集中型のサーバーレスプラットフォームで実行するべきだと考えていた処理負荷に関して、当社はさらに高速で柔軟性があり、価格も抑えた、魅力的な製品にしたいと考えています。

いいね、使ってみたい!という方へ

プライベートデータの開発者の中から一部のグループの方々にWorkers Unboundのご提供をさせていただきます。こちらのフォームにご自分のユースケースの詳細をご入力ください。当社よりご連絡させていただきます。みなさまからのご意見·ご感想、構築した結果を楽しみにお待ちしております。

水面下で何が?

現在、既知のサーバーレスは古いパラダイムの上に構築されているために制約を受けています。サーバーレスプラットフォームの多くがクラウドコンピューティングのオリジンから受け継いだ制約があります。Cloudflareでは、Edge上で構築し、より複雑なアプリケーション向けにこの技術のパフォーマンスも規模も広げることで、サーバーレスを見直す機会にしました。

当社はV8 Isolateでコードを実行することで、パフォーマンスのメリットを受けます。V8 Isolateは最短のコールドスタート時間で迅速に開始できるようにデザインされていて、ブラウザでJavaScriptエンジンを実行するために、Google Chromeチームが構築した技術です。そして、マルチテナントコードの実行のための新しいモデルが導入されています。変数を書き換えられるコードと変数をグループ化する軽量のコンテキストを提供します。

Isolate(分離)は、他のほとんどのサーバーレスプロバイダーのアーキテクチャの主要原則であるコンテナよりはるかに軽量です。コンテナは、バーチャルマシンを効果的に実行し、それに関連するオーバーヘッドがたくさん存在します。つまり、一元化された環境の外で、処理負荷を実行するのは非常に難しいということです。

さらにWorkersでの処理一つで、何百何千ものisolateを実行でき、切り替えもシームレスです。これが意味することは、一つのオペレーティングシステム処理で多くのお客様からのコードを実行することが可能になるということです。この低いランタイムオーバーヘッドが、どのようにWorkersが多くのテナントをサポートするために拡張できるかという説明の一部です。

この説明には、コード配布も含まれています。世界中どこへでもお客様にサービスが提供できる能力とは、エッジベースのサーバーレスと地域ベースのサーバーレスとの重要な違いですが、顧客コードを一度にどのサーバーにも送信できなければなりません。そこで再度、Isolateが助け舟を出します。ブラウザで見ることができるのと同じ標準JavaScript APIとV8を組み込んだのです。つまり、サーバーレスエッジアプリケーションが軽量化され、高い性能を持ったということです。世界中に広がるデーターセンターのサーバーすべてにWorkersスクリプトを配布することができるため、サーバーはどこでも、あらゆるお客様に向けたリクエストに対応できます。

経費への影響は?

当社のEdgeにおけるパフォーマンスの向上がお客様のコスト削減につながるため、大規模なパフォーマンスは、当社にとって最優先事項です。当社がJavaScriptランタイムのオーバーヘッドを一度支払うと、個々のオーバーヘッドがほとんどなく、本質的に無制限なスクリプトが実行できるようになります。

AWS Lambdaと比較すると、Workers Unboundは実に費用対効果が高いプラットフォームです。サーバーレスなら、ご利用分の支払いだけで十分です。訳のわからない追加料金はありません。Workersは、APIゲートウェイ手数料やDNSリクエスト料金のような隠れた追加料金を支払う必要がなくなります。

サーバーレス価格設定の比較*

Workers Unbound AWS Lambda AWS Lambda @ Edge
リクエスト(MMリクエストごと) $0.15 $0.20-$0.28 $0.60
稼働期間(MM GB-秒ごと) $12.50 $16.67-$22.92 $50.01
データ転送(エグレス

GBごと)
$0.09 $0.09-$0.16 $0.09-$0.16
APIゲートウェイ(MMリクエストごと) $0 $3.50-$4.68 CloudFront 価格設定
DNS クエリ(MMリクエストごと) $0 $0.40 $0.40

*202074日現在、aws.amazon.com/lambda/pricingで公開されている価格設定に基づきます。AWSで公開されている稼働時間価格設定は1GB-秒に基づきます。この表では、理解しやすくするために100万を掛けた値で表示されています。AWSの価格帯は地域の価格設定によって異なります。全ての価格は、小数点第2位で四捨五入しています。AWSへのデータ転送は、Amazon EC2からインターネット(1 GB/月以上、最大9.999 TB/月まで)へのデータ送信転送に基づきます。AWSAPIゲートウェイは、Rest API1MM/月、最大333 MM/月まで)に基づきます。Workers UnboundサービスとAWS Lambdaサービスの両方で、毎月1MMの無料リクエストと400,000 GB-秒のコンピューティングタイムをご提供しています。AWSへのDNSクエリ率は、月当たり最大10億件のクエリまでの記載価格に基づいています。

どのくらいの節約が見込めるか

数字を試験するために、hello worldGraphQLサーバーをWorkersとLambdaの両方にデプロイしました。Lambdaでの実行時間の中央値は、1.54ミリ秒でした。同じ処理負荷でWorkersでも行ったところ、0.90ミリ秒しかかかりませんでした。計算し、AWSが請求する(インターネットからリクエストを許可するAPIゲートウェイを含めて)不透明な料金すべてを考慮した結果、Workers Unboundを利用すると、最大75%の節約が見込めることがわかりました。しかもこれは、「hello world!」だけで出た結果です。何百万ものユーザーのために複雑な処理負荷を実行した場合のコスト削減を想像してみてください。

当社がどのように他社と競合できているのかと疑問に思っていらっしゃるかもしれません。その答えは、効率性という一言に尽きます。Workersの軽量性によって、同じ作業が可能となります。しかし、プラットフォームオーバーヘッドとリソース消費を低くすることができます。下のGraphQL hello worldテストの結果は、実行時間とプラットフォームプロバイダーのオーバーヘッドを示しています。このテストは「hello world」だけですが、プロバイダー間(Isorate vs コンテナなど)のばらつきは、アーキテクチャ上の違いであると説明できます。

サーバーレスプラットフォームでのGaphQL hello world の実行時間(ミリ秒)*

Cloudflare Workers AWS Lambda Google Cloud Functions Azure Functions
最短 0.58 1.22 6.16 5.00
p50 0.90 154 10.41 21.00
p90 1.24 7.45 15.93 110.00
p99 3.32 57.51 20.25 207.96
最長 16.39 398.54 31933.18 2768.00

*128MBメモリ層が、各プラットフォームで使用されました。本テストが行われたのは、AWSが米国東部、Googleが米国中央部、Azureが米国西部です。各プラットフォームテストは、1時間にわたり、1秒あたり1リクエストのスループットで実行されました。実行時間は、各プロバイダーのログインシステムから取得しています。

こうした数字が物語り、Workersのアーキテクチャの効率性を明らかにしていると言えるでしょう。Workersでは、迅速な結果だけではなく、当社がお客様に提供するコスト削減のメリットも受けられます。

いつから利用できるか

Workers Unboundは、当社のプラットフォームにとって大きな変革ですので、時間を掛けてゆっくりと調整していくことにしています。もし早めにご利用を始めたい、または利用開始時を知りたいとお考えの場合は、こちらにサインアップをして詳細をご覧ください。

今週は、楽しみなお知らせがあります。Serverless Weekのチェックをお忘れなく!