はじめに
- 2022/07にGAとなったGoogle Cloud Professional Cloud Database Engineerを取得しました
- GA直後ということもあり、2022/09現在情報が少ない資格であるため今後受験する方の参考になればと思い執筆します
- 現在英語のみで受験可能です
- 日本語・英語など試験を受ける言語ごとにwebassessorのアカウントを作成する必要があります。アカウント未保有の方だけでなく、日本語アカウントのみ保有の方もアカウント作成が必要です
- 英語試験であっても日本のテストセンターを選択可能です
概要
- 試験時間・問題数は多くのGoogle Cloud Professional資格と同様に120分・50問です
- BigQueryに関してはData Engineer試験で多く問われ、Database Engineerでは詳細を問われることは少ないです
- Database Engineerという資格名ですがテーブル/スキーマ設計やSQL関連の問題少ないです
- CloudSQLに関する問題が非常に多いです
- AlloyDBはPreviewということもあり範囲外でした
確認しておくべきサービス・機能
最低限以下のサービスは概要と機能をドキュメントでチェックしできること・ユースケースを理解しておく
1. Database Migration Service
データベースを、オンプレミス・GoogleComputeEngine(GCE)などからCloudSQLに移行してくれる機能です
ポイント
- MySQL・PostgreSQLが対応している
- Oracleの移行はBare Metal Solution for Oracleを利用
- Google Compute Engine(GCE)からも移行することができる(オンプレミスからの移行専用ではない)
- アプリケーションに変更を加えることなく移行できる
- ダウンタイムほぼゼロ(near-zero downtime)で移行することができる
- 変更データキャプチャ(CDC)に対応している
- 制限事項を理解しておく
2.Bare Metal Solution for Oracle
OracleワークロードをGoogleCloudに移行するためのツールです
ポイント
- Oracleの各種機能(RAC、レプリケーション、さまざまなパフォーマンス機能)をそのままGoogleCloudに移行できる
- コピーデータの管理とバックアップにはActifioが提供されている
- アプリケーションのセキュリティを確認し、アプリケーションを保護する方法を理解しておく
- インターネットにアクセスする方法も理解しておく
3.Datastream
変更データキャプチャ(CDC)およびレプリケーションサービス
ポイント
- OracleDBもしくはMySQLから変更(挿入、更新、削除)をBigQuery、Cloud SQL、Cloud Storage、Cloud Spannerに最小限のレイテンシとダウンタイムで同期できる
- Database Migration Serviceと混合しないように注意して機能を理解しておく
4. CloudSQL
MySQL、PostgreSQL、SQL Server に対応しているフルマネージドデータベースです
ポイント
- 各リンク先を確認しておきましょう
-
レプリケーション
- 障害復旧またはリージョン移行の流れ
- リードレプリカのユースケース
- リージョンを跨いだディザスタリカバリ(DR)や移行
- 読み取りの負荷分散
- 外部レプリカも確認しておく
-
高可用性(HA)構成
-
フェイルオーバーの流れ
- テストで意図的にフェイルオーバーさせたい場合は、
gcloud sql instances failover ${primary_instance_name}
を利用します
- テストで意図的にフェイルオーバーさせたい場合は、
-
HA有効化
- 既存のインスタンスでHA有効化を行うためには
gcloud sql instances patch ${instance_name}
を利用します
- 既存のインスタンスでHA有効化を行うためには
-
フェイルオーバーの流れ
- データベース選定
- 特徴をおさえておきましょう
- 例えば、以下の要件に合致する場合CloudSQLが選択できます
- オンプレミスのMySQL、PostgreSQL、SQLServerからGoogleCloudに移行
- リレーショナルデータベース
- SLA 99.95%
- 最大64TBのストレージ(専用コアの場合)
- 一方、CloudSQLでできないことを抑えておくことも重要です
- 例えば、SSRSを使用しているオンプレミスSQLServerをGoogleCloudに移行するためにはCloudSQLではなくComputeEngineを選択する必要があります
- ネットワーク
- 外部IPアドレスの無効化
- 「ネットワークセキュリティを改善したい」「CloudSQLと同じVPC内のGCE等からの接続」といった要件の場合に利用できます
- 外部IPアドレスを利用しなくてはいけない場合は、承認済みネットワークに許可するIPアドレスを追加することでIPアドレス制限を行います
- 外部IPアドレスの無効化
-
メンテナンスウィンドウを理解しておく
- 1時間枠で設定を行う
- メンテナンス拒否時間は最大90日まで設定可能
- その他
- RecommenderAPIを利用してオーバープロビジョニングされたインスタンスを検出し、コスト最適化を行うことができます
-
Query Insightsでクエリパフォーマンスのトラブルシューティングができます
- クエリタグを付けておくことでアプリケーションにより一層フォーカスすることができます
-
バックアップと復元
- ポイントインタイムリカバリ(PITR)もあわせて確認しておく
- データのインポートとエクスポート
- Cloud SQL Auth Proxy
5. Cloud Spanner
マルチリージョンで利用可能なフルマネージドリレーショナルデータベース
ポイント
- トランザクション処理に対応した分散データベース
- 構造化データおよび半構造化データ(JSON)が利用できる
- グローバル(世界中)に透過的なスケーリングができる
- 複数あるスケーリング手法の使いどころを理解しておく
-
データのインポート・エクスポートを理解しておく
- エクスポートはcsvかAvro形式でDataflowを利用することで実現可能
- 2種類あるデータの復元方法の使いどころを理解しておく
- ノードとProcessingUnitについて理解しておく
-
スキーマ設計を理解しておく
- ホットスポットを防ぐためには、主キーにUUIDや連続した値をBitReverseしたものを利用する
- 統計情報の確認方法を理解しておく
- レイテンシを最小限に抑えるためには、デフォルトのリーダーとクライアントアプリケーションができる限り近い位置にあるマルチリージョン構成を選択する
6. Cloud Bigtable
フルマネージドでスケーラブルなNoSQLデータベース
ポイント
- NoSQLデータベース
- SLA:99.999%(3つ以上のリージョンで複数クラスタのルーティングを使用した場合)
- レイテンシが安定して10ミリ秒未満
- 毎秒数100万レコードの読み取り・書き込みが可能
- 大量の時系列データ(IoTなど)をリアルタイムに取り込んで分析する目的に適している
- ストレージ上限は以下の通り
- SSDクラスタ: 1ノードあたり5TB
- HDDクラスタ: 1ノードあたり16TB
※クラスタに十分なノードを追加して、ディスク使用率を上限の70%以内に抑えるようにしておく(ベストプラクティス)
- クラスタ構成を理解しておく
- 複数のクラスタを利用している際はアプリケーションから受信したリクエストを処理する方法をアプリプロファイルで定義する
- パフォーマンスのトラブルシューティングにはKey Visualizerを利用する
7. Cloud Firestore
モバイル、ウェブ、サーバー開発に対応した、柔軟でスケーラブルなNoSQLデータベース
ポイント
- NoSQLデータベース
- SLA: 99.999%(マルチリージョン構成の場合)
- オフラインやネットワークが途切れるような環境でもデータにアクセスすることができる(オフラインサポート機能)
- オンラインに戻った場合、クライアントデータをバックエンドデータベースに同期することができる
- コンテンツ配信を最適化するためには、Firestore Bundle + CloudCDNを利用する
- ネイティブモードとデータストアモードの選択を確認し、違いや選定方法を理解しておく
8.権限まわり
各データベースにどのような権限を付与するとどのようなことができるのかなどのIAMに関する問題も出題されます。以下のドキュメントを確認しておきましょう
確認の例
- データベースに読み取り/書き込み
- データベースにSQLクエリ実行
- データベースのスキーマを表示/更新
上記を行うためにはroles/spanner.databaseUser
が必要となるといったことを確認しましょう(roles/spanner.admin
でもできますが最小権限を選ぶことがベストプラクティスです)
その他
- 他のクラウド等のアプリケーションやオンプレミスからGoogleCloudのデータベースにアクセスする場合はWorkload Identityを利用することがGoogle推奨プラクティスです
- 「アクセス権限もしくはアクセス権を持つサービスアカウントキーを保持している場合でも承認を受けたネットワーク以外はデータベースにアクセスさせたくない」などデータ保護を強力に行いたい場合は、VPC Service Controlsを利用します
勉強方法
- 試験ガイドを確認する
- 上記「確認しておくべきサービス・機能」で紹介したドキュメントを中心に試験ガイドの範囲のドキュメントを確認する
- 模擬試験を解く
言語の壁・・・
- GoogleCloud試験全体に該当しますが試験問題および選択肢は比較的短文(問題文:3行程度、選択肢1行)の問題が多く英語のReadingが遅くても時間が足りなくなるということはない印象です
- 長文の問題はフラグを付けておいて一通り解き終わってからじっくり読む作戦もオススメです
- 勉強時にドキュメントは英語で確認し、慣れておくことも非常に大切です
- 本記事中のリンクの多くは日本語ページのものにしています。まずは日本語で中身を正確に理解し、英語版でも読んでおくことがオススメです
おわりに
- 英語のみ対応の資格試験であったこととGA直後で情報が少なかったことから躊躇していましたが、夏休みを利用して勉強・受験してみました。GoogleCloudのデータベースを体系的に学ぶいい機会となり取得してよかったと思える資格でした!
- 受験前に情報を収集しようとしましたが、Data Engineerの記事ばかりヒットしてしまい、Database Engineerの記事が少なく苦労しました。同じ状況の方の参考になれば幸いです