Help us understand the problem. What is going on with this article?

Firebaseをなるべく安い料金で頑張りたい人へ

この記事はFirebaseアドベントカレンダーの5日目の記事です。

どうも!ハムカツおじさんという名前でtwitterやってます(@hmktsu)🤘
自分でだったり弊社でだったりなどFirebaseを使ってサービスを作っています。

ちなみに先日Firebase Meetup #15 Cloud Functions Dayにて下記のスライドを発表させていただいたので、興味ある人はご覧になってください!
Firebaseオンリー + React Nativeでアプリを作ると果たして簡単になるのか?

はじめに

色んなツールを作るのにFirebaseを使うととても便利だなぁという感想を持っています。
料金に関しては体感としてですが常時サーバを立ち上げてるのとは違いお安くなります。
それでももっと安く済ませたいとかそういったことはあるのでしょうか。

本番環境でそれなりにお金がかかるのはしょうがないんだけども、テスト環境ではなるべくお金かけたくないしなぁ〜ということもあるのではないでしょうか。

ということでここらへんを気をつければなるべく料金を抑えれるんじゃないかなということを今回は紹介させていただきます。

対象とするFirebaseのサービス

  • Firestore
  • Functions
  • Hosting

ざっくり気をつけたポイント

Firestore

  • リージョンをどうするか
  • ドキュメントの読み出し/書き込み/削除
  • ページングの方法
  • セキュリティールールについて

Functions

  • メモリ(CPU)の割り当て
  • 料金プラン

Hosting

  • どういったファイルを置いているのか

こういう風に工夫するとよいかも

Firestore

  • USじゃないといけない理由がないならば他のリージョンを使う
    • USはマルチリージョンなのでちょっと他よりもお高め(地域別料金)
  • このデータが入っているか?という確認をしたいときに、コレクションからwhereするのではなく、複数のドキュメントを配列に格納したドキュメントを用意して、その中に入ってるかどうか比較する
  • 読み出しをする際にオフセットを使わないでカーソルを使う
  • ルールの評価はリクエストごとに1回のみ課金されるので、複数ドキュメントを呼び出すときはえいやと思い切って呼び出してみる(Cloud Firestore セキュリティ ルール)

Functions

  • メモリ量でGB秒やCPU秒の料金が変わるので、さっと終わる処理ならばメモリを小さくする(コンピューティング時間)
  • Blazeプランを使うと料金プランページに表示されているSparkプラン以上に無料で使える範囲が広くなる

Hosting

  • Storageと比べると転送量や保存量が割高なので、Storageに画像とかをちゃんとおく

まとめ

正直なところFirebaseはAWSなどで組むのと違ってあまりお金はかかりません。
それにスケーラブルなので落ちないという利点もあります。

ただその代わりこの記事みたいに落ちないからこそ、使い方などを間違えてしまうと異常な料金になってしまうこともあります。
地味によくある話としてはStorageを使わずにHostingのみでWebサイトを作り、バズってしまったがために中々な請求金額がきてしまうとか。

ちなみに最終手段ですが、1日の使用料を実は制限することができます。
また1ヶ月の予算を設定して使用料に応じてアラートを出すこともできます。
1日あたりの費用制限を設定する
1か月の予算を設定する

これらを使うこともある意味ありなんじゃないかなと思います。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away