GAミント至上主義

Web Monomaniacal Developer.

GKEとBigQueryを使って月1万円でデータ収集&解析

Google Container Engine(GKE)とBigQueryを使って、低予算でアクセスログをBigQueryに流し込む体制ができてきたので、これからはそれを活用する段階に入る。

その前に、月間PV1000万ぐらいのbizocean.jpで、ログ収集にどのくらいお金がかかっているかをまとめてみる。


ビッグデータというと、超高スペックインスタンス、自前のHadoop等で分散とか数百万、数千万のコストを想像する人もいそうだけど、ビッグデータとは言えない月1000万PV程度のWEBサービスなら、Googleのインフラを活用して全部一人でやればこのくらいになるという参考になれば幸い。



期間 2016/8/1 - 2016/8/31

人件費:自分一人の空いた時間

企画、開発、運用、保守、決定、すべて一人だから早い。

プライスレス

手間いらずのGKEとStackdriverを活用してエラーログ確認したり、死活監視してるので、他の人の手は借りてない

Googleに払うお金

Google Container Engine代:

いわゆるスタンダード2台をGKEのKubernetesがいい感じに使ってくれる。

ここですべてのコンテナ(Dockerイメージ)を動かしてる。
最近はなるべく細分化するようにして下記のような合計5種6個のコンテナが動いてる。

  • WEBフロント jsでユーザーから送られたデータをRedisに書き込むやつ ×2 
  • Redis 永続ディスク100GB付き ×1
  • Redisから取ってBigQueryに流し込むやつ ×1
  • Redisから取って、SlackとかGoogleSpreadSheetに流すやつ ×1
  • BigQueryのテーブルを監視して、今日明日分を準備するやつ ×1

n1-standard-1(vCPU x 1、メモリ 3.75 GB)x 2

8,658円 - 2598円(連続使用のディスカウント)= 6060円

ちなみにStackdriverでCPU負荷を見ると常に10%以下、メモリも300MBも使ってないのでまだまだ余裕の模様。


Compute Engine Storage PD Capacity: 268.902 Gibibyte-months 1,101円

GCEを一つ使うとデフォルトで永続ディスクが100GBついてくる。

あとRedisにも退避用として100GB使ってる。

容量を少なくするとパフォーマンスが悪くなるという脅しが出るので100GBで作ってしまったけど、データは全部BigQueryに行くし、1週間BigQueryが落ちてたとしても100GB行かないので、もっと減らしてもよさげ。

HTTPS ロードバランサー

クライアントIPが取れなかった and SSL証明書の一元管理、今後の負荷分散のため利用。
この機能、性能で月2000円は安すぎる。

Compute Engine Network Load Balancing: Global Forwarding Rule Minimum

1968円

Bigquery関連

ちょっと安すぎるんじゃないかってレベル。

平日で、1日40万行 160MBぐらいの増加。

まだ2か月ぐらいなのでストレージは少なめ。長期割引もあるから将来も心配なさそう。
BigQuery Active Storage: 6.818 Gibibyte-months 14円


ストリーミングインサート
BigQuery Streaming Insert: 10129.434 Mebibytes 54円

従量でお金取られるから心配してたけど、開発の手軽さとデータリアルタイム性、10Gでこの値段を考えるとほぼ無視してもいいレベル。10倍とっても文句ない

クエリー代はまだそんなに使ってないので無料枠で収まってしまった。0円

合計

その他、数円単位の無視して

10,462円

でした。

おまけ:社内サーバー代

HPのML30を買って使ってる。
最近公開されたデータ解析、可視化ツールGoogle Datalab localはこれで動かしている。

電気代1000円/月も合わせて、3年使うと月6,000円くらいか。
社内の共有サーバーやスキャンデータ置き場など、自分以外も使っているので、このプロジェクト単体で考えるともっと安い。