GoogleCloudPlatform覚書
GoogleCloudPlatform=GCP
データセンターが1つのコンピュータという考え方。
Google Cloud Platformのサービス
BigQuery
巨大なデータからSQLでデータを抽出できる。
4TBだろうと20秒程度。データ自体もPB(ペタバイト)も入る。
簡単に言うと裏ですごい数のPCで並列にSQLを処理してると。
KPIなどデータ集計に使うのが主。
データの総量+データの解析に使われた量(Byte)によって課金(使った分だけ請求スタイル)。
◆Drenel
BigQueryで使われている技術。旧MapReduce。
BigTable
高速にスケーラブルなNoSQLデータベース
BigQueryが使った分課金なので、頻繁にアクセスがあるようなユーザデータならこっちのがいいかも。
Cloud Dataflow
受け取ったデータに対し、複雑な処理ができる。
JavaScriptで記載。いずれPythonも対応…予定。
BigQueryの前(データを積むときなど)後(複雑な集計など)で使われることが多い。
バッチ処理とストリーミング処理が可能。
しかも書き方を統一。少ないコードで簡単にバッチかストリーミングか切り替えれる。
◆FlumeJava,MillWhell
Cloud Dataflowで使われる技術
◆使用モデル
Your DATA → Pub/Sub(で送る) → Dataflow(で集計用のデータに成形) → BigQuery(に積んで適宜集計結果を排出) → json形式で出力されるので受け取ったところで表示(集計結果表示)
Borg
GCPのコンテナ技術。一般のDockerにあたるもの。
Cloud Storage Nearline
書き込みが早い。そのくせ低料金のストレージ。
DiskIOを分散して速度UPを実現してる。
プリエンプティブルVM
最長24時間で確実に落ちるインスタンス。
その性質上料金70%OFF。
これ専用というわけではなく、Compute Engineのインスタンスを立てるときにオプションで設定する。
一時的なバッチを使うときに使うインスタンス。
Firebase
webサーバーとDBが一緒になったイメージ。
◆ユーザ認証処理
ユーザ認証用の関数が用意されている。
◆同期処理が簡単
1000台くらいなら遅延(そんなに)感じず接続できる。
チャット機能とかならすぐできそう。
◆リアルタイムDB(NoSQL)
◆使用モデル
端末 ⇔ Firebase( ⇔ ServerやAPI)
最小モデルが端末とFirebaseだけでOK!
ただ、端末からの情報をそのまま処理させたくない(DBに積みたくない)ときとか、一旦Severに送って成否を確認してFirebaseに返す等。
GCPの利点
◆料金のかかり方(わかりやすい)
使った分だけ安くなるというスタイル。
◆海外に強い。
リージョンが別々でも一括して管理できる。
(その国その国に近いところにリージョンを置いてもまとめて管理できる)
それに現状日本に一番近いところがアジアリージョン(台湾)なのだが、特にレイテンシの遅延は感じられないとのこと。
おまけ
◆Ingress(イングレス)
Googleが提供しているスマートフォンゲーム。
当然GCPが使われている。
参考URL
◆Deep Dive into Google Cloud Technology
https://speakerdeck.com/googlecloudjapan/deep-dive-into-google-cloud-technology
↑GoogleCloudPlatformってこうゆうの
◆GoogleCloudPlatform Japan
http://www.slideshare.net/GoogleCloudPlatformJP
Googleのデータ分析