PCDBE 合格対策
🔬 DEEP DIVE

AlloyDB for PostgreSQL ディープダイブ

公式ドキュメントに基づく Disaggregated Storage、Columnar Engine、AlloyDB AI の徹底解説。Cloud SQL for PostgreSQL との 本質的な違い を理解する。

PostgreSQL 互換 HTAP pgvector + ScaNN 4倍性能

📑 目次

  1. 1. リソース階層 (Cluster / Instance / Node)
  2. 2. Disaggregated Storage — Cloud SQL との根本的違い
  3. 3. Columnar Engine の仕組み
  4. 4. AlloyDB AI — RAG のためのフルスタック
  5. 5. Read Pool による水平読み取りスケール
  6. 6. Secondary Cluster — クロスリージョン DR
  7. 7. Index Advisor / Adaptive Autovacuum
  8. 8. Continuous Backup と PITR
  9. 9. 制約と注意点

1. リソース階層

AlloyDB は 3 階層構造でリソースを管理する。Cloud SQL の「インスタンス」単一階層とは大きく異なる。

┌────────────────────────────────────────────────────────────┐ │ Cluster (リージョン単位) │ │ ┌─────────────────────────────────────────────────────────┐│ │ │ Primary Instance ─ Node A1 (read/write) ││ │ │ Node A2 (HA standby, 同期) ││ │ └─────────────────────────────────────────────────────────┘│ │ ┌─────────────────────────────────────────────────────────┐│ │ │ Read Pool Instance 1 ─ Node B1, B2, B3 ... BN ││ │ │ (読み取り専用、自動ロードバランス) ││ │ └─────────────────────────────────────────────────────────┘│ │ ┌─────────────────────────────────────────────────────────┐│ │ │ Read Pool Instance 2 ─ Node C1, C2 ... ││ │ │ (別 Read Pool。アプリ毎に分離可能) ││ │ └─────────────────────────────────────────────────────────┘│ │ ↕↕↕ │ │ ┌─────────────────────────────────────────────────────────┐│ │ │ Distributed Storage Layer (共有) ││ │ │ Continuous Backup + PITR ││ │ └─────────────────────────────────────────────────────────┘│ └────────────────────────────────────────────────────────────┘ ↓ 非同期レプリ (クロスリージョン) ┌────────────────────────────────────────────────────────────┐ │ Secondary Cluster (別リージョン、DR + 読み取り) │ └────────────────────────────────────────────────────────────┘
Cluster = top-level logical container(リージョン単位)
Instance = connection point with static private IP(primary or read pool)
Node = virtual machine running the database engine(実際のコンピュート)
公式: AlloyDB Overview

2. Disaggregated Storage — Cloud SQL との根本的違い

AlloyDB の最大の特徴は コンピュートとストレージの完全分離。これにより以下が実現される。

Compute Layer

  • クエリ処理 VM
  • マシンタイプを自由に変更可能
  • HA, Read Pool は独立スケール

Distributed Storage

  • 複数 AZ にまたがる分散層
  • Log-structured, Append-only
  • WAL を 4 つのコピーで保管

Block Cache

  • Ultra-fast cache (PG buffer)
  • Compute Node 内に確保
  • 頻繁アクセスデータの高速化
Cloud SQL との本質的な違い: Cloud SQL は マスター・スレーブ構成 + Persistent Disk。AlloyDB は 分散ストレージ + 計算層独立スケール。これによりRead Pool 追加でコンピュートだけ水平スケールできる

性能向上の根拠(公式)

トランザクション処理
4x
vs 標準 PostgreSQL
分析クエリ
100x
Columnar Engine 有効時
メンテダウンタイム
<1s
Primary instance
SLA (HA)
99.99%
Regional

3. Columnar Engine の仕組み

通常の PostgreSQL は 行指向(row-store)。これは OLTP(小さな読み書きが多い)に最適だが、集計クエリ(SUM, AVG, COUNT のように特定列を全件スキャン)は遅い。Columnar Engine は 同じデータを列指向(column-store)で保管し、自動的に分析クエリへ列指向の結果を返す。

通常 PostgreSQL (Row Store) ┌──────────────────────────────┐ │ Row1: id=1, name=Alice, age=30 │ 集計クエリでも │ Row2: id=2, name=Bob, age=25 │ 全行スキャン要 (遅い) │ Row3: id=3, name=Carol, age=28 │ └──────────────────────────────┘ ↓ AlloyDB 自動追加 Columnar Engine (Column Store, In-memory) ┌──────────────────────────────┐ │ Col(id): [1, 2, 3] │ 集計クエリは │ Col(name): [Alice, Bob, Carol] │ 列単位スキャン (100倍高速) │ Col(age): [30, 25, 28] │ └──────────────────────────────┘ 仕組み: - 行指向の原本は常に保持 (OLTP 用) - AlloyDB が自動で「分析に使われる列」を検知 - In-memory に列ストア形式で複製 - クエリプランナが自動的に列ストアを利用
有効化方法: google_columnar_engine.enabled = on + Recommended Tables 機能で自動推薦。Cloud SQL for PostgreSQL では使えない、AlloyDB 専用機能

4. AlloyDB AI — RAG のためのフルスタック

公式ドキュメントが明示する AI/ML 拡張は 4 つ

拡張機能用途
vector 埋め込みベクトル型 + 距離関数 セマンティック検索の土台 (pgvector 互換)
alloydb_scann 高速 ANN インデックス (Tree-AH) 大規模ベクトル検索 (pgvector の HNSW より高速)
google_ml_integration Vertex AI モデル呼び出し SQL 関数 SELECT 内で Gemini/Embeddings を直接呼ぶ
alloydb_ai_nl 自然言語 → SQL 変換 「先月の売上 TOP10」を SQL に

RAG パイプライン例(AlloyDB 完結)

① ユーザー質問(テキスト) │ ▼ SELECT embedding('text-embedding-005', '質問文') -- google_ml_integration [Vertex AI Embeddings] ───────► [質問ベクトル] │ ▼ SELECT ... ORDER BY vec <-> $1 LIMIT 5 [AlloyDB + scann index] 類似文書 TOP5 を返却 │ ▼ SELECT google_ml.predict_row(...) [Vertex AI Gemini] コンテキスト + 質問 → 回答生成 │ ▼ ユーザーへ
試験で問われやすいシナリオ: 「PostgreSQL 互換のままベクトル検索を低レイテンシで」 → AlloyDB + scann。「1 億超の超大規模」 → Vertex AI Vector Search に外出し。

5. Read Pool による水平読み取りスケール

Read Pool Instance は 1 つの論理エンドポイントに複数 Node を割り当てる構成。アプリは Read Pool の Private IP に接続するだけで AlloyDB が自動でロードバランスする。

Cloud SQL のリードレプリカとの違い: Cloud SQL Read Replica は インスタンス単位で別 IP・別接続文字列。Read Pool は 1 つの IP に複数 Node 集約でクライアント側のロードバランス実装不要。

Cloud SQL Read Replica

  • 別インスタンス・別 IP
  • クライアントが自前で振り分け
  • 各レプリカで遅延が異なる

AlloyDB Read Pool

  • 論理エンドポイント 1 つ
  • 自動ロードバランス
  • Node 数を Web GUI で増減

6. Secondary Cluster — クロスリージョン DR

Secondary Cluster は 別リージョンに非同期で複製される読み取り可能なクラスタ。災害時に Switchover で Primary に昇格する。

機能Cloud SQL Cross-region ReplicaAlloyDB Secondary Cluster
複製単位インスタンスクラスタ全体(複数インスタンス)
読み取りReplica に直接接続Secondary Primary + Read Pool 全部使える
昇格Promote(手動)Switchover(手動、整合性確認込み)
使えるリージョン同 DB エンジン対応AlloyDB 利用可能リージョン

7. Index Advisor / Adaptive Autovacuum

Index Advisor は AlloyDB がワークロードを継続的に観測し、不足しているインデックスを CREATE INDEX 文として推薦する機能。クエリ実行時間・スキャン量・WHERE 句のパターンから自動分析。

使い方: AlloyDB Console の「Insights」→「Index Advisor」で推薦 SQL をコピー → 開発環境で検証 → 本番適用。
注意: 提示されたインデックスをすべて作ると書き込みが遅くなる。利用頻度の高いクエリを優先。

Adaptive Autovacuum

標準 PostgreSQL の autovacuum は固定パラメータで動作するが、AlloyDB は テーブルサイズと書き込みパターンに応じて autovacuum パラメータを自動調整。大規模テーブルの肥大化を予防。

8. Continuous Backup と PITR

Continuous Backup
35日
最大保持期間
PITR
35日
秒単位で復元
オンデマンド Backup
365日
最大保持
スケジュール Backup
あり
日次/週次設定可

Continuous Backup は WAL を分散ストレージ層に継続保管することで実現。PITR で「3 時間 27 分前の状態に戻す」のような秒単位指定が可能。

9. 制約と注意点

AlloyDB は PostgreSQL 完全互換ではない。一部の PostgreSQL 拡張(pg_partman, pg_repack 等)は未対応のものがある。事前に Supported extensions ドキュメントで確認必須。
Cloud SQL より高コスト。Cloud SQL for PostgreSQL の約 1.5〜2 倍の月額が目安。「PostgreSQL なら何でも AlloyDB」ではない。
Read Pool は Primary と完全に同じデータをリアルタイムで読めるわけではない。WAL 適用ラグがあるため、厳密にリアルタイム整合性が必要なクエリは Primary へ
Secondary Cluster への Switchover は手動操作。Spanner Multi-region のような自動フェイルオーバーではない。RTO は手動操作時間 + 数十秒。

試験頻出のひっかけパターン

問題文NG 回答正解
PostgreSQL 互換 + グローバル分散 + 強整合 AlloyDB Spanner PostgreSQL Interface
PostgreSQL + コスト最小 AlloyDB Cloud SQL for PostgreSQL
PostgreSQL + 同 DB で分析統合 Cloud SQL Enterprise Plus AlloyDB (Columnar Engine)
PostgreSQL + 10億ベクトル超 AlloyDB + scann Vertex AI Vector Search
公式参考リソース