【正解】C
【0からの解説】
①前提知識
AlloyDB for PostgreSQL は、PostgreSQL 互換のフルマネージド データベースで、トランザクション処理(OLTP)と分析処理を同じデータベースで高速に扱える(HTAP)ことを特徴としています。主な機能は次の 2 つです。
・カラム型エンジン(columnar engine): よく分析されるテーブルの列データをメモリ上に列指向形式で保持し、集計・スキャン・JOIN を伴う分析クエリを大幅に高速化します。アプリケーションの SQL を書き換える必要はなく、オプティマイザが自動的に利用します。
・読み取りプール インスタンス(read pool): プライマリとは別の読み取り専用ノード群で、1 つのエンドポイントの背後で複数ノードに負荷分散されます。ノード数は後から増減でき、読み取り容量を弾力的にスケールできます。読み取りプールでもカラム型エンジンを有効にできます。
②要件と制約の整理
・分析レポート(大規模テーブルの JOIN)が CPU の 80% を消費し、トランザクション ユーザーの応答を遅くしている → 分析と OLTP の「分離」が必要。
・分析処理は「非常に効率的」である必要がある → 列指向の分析高速化が有効。
・分析需要が突発的に急増する → 読み取り容量の「弾力的なスケーリング」が必要。
・将来のトラフィック増加にも備える。
③正解が要件を満たす理由
C は、AlloyDB に移行して分析クエリを読み取りプールに振り向けることで、プライマリ(トランザクション処理)から分析負荷を物理的に切り離します。さらにカラム型エンジンで JOIN・集計を伴う分析クエリを効率化し、需要の急増には読み取りプールのノード追加で対応できます。プライマリを 16 vCPU のまま維持しても分析負荷が外れるため、トランザクション性能が改善され、将来の増加にもノードの追加やスケールアップで備えられます。
【誤りの選択肢】
A:Enterprise エディションへの変更自体は性能改善策ではなく(むしろ高性能なのは Enterprise Plus エディション)、トランザクションと分析の両方をプライマリに送り続けるため、分析による CPU 競合という根本原因が解消されません。読み取り容量の弾力的なスケーリングも実現できません。
B:32 vCPU へのスケールアップとマテリアライズド ビューは一時的な改善にはなりますが、分析とトランザクションが同じプライマリで動き続けるため「影響を与えない」分離にはなりません。マテリアライズド ビューは定期的な更新(REFRESH)が必要で鮮度や運用負荷の課題もあり、突発的な需要に対する読み取りの弾力的なスケーリングも提供しません。
D:マシンタイプのスケールアップと PgBouncer による接続プーリングは、接続数の多さには効果がありますが、重い分析クエリの CPU 消費そのものは減らず、分析とトランザクションの分離も実現しません。行指向の PostgreSQL のままでは大規模 JOIN の分析効率も改善されず、読み取りの弾力的スケーリングもできません。
【参考】
AlloyDB のカラム型エンジンについて | AlloyDB for PostgreSQLAlloyDB クラスタに読み取りプール インスタンスを作成する | AlloyDB for PostgreSQLAlloyDB の概要 | AlloyDB for PostgreSQL