2022年5月、deno deploy beta 4が発表されました!
その中で、deno deployの価格設定も今回初めて公表されました。
まだ今後も機能が追加されるということで、詳細については発表されていない部分も多そうですが、とりあえず同種のサービスであるcloudflare workersと比較してみたいと思います。
無料枠
それぞれのサービスには無料枠があります。
まずは無料枠の範囲内でできることを比較してみたいと思います。
公式ドキュメントを参照して書きましたが、リストは不完全です。足した方がいい情報や間違っている情報がありましたら、コメントしていただけると有難いです。
cloudflare workers | deno deploy | |
---|---|---|
リクエスト数 | 10万/日 | 10万/日 |
CPU時間 | 10ms | 10ms(平均とのこと) |
データセンター数 | 270 | 32(今後追加するとのこと) |
コールドスタート | 0ms | ? |
メモリ | 128 MB | ? |
プロジェクト個数 | 最大30(今後増加とのこと) | ? |
TypeScript実行 | ×(事前にトランスパイルすれば可) | ○ |
wasm実行 | ○ | ○ |
JSX実行 | ?(事前にトランスパイルすれば可) | ○ |
GitHub統合 | ? | ○(privateリポジトリ可) |
Worker間の通信 | ? | ○(BroadcastChannel API) |
対応Web APIの数 | ? | ? |
静的ファイル | ×(kvを利用すれば可能) | ○ |
環境変数 | 64個まで | ? |
デフォルトで与えられるドメイン | *.workers.dev | *.deno.dev |
カスタムドメイン | ○ | ○ |
deno deployのCPU Timeについては、コアチームがdiscordに書いているところによると、平均で計算されるようです。つまり、CPU Timeが10msを超えたからといっていきなりシャットダウンされるわけではないそうです。(他のリクエストが10msを下回っている場合、それと平均して10ms以下になればOK)
有料枠
続いて、有料プランの価格設定と機能を比較していきたいと思います。
cloudflare workers | deno deploy | |
---|---|---|
基本価格 | $5/月 | $10/月 |
リクエストに対する価格 | 100万リクエストあたり$0.15/月 | 500万リクエスト/月までは追加料金なし。 500万リクエストを超える分は、100万リクエストあたり$2/月。 |
CPU時間 | ? | 50ms(平均とのこと) |
データ転送 | ? | 100GiBまで追加料金なし。 超過分は1GiBあたり$0.3 |
プロジェクト個数 | 最大100 | ? |
有料枠の価格については基本価格+リクエストに対する価格で計算されます。
価格設定についてはcloudflare workersのほうが安いようです。
ただしdeno deploy側はMore features coming soon
と書かれているため、機能面がこれから強化されていくものと思われます。
また後述の通りcloudflare workersは裏側のS3やlambdaやGoogle cloud Functionと連携するような使い方がメインになると思います。対するdeno deployは、それだけでバックエンドの処理を完結させるような使い方になるので、全体でみるとdeno deployのほうが安くなる場面もなくはないのだと思います。
使い方や特徴の比較
実際に両者を使ってみて分かったのですが、両者のサービス内容は似通っているものの、ターゲットとする領域がそれぞれ違うように感じられました。
以下にそれぞれの特徴を対比させて書いています。
cloudflare workers | ⇔ | deno deploy |
---|---|---|
既存バックエンドに付加する形で使う | ⇔ | サーバーサイドの処理をここで全て捌く |
(裏側にメインのサーバーがあることが前提で)BFFとして使う | ⇔ | (BFFではなく)ここで処理を全て完結させる |
既存フレームワーク(Next.js等)からのスムーズな移行が可能 | ⇔ | Freshなどの、CDN Edgeで動くことを前提とした新世代のフレームワークが使える |
(npm installなど)他のNode.jsアプリケーションと同じような開発体験 | ⇔ | import文にURLを書けばライブラリが使える&TSが動くので、ローカルでビルドする手間が無い |
kvやドメインなどのcloudflare社のサービスとの連携がスムーズ | ⇔ |
GitHubと連携したサービスが便利 (例:GitHubリポジトリに置いたファイルが静的ファイルとして読める/連携にあたって特に設定の必要なし など) (kvなどはこれから実装予定) |
導入事例や日本語記事が多数ある | ⇔ | deno deployの足回りを切り出してエンタープライズ向けに製品化したものが、サーバーレスサービス各社のプラットフォームとして使われている |
基本的には 既存Node.jsアプリケーションに付加する形で使うcloudflare workers と Edgeで処理を完結させるdeno deploy という使い分けになりそうです。
それに加えて、サービス継続年数の違いによる機能や情報量の差などが選択のポイントになってきそうです。
個人的にはdeno deployが足回りを同業他社向けに製品化しているのが面白いなと思いました。これで競合相手を減らしつつ、企業向けなので安定した収益が望めるということなのでしょう。
感想
さて、ここまで両者を対立させるような形で書いてきましたが、実はcloudflare workersとdeno deployはアーキテクチャ上の共通点も多く、ほぼ同じようなことができます。
また、両者はwintercgというワーキンググループを共同で立ち上げ、Web APIの標準化/共通化にも取り組んでいます。
両者とも普通のWebサービスを立ち上げるのには十分な機能がそろっており、production readyと考えていいです。
何よりEdge workerのいい点は気軽にサーバーを建てたり消したりできるという点です。
両者とも無料プランがあるので、迷ったらまずは試してみることをオススメします!