本文へ移動

費用と上限 ​

部屋のサーバーを置いたときの、費用の目安です。単価と無料枠は2026年10月時点のものです。Cloudflare版の量は、実際の卓で測った値をもとにしています。SkyWay版のトークン発行サーバーは、Vercelの無料のプランか、契約中のレンタルサーバーで足りるので、このページでは扱いません。

Cloudflare版 ​

単価と無料枠 ​

項目無料のプラン有料のプラン(Workers Paid、月$5)
Workersのリクエスト1日10万回月1000万回込み。超えた分は$0.30 / 100万回
Durable Objectsのリクエスト1日10万月100万込み。超えた分は$0.15 / 100万
Durable Objectsの動いていた時間1日13,000 GB-s月40万GB-s込み。超えた分は$12.50 / 100万GB-s
Durable ObjectsのSQLiteに書く行1日10万行月5000万行込み。超えた分は$1.00 / 100万行
Durable ObjectsのSQLiteから読む行1日500万行月250億行込み。超えた分は$0.001 / 100万行
R2の保存月10GB超えた分は$0.015 / GB・月
R2のClass A(PUT・一覧)月100万回超えた分は$4.50 / 100万回
R2のClass B(GET・HEAD)月1000万回超えた分は$0.36 / 100万回
  • R2は、取り出すときの転送料がかかりません。R2の無料枠は、どちらのプランでも同じです。
  • Workersは、キャッシュから返したリクエストも1回と数えます。
  • Durable Objectsは、WebSocketで受けたメッセージを20件で1リクエストと数えます。送るメッセージは数えません。
  • Durable Objectsの動いていた時間は、メッセージを処理しているあいだだけ数えます。部屋のサーバーが、つないだまま次のメッセージを待っているあいだは数えません(Hibernation)。

1卓で使う量 ​

GM・PL2人・見学1人(同時に最大5人)が4時間遊ぶ卓の見込みです。2026年10月26日に本番で測った約2時間の卓をもとにしています。この卓では、はじめにGMが部屋のデータ(約1.4万オブジェクト)を読み込み、画像と音声を128個(合わせて34MB)置きました。SQLiteの行は、v1.3.1の置きかたで同じ卓を手元で再現して数えた値です。

項目4時間の卓
Durable Objectsの動いていた時間約200 GB-s
Durable Objectsのリクエスト約3,100
SQLiteに書く行約4,000行
SQLiteから読む行約3.2万行
Workersのリクエスト約2,200回
R2のClass A約120回
R2のClass B約1,300回
  • 部屋は、オブジェクトを約8KiBずつ1行にまとめて置きます。部屋のデータを読み込んでも、書くのは400行ほどです。遊んでいるあいだは、変わったオブジェクトのある行を書き直すので、1時間に1,000行ほどです。
  • Durable Objectsのリクエストのほとんどは、WebSocketで受けたメッセージ(4時間で約3.6万件)です。
  • 動いていた時間は、つないでいた時間の1割ほどです。
  • R2の操作とWorkersのリクエストは、ほとんどが人の入るときに画像と音声を取り寄せる分なので、長く遊んでもあまり増えません。
  • v1.3.0までは、オブジェクトを1つずつ1行に置いていたので、同じ卓で書く行は約4万行、読む行は約126万行でした(→ v1.3.1)。v1.3.1より前に作った部屋は、消えるまで前の置きかたのままです。

画像と音声は部屋と一緒に消えるので、卓のたびに部屋を作れば、そのたびに上げ直します。部屋のデータも、そのたびに読み込み直して書きます。保存量は、そのとき残っている部屋の分だけです(部屋は最後の1人が抜けてから既定24時間で消えるので、1卓あたり1日ほど残ります)。

最初に当たる上限 ​

無料のプランで最初に当たるのは、SQLiteに書く行(1日10万行)で、1日に25卓ほどが目安です。そのすぐ後に、Durable Objectsのリクエスト(1日10万)が、1日に30卓ほどで当たります。Workersのリクエストは1日に45卓ほど、動いていた時間は60卓ほど、SQLiteから読む行は150卓ほどまでもちます。上限を超えると、その日のうちは(UTCの0時、日本時間の朝9時まで)、部屋のサーバーへの新しい操作が失敗します。

R2は、無料枠に収まることがほとんどです。1つの部屋に大量に置かれるのを抑えるにはROOM_STORAGE_LIMIT_MBを、置き場所の合計が増えたことに気づくにはADMIN_STORAGE_ALERT_GBを入れます(→ 設定項目)。

有料のプラン(月$5)では、月に約320卓までなら、どの項目も込みの量に収まります。それを超えた分は、すべての項目の超過を合わせても1卓あたり約$0.01です。

規模ごとの見込み ​

4時間の卓の見込みをもとにした月額です。

規模(月の卓の数)プラン月額の見込み内訳
身内(10)無料$0どれも無料枠に収まる
小さな集まり(150)無料$01日に平均5卓。どれも無料枠に収まる
コミュニティ(500)無料$01日に平均17卓。25卓を超える日があるなら、有料のプラン(月$5)にする
公開インスタンス(3,000)有料約$9月$5と、動いていた時間の超過が約$3、Durable Objectsのリクエストの超過が約$1
大規模(30,000)有料約$200月$5と、動いていた時間の超過が約$72、SQLiteに書く行の超過が約$68。R2・Workers・リクエストは合わせて約$54

規模が大きくなると、月額の多くは、動いていた時間とSQLiteに書く行の超過分です。これらは見積もりです。実際の使われかたは、運用のダッシュボードと部屋の記録で確かめてください。

Vercel版 ​

Vercel版は、使った量に応じて数えるものが多く、1卓あたりの見込みはまだ出していません。

  • Function:WebSocketがつながっているあいだ、Functionが動き続けます。Fluid computeでは、1つのインスタンスが多くのWebSocketを受けますが、つながっている時間のメモリの使用量が数えられます。3時間操作の無いタブは部屋から外すので、開いたまま忘れられたタブでも動き続けはしません。
  • Redis(Upstash for Redis):無料のプラン(Free)では、1か月に50万回のコマンド、置ける量は256MB、転送は1か月に10GBまでです。無料で作れるデータベースは、1つのUpstashのアカウントに1つです。超えたときの扱いは、Upstashの料金のページで確かめてください。部屋のサーバーは、部屋の状態を書くほかに、同じ部屋の人が別々のインスタンスにつながったとき、そのやりとりもRedisで中継します。中継は、受けたフレームごとと、届ける相手ごとにコマンドを1回使います。6人の部屋で1人がカーソルを動かし続けると、1時間に20万回ほどになります。中継しているWebSocketが生きているかの確認(ping)も、受け持ちのインスタンスまで届けるので、1つにつき1時間に300回ほど使います。中継が無くても、部屋に1人でもつながっているあいだは、受け持ちの更新や30秒ごとの見回りで、1時間に1,900回ほど使います。タブを開いたままにしておいても、3時間操作が無ければ部屋から外れるので、使うのはそこまで(6,000回ほど)です。そのため、Freeの50万回は、中継の多い卓1つで使い切ることがあります。続けて遊ぶなら、プロジェクトのUsageとUpstashのダッシュボードでコマンドの数を見て、足りなければ使った分だけ払うプランに替えてください。
  • Vercel Blob:無料のプラン(Hobby)では、1か月に、置く量は1GB、読み出し(簡単な操作)は1万回、書き込みや一覧(高度な操作)は2,000回、転送は10GBまでです。ダッシュボードでストアの中を見ても、操作に数えられます。超えると料金はかからず、30日たつまでVercel Blobが使えなくなります(→ Vercel Blobの料金)。消し残した画像や音声の掃除は、1回に一覧を1回使います。掃除は、1日1回のVercel Cronのほか、画像や音声を20件置くごとに1回です。
  • Vercel Cron:無料のプランは1日1回までです。部屋のサーバーは、1日1回の掃除にだけ使います。

Vercelの無料のプラン(Hobby)は、個人の非商用での利用が前提です。大きな卓や長い卓を続けて開くなら、それぞれの料金のページと、プロジェクトのUsageを確かめてください。

MITライセンスで公開しています