はじめに
Google CloudのPCS(Professional Cloud Architect)認定資格取得に向けて学習した内容を自分なりに整理します。Google Cloudのサービスに限らず、それを扱う上での関連知識についても触れています。
本記事はDB編ということで、下記の要素を扱います。
- データベース
- Cloud SQL
- Cloud Spanner
- BigTable
- Firestore
- Cloud MemoryStore
この記事における「現在」や「最近」などの表現は、特に断らない限り2025年6月時点を指します
データベース
- 高カスタマイズ性とスケーラビリティ、高可用性
- パフォーマンス
- 読み書き両方ができるプライマリインスタンス(Primary Instance)
- 読み込み専用のリードレプリカ(Read-Replica)
- クロスリージョンのリードレプリカや、外部(オンプレミスなど)のレプリカも作成可能
- 読み書きのワークロードを分離することで負荷を分散
- 非構造化データの保持にも対応
- バックアップとリストア
- 自動バックアップ / 手動バックアップ
- 増分バックアップ
- ポイントインタイムリカバリ
- セキュリティ
- モニタリング / ロギング
Cloud SQL
- 汎用的なフルマネージドのRDB
- パッチ適用、バックアップ、障害復旧などが自動的に行われる
- MySQL, PostgreSQL, SQL Serverを利用できる
- 標準のSQLをサポート
Cloud Spanner
- グローバルスケールのRDB
- 地理的に分散されたデータセンター間でデータを自動的にレプリケート
- 大量のデータを処理し、高いトランザクションを実現
- 水平スケーリングと強力なトランザクション整合性を両立
- 通常、動的スケーリングが保証される場合はトランザクション整合性を保つのは難しいが、Cloud Spannerは強力なトランザクション整合性を持つ
- 標準のSQLをサポート
- OLTP(Online Transaction Processing)など高いトランザクションレートを持つシステムに適している
- 高可用性(HA)構成を有効にすると、自動的に以下の構成がとられ、ダウンタイムを限りなくゼロに近づけられる
- 2つのインスタンス(プライマリインスタンス / スタンバイインスタンス)を準備する
- 上記2つのインスタンスは、同じリージョン内の異なるゾーンに配置される
- データは常に同期される
BigTable
- 大規模な分散をサポートする、マネージドなNoSQLデータベース
- リアルタイムのアプリケーションや大量のデータを処理するバッチジョブ、分析ワークロードに適する
- 数TBから数PBまでスケーリングする
- スキーマ設計
- 単一の主キーと任意の数の列。列は列ファミリにグループ化される
- Hadoopエコシステムとの互換
- HBase API規格のサポート
Firestore
- NoSQLドキュメントデータベースサービスとして提供されるFirebaseのデータベース
- リアルタイムの動機とスケーラビリティが重視されており、モバイルアプリやWebアプリでの使用に適している
- データはドキュメントとして保存される
- ドキュメントはコレクションとしてグループ化される
- ドキュメントはフィールドを持ち、サブコレクションを持つ
- コレクションとドキュメントを効率的に検索、フィルタリングできる
- データの変更をリアルタイムに反映できる
- アプリケーションがオフラインでもデータの読み書きができ、オンラインに戻るとデータの変更が自動的に動悸される
- 旧称 Datastore
Cloud MemoryStore
- フルマネージドなインメモリデータストアサービス
- RedisとMemcachedをサポート