02_応用

Section 1 — 応用編:意思決定とトレードオフ

🔧 対象: 中堅以上(基礎が頭に入っている前提) ゴール: シナリオから 最適な DB と構成を選定 し、コスト・性能・可用性のトレードオフを説明できる。


1. 完全版 DB 意思決定ツリー

試験で最も問われるのが「シナリオ → DB 選択」。次のツリーを丸暗記して、シナリオに当てはめる。

スタート: アプリの要件は?
│
├─ Q1: トランザクション (ACID) が必要?
│   │
│   YES(OLTP系)─────────────────────────────────────────────
│   │
│   ├─ Q2: グローバル分散 + 強整合 が必要?
│   │   YES → 【Spanner】
│   │      ├─ PostgreSQL アプリ → Spanner PostgreSQL Interface
│   │      └─ 新規開発 → Spanner Native (GoogleSQL)
│   │
│   ├─ Q3: PostgreSQL 互換 + HTAP/AI が必要?
│   │   YES → 【AlloyDB for PostgreSQL】
│   │      ├─ ColumnarEngine(分析高速化)
│   │      ├─ Vector Search(pgvector + ScaNN)
│   │      └─ Index Advisor(自動推奨)
│   │
│   ├─ Q4: Oracle / SAP HANA など物理 DB ?
│   │   YES → 【Bare Metal Solution】
│   │      ├─ Oracle Exadata 互換
│   │      └─ SAP HANA 認定
│   │
│   └─ それ以外(標準 OLTP)→ 【Cloud SQL】
│       ├─ MySQL → Cloud SQL for MySQL
│       ├─ PostgreSQL → Cloud SQL for PostgreSQL
│       └─ SQL Server → Cloud SQL for SQL Server
│
└─ NO(NoSQL系)─────────────────────────────────────────────
    │
    ├─ Q5: データ量 > 1TB + 高 QPS + 時系列/IoT ?
    │   YES → 【Bigtable】
    │      ├─ HDD: バックアップ・低頻度アクセス
    │      ├─ SSD: 通常運用(試験ではほぼこれ)
    │      └─ マルチクラスタ ルーティング: HA 構成
    │
    ├─ Q6: モバイル/Web + リアルタイム同期?
    │   YES → 【Firestore】
    │      ├─ Native モード: 新規アプリ
    │      ├─ Datastore モード: レガシー互換
    │      └─ MongoDB-compatible: MongoDB アプリ移行
    │
    ├─ Q7: キャッシュ / セッション / リーダーボード?
    │   YES → 【Memorystore】
    │      ├─ Redis: 多機能、永続化、Pub/Sub
    │      ├─ Memcached: シンプルなキャッシュ
    │      └─ Valkey: 新世代 OSS Redis 互換
    │
    └─ Q8: 分析・DWH?
        YES → 【BigQuery】
           ├─ Federated Query: 外部DB をリアルタイム参照
           └─ BigQuery ML: SQL でML

2. 「Cloud SQL Enterprise vs Enterprise Plus」の判断

Cloud SQL は 2 つの Edition があります。試験で頻出。

観点 Enterprise Enterprise Plus
最大 vCPU 96 128
最大 RAM 624 GB 864 GB
Data Cache なし あり(NVMe)
Near-Zero Downtime メンテナンス なし あり
ローカル SSD なし あり
バックアップ高速化 普通 増分高速化
価格 標準 約 1.5-2 倍
推奨ワークロード 通常 OLTP 高 QPS / 低レイテンシ要求 / 厳しいダウンタイム要件

判断軸


3. AlloyDB の特徴と選定基準

AlloyDB が選ばれるシナリオ

シナリオ なぜ AlloyDB?
既存 PostgreSQL を移行したい + 性能を上げたい PostgreSQL 互換 + 4倍速
同じ DB で OLTP + 分析(HTAP)したい ColumnarEngine で分析高速化
AI/LLM の RAG パイプラインで使う pgvector + ScaNN インデックス
自動チューニングしたい Index Advisor, Auto Vacuum 改善
マネージドで完全分離コンピュートを使いたい Read Pool(読み取り専用ノード)

AlloyDB のアーキテクチャ

┌─ Region: asia-northeast1 ─────────────────────────────────┐
│                                                            │
│   ┌────────────────────────────────────────────────────┐   │
│   │ Primary Instance (Writer + Read)                   │   │
│   │   ColumnarEngine (column store)                    │   │
│   └────────────────────────────────────────────────────┘   │
│            ↓ ログレプリ                                     │
│   ┌────────────────────────────────────────────────────┐   │
│   │ Read Pool (1〜N nodes, 読み取り専用)               │   │
│   │   Standby                                          │   │
│   └────────────────────────────────────────────────────┘   │
│            ↓ 共有ストレージ                                 │
│   ┌────────────────────────────────────────────────────┐   │
│   │ Cluster Storage(Continuous backup, PITR)         │   │
│   └────────────────────────────────────────────────────┘   │
│                                                            │
└────────────────────────────────────────────────────────────┘
              ↓ クロスリージョン
┌─ Region: asia-northeast2 (DR用) ──────────────────────────┐
│   Secondary Cluster(読み取り + DR)                       │
└────────────────────────────────────────────────────────────┘

AlloyDB vs Cloud SQL の使い分け

シナリオ 推奨
PostgreSQL + 標準ワークロード + コスト重視 Cloud SQL for PostgreSQL
PostgreSQL + 高性能 + HTAP + AI AlloyDB
MySQL / SQL Server Cloud SQL のみ

4. Spanner の特徴と選定基準

Spanner が選ばれる絶対条件

Spanner サイジング: Processing Units (PU)

スキーマ設計のキーポイント

1. Interleaving(親子テーブル)

CREATE TABLE Customer (
  CustomerId INT64 NOT NULL,
  Name STRING(MAX)
) PRIMARY KEY (CustomerId);

CREATE TABLE Order (
  CustomerId INT64 NOT NULL,
  OrderId INT64 NOT NULL,
  Total NUMERIC
) PRIMARY KEY (CustomerId, OrderId),
  INTERLEAVE IN PARENT Customer ON DELETE CASCADE;

2. ホットスポット回避

Spanner の SLA


5. Bigtable のスキーマ設計

行キー設計が 100% を決める

NG パターン

行キー: sensor1_2026-05-29-12:00:00
        sensor1_2026-05-29-12:00:01
        sensor1_2026-05-29-12:00:02
   → 同一センサーの書き込みが順次同じ行範囲に集中 → ホットスポット

OK パターン

行キー: 2026-05-29-12:00:00_sensor1
        2026-05-29-12:00:00_sensor2
        2026-05-29-12:00:00_sensor3
   → 異なるセンサーが同時刻でも別の行範囲に分散

より良いパターン(高 QPS)

行キー: 1#2026-05-29-12:00:00  ← ハッシュプレフィックス(0-N)
        2#2026-05-29-12:00:00
        ...
   → 書き込みが N 個の行範囲に均等分散

HDD vs SSD

用途 選定
バックアップ / アーカイブ / 低レイテンシ不要 HDD(コスト 1/4)
通常のOLAP / リアルタイム参照 SSD

マルチクラスタ ルーティング


6. Firestore Native vs Datastore vs MongoDB

Firestore の 3 つの「モード」

モード 用途 API リアルタイム同期
Native 新規アプリ Firestore SDK あり(Web/モバイル)
Datastore レガシー互換 Datastore API なし
MongoDB-compatible MongoDB 互換 MongoDB Wire Protocol あり

試験ポイント

Firestore の SLA


7. Memorystore の使い分け

3 種類

エンジン 特徴 推奨用途
Redis 永続化、データ構造(List/Set/Hash/Sorted Set)、Pub/Sub、Lua キャッシュ + リーダーボード + Pub/Sub軽量
Memcached シンプル KV、永続化なし 純粋なキャッシュ
Valkey Redis フォーク(OSS)、Redis 互換 新規 OSS 戦略

Tier (Redis のみ)

Tier 用途 SLA
Basic キャッシュのみ(再起動でデータ消失) なし
Standard リードレプリカ付き、HA 99.9%
Cluster Cluster モード、シャーディング 99.9%

8. Bare Metal Solution (BMS)

いつ使うか

構造

注意


9. パートナー DB

よく問われるパートナー DB

パートナー 用途
MongoDB Atlas on Google Cloud フルマネージド MongoDB
DataStax Astra DB フルマネージド Cassandra
Neo4j Aura グラフ DB
Redis Enterprise エンタープライズ向け Redis
InfluxDB Cloud 時系列 DB

試験での扱い


10. 接続方式の応用:Private Service Connect (PSC)

PSC が解決する問題

Cloud SQL での PSC

[Service Producer VPC]            [Service Consumer VPC(顧客)]
 ┌─────────────────┐                 ┌─────────────────┐
 │   Cloud SQL     │ <── PSC ──── 仮想IP(10.x.x.x) │
 │   インスタンス   │                 │   App           │
 └─────────────────┘                 └─────────────────┘

PSC vs Private IP vs Auth Proxy

方式 VPC ピアリング IP 重複耐性 推奨度
Private IP 必要 弱い
PSC 不要 強い
Auth Proxy 不要(Public IP 使用) -

試験パターン


11. 規制・コンプライアンス対応

試験で問われる典型要件

要件 対応
データレジデンシー(特定地域に保管) リージョン指定 + 組織ポリシー(gcp.resourceLocations
暗号化キーを顧客管理 CMEK(Cloud KMS)
アクセス監査 Cloud Audit Logs(Admin Activity + Data Access)
PII マスキング Cloud DLP(Sensitive Data Protection)
ネットワーク隔離 VPC Service Controls
HIPAA / PCI-DSS コンプライアンス対応サービスを選定(多くは対応済み)

データレジデンシーの落とし穴


12. AI / LLM ユースケースへの対応

よく問われるパターン

パターン1: RAG(検索拡張生成)

[ユーザー質問]
   ↓
[Vertex AI Embeddings API](質問をベクトル化)
   ↓
[AlloyDB + pgvector](類似ベクトル検索)
   ↓
[Vertex AI Gemini](コンテキスト + 質問でレスポンス生成)
   ↓
[ユーザーへ回答]

パターン2: ベクトル DB 選択

選択肢 推奨シナリオ
AlloyDB + pgvector 既存 PostgreSQL アプリ、SQL でクエリしたい
Cloud SQL for PostgreSQL + pgvector 小〜中規模、コスト重視
Vertex AI Vector Search 専用 ANN サービス、超高速・大規模
BigQuery + ML.GENERATE_EMBEDDING 分析統合、BigQuery 内で完結
Spanner + Vector Index グローバル分散 + ベクトル

13. このセクションのチェックリスト