前回の記事でバックエンドの構成まで説明しました。ここでは具体的なデータを見ながら、どのくらいのコストがかかっているのかを見ていきます。
Clerk(認証)の実態
アクティブユーザー数
8月時点で 27,103アクティブユーザー が存在しています。先月は一気に伸び、4万3,000アクティブユーザー増えました。
本来は無料で使えた
Clerkの現行プランでは、1ヶ月に5万アクティブユーザーまで無料です。しかも累計ではなくその月のアクティブユーザー数なので、かなり良心的です。実感としても、そう簡単には超えません。バズった後でも超えていません。
つまり、本来であれば無料で使えたのです。
なぜ25ドル課金しているのか
理由はセッションの有効期間です。無料プランでは、セッション有効期間を7日間までしか設定できません。
7日までだと、1週間経ったらアプリが勝手にログアウトされてしまいます。もう一度ログインが必要になる、非常に手間な状態です。
現在はマキシマムライフタイムを10年に設定しています。本来は短いスパンでログアウトさせて再ログインさせたほうがセキュリティ的には良いのですが、SNSアプリなのでセッションが切れてほしくありません。XやInstagramを使っていて勝手にログアウトされることはほぼなく、立ち上げたら毎回ログイン状態で見られます。同じ体験にしたかったために課金しました。
ただし、リフレッシュトークンをアプリ起動時に更新する実装にすれば、10年に設定しなくてもよかった可能性があります。実装を工夫すれば課金せずに済んだかもしれません。知識不足だったところです。
ただし、モデレーションをしやすくする機能や、マルチセッションハンドリング(アカウント切り替え機構)を使いたかったので、遅かれ早かれプロプランには課金することになったと思います。
5万ユーザーを超えたらどうなるか
注意点として、25ドルを支払っても月間5万アクティブユーザーという無料枠は変わりません。
5万を超えると、1人あたり約0.03ドルの従量課金になります。試しに計算させてみたところ、以下の結果になりました。
- 5万1人の場合:超過分1人あたり約3.2円
- さらに5万人増えた場合:月16万3,000円
認証だけでこの金額になるため、ユーザーが増えるほどClerkのコストパフォーマンスは悪くなっていきます。
ただし、その規模になった時点で黒字化できていれば、この程度はすぐにペイできます。仮に10万アクティブユーザーでLTVが1人300円だとしても3,000万円になるので、月16万円のコストは十分に回収できる規模です。
認証基盤は後から変えられない
特にC向けのスタートアップはユーザーが急激に増える可能性があります。PMFを達成したアプリはアクセスが一気に伸びるため、どのくらい捌けるのかを最初に確認しておくべきです。
どの程度のユーザーが集まったらどの程度のコストになるのかは、要件定義の段階で詰めておかないと後で困ります。特に認証は後から変えようとしても非常に困難です。ユーザーが全員ログアウトされ、再認証が必要になり、うまくいかないというフィードバックも届きます。基本的にはやらないほうがよいです。
Convex(データベース)の実態
現在はプロフェッショナルプラン(25ドル)に加入しています。この25ドルは毎月固定でかかり、その上に従量課金が乗ります。
実際の請求を見ると、1日あたり14〜17ドル程度で推移しています。これでもかなり落ち着いたほうで、バズったときは最適化されておらず1日200ドルかかっていました。設計が拙かったことによる実装ミスです。
スペンドリミットの設定
ユーサージスペンドリミットを2,500ドルに設定しています。急激に伸びたときにサーバーが落ちないようにするためです。バズったときは一気に増える可能性があるので、若干多めに設定しています。
Cloudflare R2(画像ストレージ)の実態
現在 160GB を使用しています。1万人のユーザーのうち30〜40%が毎日投稿しており、1日あたり3,000〜4,000枚の画像が投稿されています。
それでも課金額は 1.89ドル。ほぼコストがかかっていません。
ConvexのストレージやSupabaseのストレージは1GBを超えるとすぐに課金が発生するため、画像ファイルや音声ファイルを扱うなら、撮影時点ではCloudflare R2を使うのが圧倒的に有利です。料金体系は変わる可能性があるため、導入時には最新情報を確認してください。
スタートアップのJカーブとマネタイズ
毎月7万円程度の投資であれば安いと考えています。
スタートアップにはJカーブという特徴があります。まず赤字を岘り、自己資金または投資家からの資金調達で赤字を掘りながら、黒字化してスケールする段階で回収するという形です。
そのため、現時点ではマネタイズを急いでいません。広告を出したり、プレミアム機能で機能制限をかけたりするとUXが悪くなるため、あえて行っていません。