Professional Cloud Database Engineer試験対策マニュアル

記事タイトルとURLをコピーする

G-genの杉村です。Google Cloud (旧称 GCP) の認定資格である Professional Cloud Database Engineer 資格の試験対策に有用な情報を記載します。

Professional Cloud Database Engineer

基本的な情報

Professional Cloud Database Engineer とは

Professional Cloud Database Engineer は Google Cloud (旧称 GCP) の認定資格の一つです。当試験は Preview 期間を経て、 2022 年 7 月に Generally Available (一般公開) となりました。

当試験は Professional レベルの資格であり Google Cloud の各種データベース系サービスの知識・技能 に関する問題が出題されます。

試験時間は 120 分、問題数は 50 問。

2023 年 1 月現在は 英語版のみ の提供です。

難易度

Professional Cloud Database Engineer 試験の難易度は、主観的ではありますが 中程度 と言えます。

基本情報技術者試験〜応用情報技術者試験レベルの IT 一般に関する知識に加えて Associate Cloud Engineer 試験 レベルの Google Cloud の基礎知識があれば、追加の学習を 1 〜 2 ヶ月程度することで十分でしょう。

受験者に推奨される経験として公式サイトには「データベースと IT に関する全般的な経験 5 年以上(Google Cloud データベース ソリューションの実務経験 2 年以上を含む)」とありますが、これに満たなくても、データベース (DBMS) に関する一般的な知識とある程度の試験対策で十分に合格を狙える資格となっています。

英文に関しては、そこまで複雑で長大なシチュエーションが出題されるわけではありません。日常的に英語版ドキュメントを読み、単語や言い回しに慣れておくことが望ましいです。

出題傾向

Google Cloud におけるインフラ寄りのデータベース管理に関する出題がされます。例として「スケーラブルで可用性の高いアーキテクチャを組むにはどういったサービスと機能を選べばいいか」「オンプレミスのデータベースからクラウドへの移行手法」「モニタリングやパフォーマンス測定」「バックアップなどの管理運用」といった内容です。

一方で SQL の記述やデータモデリングに関する知識は問われません。

Cloud SQL に関する問題が大半を占めており、続いて Cloud Spanner 、 Bigtable 、 Firestore などのデータベースサービスが続き、 Database Migration Service (DMS) などの移行ツールやデータベース移行手法も出題されます。

当試験では BigQuery など分析系データベースに関する出題は ありません 。データ分析に関する出題は、名前はよく似ているものの全く別の Google Cloud 認定資格である Professional Data Engineer 試験 が担っています。データ分析に関する知見を磨きたい方は、そちらの試験の合格を目指して学習する方が望ましいでしょう。

試験対策

以下の勉強方法はあくまで一例であり、最適な方法は、受験者の予備知識や経験によって異なるものとご了承ください。

  1. Associate Cloud Engineer 試験 を学習し、合格することで Google Cloud の基本的な知見を得る
  2. 公式の 試験ガイド で試験範囲を理解する
  3. Cloud SQL の知識を全体的に学ぶ
  4. Cloud Spanner 、 Bigtable 、 Firestore 、 DMS などよく問われるサービスの公式ドキュメントを読んで学習する
  5. 当記事の出題傾向を読み足りない知識領域をカバーする学習を行う

当記事ではこれ以降、出題傾向や勉強すべき内容を解説します。とはいえ、これらが全てではありません。あくまで公式の試験ガイドを基準として、自分に足りない知識を補ってから試験に挑むようにしてください。

Cloud SQL

基本的な知識

Cloud SQL は当試験に向けて最も押さえておくべきサービスです。半分以上が Cloud SQL に関する知識・経験を問うものと思っていいでしょう。

以下の徹底解説記事を読み、また記事中のリンクから公式マニュアルへ飛んで詳細を把握するなどしてまずは Cloud SQL の全体像を掴んでください。

blog.g-gen.co.jp

高可用性構成におけるフェイルオーバーの仕組み、バックアップやダンプのエクスポート、モニタリング、接続方法などについては、上記記事上のリンクから公式マニュアルに飛んでより詳細を把握しておいて損はありません。

接続と認証・認可

Cloud SQL インスタンスへの接続は独特です。徹底解説記事や公式ドキュメントを読み、 Cloud SQL で Private IP アドレスを構成した際のマネージドネットワークへのプライベートサービスアクセスの仕組みや、 Cloud SQL Auth Proxy など特有のキーワードを押さえてください。以下がキーワードです。

  • Cloud SQL インスタンスへの External IP アドレスを使った接続と Private IP アドレスを使った接続
    • External IP : 承認されたネットワーク
    • Internal IP : プライベートサービスアクセス
    • 似た用語で "Private Google Access" と間違えないこと! (名前が似ているが Private Google Access は 限定公開の Google アクセス のこと)
  • Cloud Auth Proxy
    • Cloud Auth Proxy とは
    • IAM データベース認証とは
    • データベースフラグ cloudsql.iam_authentication (参考)

高可用性とレプリカ

高可用性構成 (HA 構成)

徹底解説記事にあるように高可用性 (HA) 構成とリードレプリカは 似ていますが異なるもの です。目的はそれぞれ「可用性」と「負荷分散」である点に留意してください。

選択肢には HA 構成を選ぶか、リードレプリカを選ぶか迷う場合は、それぞれの機能の本来の目的を考えれば、正しい選択肢が選べます。

なお問題文や選択肢中で HA 構成となっている Cloud SQL インスタンスのことを Regional Instance と呼称していることもあります。これは公式ドキュメントでも使われる表記であり、複数ゾーンにまたがってインスタンスが存在しているためリージョン単位での冗長性が確保されていることからの呼び名です。

フェイルオーバー

HA 構成でのフェイルオーバーの挙動は公式ドキュメントで確認できます。短い RTO (Recovery Time Objective) が求められる場合に HA 構成が有用であることが分かります。

また HA 構成においてはテスト目的やフェイルバック等のためにフェイルオーバーを 意図的に発生 させることができます。コンソールから実行できるほか gcloud sql instances failover ${PRIMARY_INSTANCE_NAME} というコマンドが用いられます。

HA 構成への変更

シングル構成の既存インスタンスを HA 構成に 後から変更 することができます (再起動が発生します) 。

変更にはコンソールからの操作か、あるいは gcloud sql instances patch コマンドを使用します。このコマンドは HA 構成への変更だけでなく、 vCPU やメモリ量を変更するとき等にも使いますので、覚えておいて損はありません。

リードレプリカ

リードレプリカは読み取り専用のコピーインスタンスです。

基本的な目的は読み取りワークロードの負荷分散ですが、プライマリインスタンスへの昇格も可能なため、リージョンを跨いだ DR 目的にも利用されます。このあたりの利用用途をしっかり把握してください。

なお HA 構成が同期レプリケーションであるのに対し、 リードレプリカは非同期レプリケーションです。アプリケーションがトランザクションをコミットしても、内容が同期されるまでにラグが発生します。

レプリケーションラグは Cloud Monitoring のメトリクス で確認可能です。

また上記リンク先ドキュメントから、レプリケーションラグを最適化する方法も確認しておきましょう。

バックアップ・リストア

Cloud SQL の基本的なバックアップ・リストアの仕様は解説記事から確認しておきましょう。

また Cloud SQL Serverless Export 機能を確認しておいてください。 Cloud Storage にダンプファイルをエクスポートする機能です。一時的なエクスポート用インスタンスが作成されそこに対してダンプ処理が走るので 業務インスタンスに負担がかかりません

モニタリング

Cloud SQL のリソースモニタリングは Cloud Monitoring を使って行います。何も設定しなくても Cloud Monitoring がメトリクスを収集します。

これに加えて当試験でたびたび問われるのは Query Insights 機能です。 Cloud SQL で稼働するデータベースにおいて、負荷の高い SQL やその実行計画を確認できます。

問題文や選択肢の中で Cloud SQL Insights と表記されていることもありますが Query Insights と同じものを指しています。

また Sqlcommenter というオープンソースライブラリを使うことでアプリケーション側で ORM を使っている場合でも SQL の特定に役立ちます。

暗号化

Cloud SQL 利用の際に「データを暗号化する」「暗号鍵は自分で管理する必要あり」「暗号鍵の所在地はコントロールする必要あり」「データへのアクセス制御を厳密にする」などの高いセキュリティ要件を満たすにはどうすればよいか問われます。

Cloud KMS ではユーザー側で用意した暗号鍵を登録・管理でき、 KMS に登録した鍵を使って Cloud SQL のストレージを暗号化できます。このユーザー側で管理する鍵のことを CMEK (Customer Managed Encryption Key) といい、大事なキーワードになります。

Google Cloud では何もしなくてもデフォルトでストレージが暗号化されますが、この場合の鍵は Google 側で管理されます。ユーザー側で管理しなくてよいのが魅力ですが、各種セキュリティ監査要件などの要求によりユーザー側で鍵を管理する必要がある際は、ユーザー側で鍵を用意して Cloud KMS に登録し (= CMEK) この鍵を使って Cloud SQL のストレージを暗号化します。

アップデート・メンテナンス

スペック変更

Cloud SQL は構築後も vCPU やメモリ量を変更することができます (再起動が伴います) 。

コンソール画面から編集できる他、 gcloud sql instances patch コマンドで変更が可能です (このコマンドは前述の通り既存インスタンスを HA 構成に変更するとき等にも使われます) 。

メンテナンスウインドウ

データベースのマイナーバージョンへのパッチや OS / Cloud SQL 自体のパッチなどはメンテナンスウインドウの時間帯で適用されます。

時間は 1 時間のウインドウで曜日・時間が指定できます。また 最大 90 日間のメンテナンス拒否期間 が設定でき、この期間はメンテナンスを延期できます。業務繁忙期にメンテナンスを避けたい、などのシチュエーションが考えられます。

データベースの移行

適切なデータベースの選択

ユースケースに応じて、適切なデータベースサービスを選択させる問題があります。概ね以下の表のユースケースが理解できていれば、適切な DB を選択できます。

No ユースケース 選択するサービス
1 オープンソースデータベースで費用対効果に優れたクラウドサービス Cloud SQL
2 グローバルに跨るアプリから使われる RDB 。トランザクション (ACID) あり。 99.999 % の SLA Cloud Spanner
3 IoT デバイスから高スループットでデータを受け取る Bigtable
4 モバイル端末から使う。インターネット接続が無いとき (オフライン時) でもキャッシュ利用可能 Firestore

Database Migration Service (DMS)

Database Migration Service (DMS) の仕様を理解しましょう。

Continuous Migration 機能を使うことで「初回同期」と CDC (Change Data Capture) を使った「継続同期」を行い、最小限のダウンタイムで DB を移行することができます。

例として DMS を使った同種間移行では、オンプレミスの MySQL / PostgreSQL / SQL Server を Cloud SQL に移行することができます。

なお DMS は Cloud SQL への移行ツール なので、 Compute Engine でホストされたデータベースへの移行は できません

機能の概要を押さえておきましょう。

Datastream

Datastream も Google Cloud が提供する移行ツールの一つです。

Datastream は Oracle または MySQL から CDC (Change Data Capture) により Cloud Storage にデータをストリーミングします。 Dataflow と組み合わせることで BigQuery や Cloud SQL 、 Cloud Spanner などに対してデータを同期することが可能です。

機能の概要を、大まかで良いので押さえておきましょう。

Cloud SQL 以外の選択肢

Compute Engine

Compute Engine にデータベースをホストする場合も考慮に入れましょう。 Compute Engine の基本は、以下の記事で押さえてください。

blog.g-gen.co.jp

また以下のような運用タスクの方法も簡単に押さえておきましょう (永続ディスク拡張後、 VM にログインして resize2fs コマンドを使う等 ※ ext4 の場合) 。

Cloud Spanner

前述の通り、 Cloud Spanner のユースケースやキーワードは押さえておきましょう。

  • グローバルに跨る (リージョンをまたぐ) アプリから使われる
  • リレーショナルデータベース
  • トランザクション (ACID)
  • 99.999 % の SLA
  • 自動シャーディング

Spanner はリレーショナルデータベースでありながら分散アーキテクチャであるという変わった DBMS です。以下のドキュメントも押さえておきましょう。

Cloud Spanner の学習には以下の記事をご参照ください。

blog.g-gen.co.jp

Bigtable

Bigtable は IoT デバイスからのデータを受け取るというユースケースで語られることが多いです。

Bigtable は NoSQL の分散データベースであり、スキーマ設計は通常の RDB とは大きく異なります。

Bigtable では入れるデータの 行キー によってデータ配置先のノードが決まります。キー設計を誤ると ホットタブレット / ホットスポット と呼ばれる、データの偏りが発生してしまいます。

例えば、行キーがタイムスタンプだったりすると、値がシーケンシャルであるため特定のノードに連続してデータが書き込まれてしまい、分散データベースの利点を活かせなくなってしまいます。「 Bigtable に入れた特定のデータセットのみパフォーマンスが悪い」といった場合、データの偏りを疑うことができます。

データの偏りを特定するために Key Visualizer といったツールが用意されています。

以下の公式ドキュメントは押さえておいてください。

Bigtable の学習には以下の記事をご参照ください。

blog.g-gen.co.jp

Bare Metal Solution (BMS)

Bare Metal Solution (BMS) は Google Cloud の持つベアメタルサーバーを利用できるサービスです。

このサービスの主眼は Oracle ワークロードの Google Cloud への移行 です。ライセンスの問題から、通常の Compute Engine の VM や Cloud SQL では Oracle Database を稼働させることができませんが、BMS では可能です。これを押さえておいてください。

当試験に向けては深く仕様を理解する必要はありませんが、ユースケースを理解しておきましょう。

杉村 勇馬 (記事一覧)

執行役員 CTO / クラウドソリューション部 部長

元警察官という経歴を持つ現 IT エンジニア。クラウド管理・運用やネットワークに知見。AWS 12資格、Google Cloud認定資格11資格。X (旧 Twitter) では Google Cloud や AWS のアップデート情報をつぶやいています。