アプリ上でリアルタイム情報を取り扱う要件があり、手頃な選択肢としてRealtime DatabaseとCloud Firestoreが上がったので、検討のため料金体系や制限を調べてみた。
前提知識がほぼなかったこともあり、散らばっていたドキュメントを追いかけるのが大変だった。
同じようにとりあえずの情報を求めている人の助けになれば。
プランの説明
そもそもFirebaseにはいくつかのプランがある。ここでとりあげるのは無料で使えるプランと法人利用のプラン。
大規模システムで利用するためのプランもあるものの、スコープ外なので言及しない。
Sparkプラン
無料で利用できるプラン。
デフォルトはこのプランになっている。
このプランでもモノによってはそこそこ使えるが、制限が厳しいものも有る。
Blazeプラン
有料利用登録することで利用できるプラン。
月額で利用料がかかるわけではなく、Sparkプランで利用していた無料枠を超過した分が従量課金される。
Realtime DatabaseとCloud Firestoreの比較
Realtime Database
Sparkプランだと100人までの同時接続制限があるが、Blazeプランにすると開放される。
開放された同時接続数自体は特に料金はかからない。
リクエスト回数に関係なく通信・保管するデータ量で課金されるため、小さいデータを頻繁にやり取りするサービスに向いている。
複雑なデータ検索やスケーリングはできない。
データ構造のベースがjsonなのでデータのコピーや加工、移動が比較的簡単にできる。
料金
Sparkプラン(無料枠)
同時接続 : 100人 ストレージ : 1GB 帯域利用(読み書き) : 10 GB/月
Blazeプラン(従量課金)
同時接続 : 20万人 ストレージ : Sparkにプラスして $1/1GB 帯域利用(読み書き) : Sparkにプラスして $5/1GB
Cloud Firestore
無料枠でも同時接続数が制限されていない。
書き込み(削除も含む)、読み込みの回数、ストレージで料金が決まる。
比較的大きなデータを保管している場合は帯域で料金のかからないこちらが適している。
Realtime Databaseより若干可用性が高いらしい。
料金
Sparkプラン(無料枠)
同時接続 : 1000000人 ストレージ : 合計 1GiB 読み取り : 50000回/日 書き込み : 20000回/日 削除 : 20000回万/日
Blazeプラン(従量課金)
ストレージ : $0.18/GiB 読み取り : Sparkにプラスして $0.18/10万回 書き込み : Sparkにプラスして $0.06/10万回 削除 : Sparkにプラスして $0.02/10万
参考
- 料金プラン
https://firebase.google.com/pricing?hl=ja - Realtime Database の課金について
https://firebase.google.com/docs/database/usage/billing?hl=ja - Firebase のよくある質問
https://firebase.google.com/support/faq/?hl=ja#pricing-simultaneous - Cloud Firestore の課金について
https://firebase.google.com/docs/firestore/pricing?hl=ja - 使用量と制限(Firestore)
https://firebase.google.com/docs/firestore/quotas?hl=ja - Firebase Realtime DatabaseとFirestoreを使い分けていこうなという話
https://techblog.kayac.com/rtdb-vs-firestore