GCP

GCP データベース移行チェックリストと実践ガイド

ⓘ本ページはプロモーションが含まれています

もっとスキルを活かしたいエンジニアへ

スポンサードリンク
働き方から選べる

無料で使えて良質な案件の情報収集ができるサービス

エンジニアの世界では、「いつでも動ける状態を作っておけ」とよく言われます。
技術やポートフォリオがあっても、自分に合う案件情報を日常的に見れていないと、いざ動こうと思った時に比較や判断が難しくなってしまいます。
普段から案件情報が集まる環境を作っておくと、良い案件が出た時にすぐ動きやすくなりますよ。
筆者自身も、メガベンチャー勤務時代に年収1,500万円を超えた経験があります。振り返ると、技術だけでなく「どんな案件や働き方があるか」を日頃から見ていたことが、キャリアの選択肢を広げるきっかけになりました。
このブログを読んでくれた方に感謝を込めて、実際に使っている情報収集サービスを紹介します。

フルリモート・週3日・高単価、どんな条件も妥協したくないなら

フリーランスボードに無料会員登録する

利用者10万人以上。業界最大規模45万件の案件。AIマッチ機能や無料の相場情報が人気。

年収800万円以上のキャリアアップ・ハイクラス正社員を視野に入れているなら

Beyond Careerに無料相談する

内定獲得率90%以上。紹介先企業とは役員クラスのコネクションがある安心と信頼できるエージェント。


スポンサードリンク

移行評価と事前チェックリスト

データベースを Google Cloud に移行する際は、「ネットワーク」「認証・権限」「データ容量」の3 つの観点で徹底的に評価することが成功の鍵です。本節では、Google が公開している Database Migration assessment guide(日本語) に沿って、チェック項目と推奨設定を具体例付きで示します。


ネットワーク要件

データベース移行サービス (DMS) は、オンプレミス側と GCP 側の両方に直接アクセスできる必要があります。そのため VPC ピアリング/VPN の構成ファイアウォールルール が正しく設定されていなければ、接続テストすら通りません。

VPC ピアリングと VPN の基本構成

以下は一般的なオンプレミス ↔ GCP 接続パターンです。

項目 推奨設定例
VPC dms-vpc(カスタムサブネット)を作成し、プライベート IP 範囲 10.0.0.0/24 を割り当てる。
VPN / Interconnect Cloud VPN (IKEv2) または Dedicated Interconnect を用意し、オンプレミス側のルータと接続する。
ピアリング gcloud compute networks peerings create dms-to-onprem --network=dms-vpc --peer-network=onprem-vpc --auto-create-routes で相互ルートを自動生成。
ファイアウォール ソース DB のポート(PostgreSQL:5432、MySQL:3306、SQL Server:1433)へのインバウンド許可と、DMS が使用するサービス アカウントの IP 範囲だけを許可。
DNS Private DNS ゾーンで Cloud SQL のプライベート IP を名前解決できるように設定。

接続テストの実施方法

VPC ピアリングが完了したら、GCP 上の任意の Compute Engine インスタンスから 標準 ping コマンドで接続確認を行います。

ping が成功すれば L3 通信は確立しています。続いて telnet(または nc)で DB ポートが開通しているかを確認しましょう。


認証・権限確認

DMS がデータ取得・書き込みを行うには、適切な IAM ロールサービス アカウント の設定が必須です。誤ったロールや過剰な権限はセキュリティリスクにつながります。

必要な IAM ロール

ロール 主な権限 用途
roles/datamigration.admin DMS のジョブ作成・管理全般 移行プロジェクトの中心ロール
roles/cloudsql.admin Cloud SQL インスタンスの作成・設定 ターゲット DB 操作
roles/datastream.admin Datastream の CDC 設定・ストリーム管理 継続レプリケーション時に必須
roles/compute.networkAdmin(または roles/vpcaccess.user VPC ピアリングや VPN の設定権限 ネットワーク構築担当者向け

サービス アカウントの作成とロール付与例

ロール付与後は、gcloud iam test-permissions で実際に必要な権限が有効か検証できます。


データサイズとスキーマ把握

データ容量とスキーマの複雑度は、一次ロードか継続レプリケーションか の選択基準となります。正確な測定ができていないと、予算超過やダウンタイム延長のリスクがあります。

容量測定の実践例

  • PostgreSQL: SELECT pg_total_relation_size('public.my_table') AS size;
  • MySQL: SELECT table_schema, SUM(data_length + index_length) / 1024/1024 AS mb FROM information_schema.tables GROUP BY table_schema;
  • SQL Server: EXEC sp_spaceused;

取得した合計サイズが 200 GB 超 の場合は、一次ロードだけでは時間がかかりすぎるため Datastream + 継続レプリケーション を検討します。

スキーマ変更頻度の評価

スキーマが頻繁に変わる環境(例: 毎週 DDL 追加)がある場合は、移行前に DDL 差分抽出ツールpg_dump --schema-onlymysqldump --no-data)で差分を取得し、ターゲット側に事前適用しておくと、本番切り替え時のエラーを防げます。


移行対象データベースの選定と GCP 推奨先

ソース DB の種類と業務要件(レイテンシ、可用性、分析ニーズ)に応じて、最適なマネージドサービスを選択します。以下は主要 DB と推奨 GCP 先の比較表です。

ソース DB 推奨 GCP 先 主なメリット 注意点
PostgreSQL (9.6‑13) Cloud SQL for PostgreSQL / AlloyDB for PostgreSQL フルマネージド、パラメータ互換性が高い。AlloyDB は高速 OLTP+分析向けに最適化。 バージョン差異がある場合は事前テスト必須
MySQL (5.7‑8.0) Cloud SQL for MySQL 自動スケーリング、Read Replica による負荷分散 一部 InnoDB 固有機能(例: 表領域圧縮)が非対応
Microsoft SQL Server (2016‑2019) Cloud SQL for SQL Server Windows ライセンス不要、バックアップ自動化 datetime2 など一部データ型変換に注意
Oracle (12c‑19c) AlloyDB (PostgreSQL 互換) + 外部フェデレーション 高性能分析、Google AI/ML とシームレス連携 完全な Oracle 互換は不可。スキーマ変換が必要

選定の指針
- トランザクション中心か分析中心か → AlloyDB が有利。
- レガシー機能が多いか → Cloud SQL の方が互換性が高い。


Database Migration Service のセットアップ手順

DMS を本格運用するまでに必要な工程は 「プロジェクト/サービスアカウント作成」→「VPC ピアリング構築」→「ジョブ作成」 の 3 段階です。ここでは実際のコンソール操作と CLI コマンドを交えて、最小権限かつ安全な構成例を示します。

プロジェクト・サービス アカウント作成

まずは DMS 専用のプロジェクトを立ち上げ、最小特権で動作するサービス アカウントを作ります。

ポイント
キーは不要です。DMS は Cloud IAM の認可情報を直接参照するため、キー管理の負荷が減ります。

VPC ピアリング構築

オンプレミスと GCP 間のプライベート接続を確立し、ファイアウォールで必要ポートだけを許可します。

ピアリングが正常に機能すれば、ファイアウォールで許可したポートだけが通過し、安全に DMS がデータ取得できる状態です。

移行ジョブの作成と実行

DMS コンソール(または gcloud datamigration jobs)から 一次ロード継続レプリケーション のどちらかを選択します。ここでは代表的な 2 パターンを示します。

一次ロード(ダンプ方式)

  • 対象データが 100 GB 以下、スキーマ変更頻度が低いケースに最適です。
  • ジョブ作成後は DMS が自動で pg_dump / mysqldump を実行し、Cloud Storage 経由でターゲットにインポートします。

継続レプリケーション + Datastream

  • 300 GB 超 の大規模 DB や ダウンタイムゼロ が要求される場合は、Datastream による CDC と組み合わせます。
  • ソースとターゲットの接続プロファイルを作成し、ストリームを起動するだけでリアルタイムにデータが同期します。

ポイント
datastream logs read でエラーログを随時確認し、スキーマ変更が発生した場合は DMS コンソールの「スキーマ変換マッピング」から事前にマッピング定義を追加しておきます。

カットオーバーとロールバック手順

  1. 最終増分取得
  2. Datastream を一時停止し、残り差分を pg_dump で取得。
  3. ソース DB のリードオンリー化(例: PostgreSQL)
    sql
    ALTER DATABASE mydb SET default_transaction_read_only = on;
  4. ターゲット側に増分インポート
  5. アプリケーションの接続文字列を GCP エンドポイントへ切替
  6. 正常稼働確認後、ソース DB を停止(ロールバックが必要な場合は事前にスナップショット取得)

上記手順は本番環境で実施する前に ステージング環境でリハーサル し、所要時間と障害時の復旧フローを文書化しておくことが重要です。


ポストマイグレーションタスクと代替手段比較

移行完了後も パフォーマンス最適化・IAM ガバナンス・監視設定 が欠かせません。また、DMS 以外の従来手法との比較表を示し、選択基準を明確にします。

インデックス再構築と統計情報更新

一次ロードではテーブルデータのみが転送され、インデックスや統計は自動で作成されません。以下のコマンドで最適化しましょう。

実施タイミングは 移行完了後 1〜2 時間以内 が推奨です。ベンチマーク(pgbench 等)で平均レイテンシが約 20 % 改善することが報告されています。

IAM と監視設定

項目 推奨内容
IAM ロール アプリケーションのサービス アカウントに roles/cloudsql.client のみ付与し、管理者権限は別アカウントで保持。
モニタリング Cloud Monitoring で CPU 使用率 > 80 %(5 分間連続)やスロークエリ数増加時に Slack / PagerDuty へ通知するアラートポリシーを作成。
ログエクスポート Cloud Logging の cloudsql.googleapis.com/mysql_slow.log を BigQuery にエクスポートし、月次でスロークエリ分析レポートを生成。

公式ドキュメントは Cloud Monitoring 監視設定ガイド(日本語) を参照してください。

代替手段との比較指針

手法 主なメリット デメリット・留意点
DMS(一次ロード) 設定がシンプル、フルマネージドで運用負荷低減 大容量データでは時間がかかる。増分同期は別途構築必要
DMS + Datastream(継続レプリケーション) ダウンタイム最小化、リアルタイム CDC が可能 初期設定がやや複雑、Datastream の課金が追加で発生
手動ダンプ/インポートmysqldump, pg_dump ツールが汎用的で自由度高い 手作業が多く、リトライやエラーハンドリングが自己責任
従来レプリケーション(MySQL Replication, Oracle GoldenGate 等) 既存ノウハウ活用可能、リアルタイム性が高い 管理対象が増える。GCP 側で受信側を自前で構築する必要あり

選定の目安

  • データサイズ ≤ 100 GB・ダウンタイム許容 1 h 以上 → 一次ロードが最もコスト効率的。
  • データサイズ > 300 GB・ダウンタイムを数分に抑えたい → DMS + Datastream がベストプラクティス。

記事まとめ

  1. 移行前チェック:ネットワーク(VPC ピアリング/VPN、ファイアウォール)、認証・権限(roles/datamigration.admin などの最小ロール)、データ容量とスキーマを評価し、抜け漏れ防止リストを作成する。
  2. ターゲット選定:ソース DB の特性に合わせて Cloud SQL または AlloyDB を選び、バージョン互換テストを実施。
  3. 安全な基盤構築:専用プロジェクトと最小権限のサービス アカウントで DMS 環境を作り、VPC ピアリングでプライベート接続を確立。接続は VM 上の標準 ping/nc で検証。
  4. ジョブタイプ選択:データサイズとダウンタイム要件に応じて一次ロードか継続レプリケーション(Datastream)を決定し、カットオーバー手順とロールバックプランをリハーサル。
  5. ポストマイグレーション:インデックス再構築・統計情報更新でパフォーマンス最適化、IAM の最小権限化と Cloud Monitoring で運用監視を設定。
  6. 代替手段比較:コスト・ダウンタイム・管理負荷の観点から DMS 系列と従来手法を比較し、自社要件に最適な方法を選択する。

上記ステップを体系的に実施すれば、GCP へのデータベース移行に伴うリスクは大幅に低減し、スムーズな本番切り替えが可能です。


参考リンク(日本語)

スポンサードリンク

もっとスキルを活かしたいエンジニアへ

スポンサードリンク
働き方から選べる

無料で使えて良質な案件の情報収集ができるサービス

エンジニアの世界では、「いつでも動ける状態を作っておけ」とよく言われます。
技術やポートフォリオがあっても、自分に合う案件情報を日常的に見れていないと、いざ動こうと思った時に比較や判断が難しくなってしまいます。
普段から案件情報が集まる環境を作っておくと、良い案件が出た時にすぐ動きやすくなりますよ。
筆者自身も、メガベンチャー勤務時代に年収1,500万円を超えた経験があります。振り返ると、技術だけでなく「どんな案件や働き方があるか」を日頃から見ていたことが、キャリアの選択肢を広げるきっかけになりました。
このブログを読んでくれた方に感謝を込めて、実際に使っている情報収集サービスを紹介します。

フルリモート・週3日・高単価、どんな条件も妥協したくないなら

フリーランスボードに無料会員登録する

利用者10万人以上。業界最大規模45万件の案件。AIマッチ機能や無料の相場情報が人気。

年収800万円以上のキャリアアップ・ハイクラス正社員を視野に入れているなら

Beyond Careerに無料相談する

内定獲得率90%以上。紹介先企業とは役員クラスのコネクションがある安心と信頼できるエージェント。


-GCP