今日のお題
GCPの数あるサービスの中でも特に「ストレージとデータベース(一部、ビッグデータ)」に関して、
どういう時にどのサービスを使うべきなのかを知りたく、ドキュメントを漁ってみる。
経緯
実は、このお題に対しては以下のサイトに使い分け方が載っている。
https://cloud.google.com/storage-options/?hl=ja
ちなみに、↑からFirebase分を端折り、拙い日本語で表現してみたのが↓
なんとなくは、わかる。でも、仕事で「こういう時はこのサービスだ!」と自信を持って言えない。
まあ、仕事レベルでとなると、実際に経験を積まないと到達できない領域ではあるけど、せめてもう少し上の図より正確な「モノサシ」が欲しい。
というわけで、まずはドキュメント漁り。
調べる観点としては、「どういう時に、なぜ他のサービスでなくてこのサービスなの?」がわかること。
調査
GCS (Google Cloud Storage)
■参考
■ユースケース
- マルチメディア(画像・音楽・動画)の保存とストリーミング
- 複数のVMで読み取り専用データの共有
- 静的ウェブサイトのホスティング
- VMのバックアップ
■特徴的な機能
- 用途別のストレージクラス
- オブジェクトが変更されるとCloud Pub/Sub(or Cloud Functions)に通知
- オブジェクトのバージョニング
- バケット・オブジェクトのライフサイクル管理
- 時間制限のある署名付きURL
Cloud SQL
■参考
■ユースケース
- リレーショナル・データベースを必要とする、ただしオートスケールは不要なあらゆるケース
- ウェブサイト・ブログ・CMS等
- ERP・CRM・Eコマース等
■特徴的な機能
- 自動フェイルオーバーにより複数のゾーン間でデータを複製
- 自動orオンデマンドのバックアップとポイントインタイムリカバリ
- Cloud SQL Proxy
Gloud Datastore
■参考
■ユースケース
- ゲームデータ
■特徴的な機能
- アトミックトランザクション(結果が「すべて成功」と「何も起こらない」のどちらかになる一連のオペレーションを実行可能)
- 分散アーキテクチャによるオートスケーリング
- 祖先クエリによる強整合性クエリとその他の結果整合性クエリ
- 複合インデックス
Spanner
■参考
■ユースケース
- ミッションクリティカルなシステム(AdTech・金融サービス等)
■特徴的な機能
BigQuery
■参考
■ユースケース
- 大容量データの分析レポート
- SQLを用いたビッグデータ処理
■特徴的な機能
Bigtable
■参考
■ユースケース
- 低レイテンシーな読み書きを要するシステム(IoT・AdTech・金融サービス等)
- 時系列データを扱うシステム
- 購入履歴や顧客の好み等のマーケティングデータを扱うシステム
- グラフデータを扱うシステム
■特徴的な機能
- 散在して格納されるテーブルであり、数十億行、数千列の規模にスケール可能
- 時系列データ
まとめ
おおよそのユースケースや特徴的な機能は集約してみたものの、案件として用途を聞いて「それなら、◯◯!」と即決できるまでには理解進まず・・・。
まだまだドキュメントの読み込みも実践も必要。