Supabaseの無料枠は、超えても課金されない。代わりにアプリが止まる

Supabaseの無料枠で何組まで持つかの実測。Realtimeが52組でいちばん早く止まる アプリ開発

※本記事にはプロモーションを含みます。

個人開発のアプリをSupabaseの無料枠のまま出そうとしたとき、月にいくらかかるのかが気になって調べ始めました。ところが料金表を上から読んでも、自分のアプリが何人まで耐えられるのかまでは分かりません。実際に数えてみたところ、心配すべき場所は容量でも通信量でもなく、まったく別のところにありました。

無料枠を超えても請求は来ない。代わりにその機能が止まる

無料枠の怖いところは、使いすぎて請求書が届くことではありません。公式のドキュメントには、枠を超えた項目はその請求期間が終わるまで使えなくなる、と書いてあります。つまりアプリが重くなるのではなく、その機能だけ動かなくなるのです。

After exceeding the quota for a usage item, further usage of that item is disallowed until the next billing cycle.

(枠を超えた項目は、次の請求期間まで以降の利用が許可されません)

もうひとつ、無料プランには7日間ほとんど使われないとプロジェクトが自動で停止する決まりもあります。利用者がまだ数人しかいない時期がいちばん止まりやすいので、出したばかりのアプリとは相性がよくありません。最初に入れてくれた人の画面が動かない、という形がいちばん避けたいところでした。

無料枠を検討しているなら、超えたときに何が起きるかを先に読んでおくと判断が変わります。止まって困る機能があるなら、そこが実質の締切になるからです。

先に埋まるのは容量ではなく、同時に開いている人の数だった

料金表を開くと、まずデータベースの500MBが目に入ります。ところが私のアプリで先に頭を打ったのは容量ではなく、変更をその場で配るRealtimeという仕組みの方でした。Realtimeは変更1回につき、それを聞いている端末の数だけ数えられるので、人数が増えると掛け算で伸びていくのです。

家族の位置を共有するアプリなので、4人家族なら1人の移動を4台が聞いています。位置を受け取るたびに書き換えていた作りでは、20秒ごとに4×4で16通が流れる計算でした。容量は1組で数MBしか使わないのに、配信だけが桁違いに増えていたわけです。

無料枠の4つの項目それぞれについて、家族1組あたりの消費を測り、何組で頭を打つかを出しました。

無料枠の項目上限家族1組の消費何組で止まるか
Realtimeメッセージ200万通/月37,920通52組
データベース容量500MB2.1MB233組
通信量(Egress)5GB/月約19MB約260組
Edge Function50万回/月約900回約550組

4つ並べると、いちばん小さい数字がそのまま全体の上限になることがはっきりします。容量が233組まで耐えても、配信が52組で止まればアプリは52組で止まるのです。数字は家族4人が1日じゅう全員アプリを開いている最悪の場合なので、実際に見ている人が1人なら消費はその4分の1になります。

同じように無料枠で出そうとしているなら、利用者の数が掛け算になっている場所を先に探してみてください。容量のように足し算で増える項目より、そちらが早く埋まります。

測らずに出した見積もりは、実際と違っていた

私は設計のメモに「月53円が2.8円になる」と書いていました。これは料金表から計算しただけで、一度も測っていない数字です。あとから実際に数えてみると、前提そのものがずれていたことが分かりました。

通学する子どもの丸1日を再生して、端末が送った回数と実際に配信された回数を数え直しました。1人1日で944回送っていたのに対し、配信されたのは79回です。削減率にして91.6%、無料枠で持つ家族の数は4組から52組へ変わりました。

効いている順に3つあります。

  • 同じ場所(家・学校・職場)の中にいる間は配信しない。1日の大半がここに入る
  • GPSの誤差より小さい動きは「動いた」と数えない。屋内では誤差が±50mまで開く
  • 25m動いて45秒たつまで配信しない。地図の点は25mでは1pxも動かない

足あとの記録そのものは間引いていません。減らしたのは配信だけなので、あとから履歴を開いたときに見える情報は前と同じです。

料金表からの計算は出発点にはなっても、根拠にはなりません。1日ぶんを再生して数える道具を先に作っておくと、直したあとの効果をその場で確かめられます。

本人が見られないデータを、29日ぶん預かっていた

容量の方にも、数字を見て初めて気づいた問題がありました。足あとを31日ぶん保存していたのに、無料で見られるのは直近2日ぶんだけだったのです。差し引き29日ぶんは、持ち主自身が開けないデータでした。

保存期間をプランに合わせて3日へ縮めたところ、1組あたり25MBだったものが2.1MBになりました。500MBで持つ家族の数は20組から233組へ増えたので、容量は先に詰まる場所ではなくなったわけです。

これは容量の話であると同時に、預かる期間の話でもあります。見せていないデータを持ち続ける理由はないので、保持期間は見せている期間に合わせるのが筋でした。容量を減らそうとして見つけた問題が、結果として設計の筋を通すことにもなったのです。

それでも無料のままでは出さないと決めた

ここまで減らしても、無料枠で耐えられるのは52組です。その手前に「7日使われないと止まる」という条件もあるため、利用者が増える前の時期がいちばん危ないままでした。

有料のProは月25ドルで、枠を超えても止まらず、日次のバックアップも付きます。Realtimeは500万通まで増えるので、同じ計算でおよそ130組です。超えたぶんは100万通あたり2.50ドルの従量なので、26組ぶん増えても400円弱にしかなりません。

そこで判断の基準を、「アプリが増えたら有料にする」ではなく「利用者が1人でも付いたらProに上げる」に決めました。止まって困る人がいる状態と、無料で止まる可能性を、同時に抱えないためです。

無料枠は試す場所としては十分でも、人に使ってもらう場所としては条件が付きます。これから同じように出そうとしているなら、掛け算になっている場所が何組で埋まるかを、公開する前に一度だけ数えてみてはどうでしょうか。

あわせて読む

出典

あわせて読みたい

関連する本・道具

コメント

タイトルとURLをコピーしました