見出し画像

Firebase と BigQuery の連携をするとおいくらかかりそうか雑に試算してみた

どうも、ファームノートでエンジニアをしている永沼です。この記事はFarmnote Advent Calendar 2018の2日目です。
最近モバイルアプリを作る機会があり Firebase に入門中です。やっていきー。

Firebase では Analytics データを BigQuery と連携させることができるのですが、実のところおいくらくらいかかりそうか不安だなぁということがありましたので試算してみました、という話です。

TL;DR

・Firebase の BigQuery 連携でおいくらくらいかかりそうか試算してみた
・Firebase 側は無料と思われる
・BigQuery はある程度レコードが溜まった状態で $2 / 月以下の試算結果

背景

モバイルアプリに Firebase を導入すると、Firebase 向け Google Analytics によりログ分析を気軽に行うことができますが、Firebase Console から利用できるのはほとんどお仕着せのグラフのみになっています。

BigQuery との連携を有効にすることで Analytics データを SQL でよしなに操作することができる世界が広がります。SQL が使えるならまあ大抵のことはなんとかよしなにできるじゃろ。

さらに BigQuery は Redash や DataStudio と連携させることができるので、それらを使うと自由にグラフを作成したりすることができるようになる、という展開が待っています。いえーい

ただし、そのためには Firebase と BigQuery の課金を有効にする必要があります。はー、無体な課金額ではないとは思いますが、世の中には怖い事例もあります。まあ念の為試算してみましょう。

どういう料金体系なの?

Firebase、BigQuery それぞれの料金体系は以下のようになっています。連携のためには Firebase では Blaze プランの契約を、BigQuery では課金を有効にしておく必要があります。

・Firebase の Blaze プランは従量課金で、無料枠がある
・Firebase と BigQuery の連携自体は無料(料金の設定がない)
・BigQuery は従量課金で、無料枠がある

Firebase のヘルプによると "その日の BigQuery テーブルにもリアルタイムでストリーミングされます。" とあるので、その日のイベントデータがストリーミングインサートされる可能性が高そう。ここは無料枠がないようでした。
その他の部分は無料枠があるので、本格的に利用してもさほどの金額にはならないのではないかと思います。

あと BigQuery に関しては GCP の無料トライアルを使うことができます。最&高。

このあたりまで来ると、もうエイヤッでいいかなという気持ちになってきますが、一応試算してみましょう。

BigQuery の料金を雑に試算してみる

あくまで雑な試算ではあるのですが、ある程度レコード数が溜まった状態で $2 / 月くらいで済むのではないかと思われます。レコード数が溜まっていない状態であれば、数円単位ではないでしょうか。

以下は試算の内訳です。

1レコードあたりの容量試算
エクスポートされるデータのスキーマBigQuery のデータ型からざっくり試算しました。1レコード 2kb 前後かなぁ・・・というところでした。
ちなみにエクスポートされるスキーマの記事は日本語版の方は古いままになっているので注意。

・integer:8 byte * 9カラム 96
・float:8 byte * 3カラム
・bool:1 byte * 1カラム
・string:平均 50 byteくらい? * 37カラム()

月の使用容量を暫定で設定
ここは適当に設定した。あとから考えてみるとクエリは回数がもっと多くてスキャン範囲が狭い方が現実に近い設定だったかもしれない。

・アクティブストレージ:2kb * 1000,000レコード = 2GB / 月
 - 適当に100万レコードとして試算
・長期保存:2kb * 0レコード = 0GB / 月
 - とりあえず長期保存は無視した
・ストリーミング挿入:2kb * 20,000レコード * 30日 = 200 MB / 月
 - 当日データがリアルタイムストリーミング挿入かも
 - 2 万レコード / 日として試算
・クエリ:2GB * 20 クエリ * 30 日 = 1,200 GB / 月
 - 毎日平均20クエリをフルスキャンでの試算

試算結果
以上のような想定で $2 / 月以下で運用できそうなことがわかりました。

・アクティブストレージ:$0(10GB / 月まで無料)
・長期保存:$0(10GB / 月まで無料)
・ストリーミング挿入:600MB * 0.012 $/200MB = $0.036
・クエリ:(1.2 - 1.0) TB * 8.55 $/TB = $1.71(1TB / 月まで無料)
---------------------------------------------------------------
・合計:$1.746

まとめ

というわけで Firebase と BigQuery 連携した場合にかかるお値段を試算してみました。

・Firebase の BigQuery 連携でおいくらくらいかかりそうか試算してみた
・Firebase 側は無料と思われる
・BigQuery はある程度レコードが溜まった状態で $2 / 月以下の試算結果

とはいえこれは試算なので実際には請求が確定してみないとわかりませんが・・・まあたいていの場合、ひどいことにはならないのではないかという気がします。やったね

じゃあ実際に連携させて色々やってみたよ、という話はまた今度の機会に。

いつものやつ

ファームノートではちょっくら世界の農業を変えてやるか、というエンジニアを募集しています。興味を持っていただけたみなさまのご応募をお待ちしております