模擬問題集 › GCP-PCDBE › 練習問題 1

GCP-PCDBE 練習問題 1|革新的でスケーラブルかつ高可用性のクラウド データベース ソリューションの設計

Professional Cloud Database Engineer・無料公開(全 200 問中 15 問を無料公開中)

問題
あなたの e ラーニング プラットフォームは、北米のユーザーにサービスを提供する Cloud SQL for PostgreSQL インスタンス(16 vCPU、メモリ 60 GB、1 TB SSD)で稼働しています。分析チームが実行する複雑なレポート クエリは CPU リソースの 80% を消費することが多く、ピーク時間帯に受講者のトランザクションの応答時間が遅くなっています。現在のワークロードは 1 秒あたり 8,000 トランザクションで、読み取りが 60%、書き込みが 40% です。レポート クエリは数百万行を持つ複数の大規模テーブルにまたがる JOIN 操作を含み、非常に効率的な分析処理を必要とします。また、このプラットフォームでは分析レポートの需要が突発的に急増することがあり、読み取り容量を弾力的にスケーリングする必要があります。トランザクションのユーザーに影響を与えずに分析チームがレポートを効率的に実行できるよう、クエリのパフォーマンスを改善する必要があります。また、将来のトラフィック増加にも備える必要があります。どうすればよいですか。

選択肢と解説

  • 1
    Cloud SQL for PostgreSQL Enterprise エディションにアップグレードし、トランザクション クエリと分析クエリをプライマリ インスタンスにルーティングする。
  • 2
    AlloyDB for PostgreSQL に移行し、プライマリ インスタンスのマシンタイプを 32 vCPU にアップグレードする。一般的な分析クエリ用にマテリアライズド ビューを作成する。
  • ✓
    16 vCPU のプライマリ インスタンスを持つ AlloyDB for PostgreSQL に移行し、分析ワークロード用にカラム型エンジンを有効にして、クエリの分離には読み取りプールを使用する。
  • 4
    Cloud SQL for PostgreSQL インスタンスを db-n1-highmem-32 にアップグレードし、増加する負荷に対応するために PgBouncer による接続プーリングを実装する。

解説

【正解】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 PostgreSQL
AlloyDB クラスタに読み取りプール インスタンスを作成する | AlloyDB for PostgreSQL
AlloyDB の概要 | AlloyDB for PostgreSQL
練習問題 2 →
GCP-PCDBE の模擬問題集は全 200 問

本番形式の練習テスト 4 回を、試験モード/演習モードで受験できます。 全問に解説付き、ドメイン別の弱点分析にも対応。模試プラン(月額 ¥980)からご利用いただけます。

GCP-PCDBE の模試を受ける料金プランを見る

GCP-PCDBE の無料公開問題

問題 1問題 2問題 3問題 4問題 5問題 6問題 7問題 8問題 9問題 10問題 11問題 12問題 13問題 14問題 15