G-gen の奥田梨紗です。当記事では、オンプレミスや他のクラウドサービス上にあるデータベースを Google Cloud の Cloud SQL に移行するメリットや、移行方法を紹介します。
はじめに
Google Cloud のデータベース
Google Cloud では様々なデータベースが利用できます。データベースの特徴やユースケースに応じて、移行先のデータベースを検討してください。
ユースケース | 移行先サービス名 |
---|---|
MySQL、PostgreSQL、SQL Server をクラウド移行したい | Cloud SQL |
PostgreSQL 互換の高性能データベースを使いたい | AlloyDB for PostgreSQL |
高水準の可用性とスループットが必要 / 利用者が複数リージョン | Spanner |
分析用データベースを利用したい | BigQuery |
クエリパターンが NoSQL データベースに適している | Firestore、 BigTable |
オンプレミスからクラウドへの移行
オンプレミスからクラウドへ移行する場合のメリット・デメリット、及び判断ポイント等については下記で紹介しています。
メリット
既存のデータベースを Google Cloud へ移行するメリットは、以下が挙げられます。
1. TCO の削減
2. Google Cloud エコシステムとの連携強化
3. 生成 AI によるデータベース運用の自動化
それぞれ具体的に説明します。
メリット1. TCO の削減
クラウドへの移行は、TCO の削減に繋がります。TCO(Total Cost of Ownership)とは総所有コストのことです。情報システムの導入や、管理維持に関わるすべてのコストの総額のことを指します。
月額利用料金だけを単純に試算してしまうと、オンプレミスのほうが安価になる場合が多くあります。それでもクラウドが選ばれる理由は、新たなリソース(サーバーや CPU、メモリ、ストレージなど)の追加がボタン1つ(コマンド1つ)で可能という俊敏性にあります。物理基盤の調達とセットアップ、維持・管理に必要な工数と比べると、クラウドで必要な工数は圧倒的に小さくなります。これが、TCO の削減の大きな部分を締めています。
またオンプレミスへのサーバー設置は、機器台だけでも初期費用として数十万円〜数百万円かかります。一方のクラウドは従量課金制であり、初期費用は不要です。
また Google Cloud の場合、「無料プログラム」が用意されており、一定の利用ボリュームまでは無料で利用できます。以下は、無料枠の例です。これらを活用することで、TCO の削減を図ることができます。
サービス名 | 用途 | 無料枠の例 |
---|---|---|
Compute Engine | 仮想サーバー | 指定リージョン、指定サイズのインスタンスが一定時間、無料で利用可能 |
Cloud Storage | オブジェクトストレージ | US リージョンの Regional Storage を利用した場合、 5GB まで無料 |
メリット2. Google Cloud エコシステムとの連携強化
データベースを Google Cloud に移行することで、データを Google Cloud のエコシステムと連携し、ビジネス上の価値を増幅したり、運用工数を削減することが可能です。エコシステムとは、ここでは「高度に連携しあうことでメリットを生み出す、一連のサービス群」のような意味合いです。
Google Cloud の優れたエコシステムとして、以下が挙げられます。
- モダンなクラウドインフラ(コンテナ、サーバーレス、フルマネージド)
- 高度なデータ分析(BigQuery)
- 利用が容易な AI/ML(人工知能/機械学習)サービス
- Google Workspace による ID 管理
Google Cloud には Google Kubernetes Engine(GKE)や Cloud Run といったモダンな IT インフラサービスが揃っています。このようなサービスにアプリケーションをホストすることで、アプリケーション開発の俊敏性が増すことでビジネススピードが向上したり、ビジネスをスモールスタートすることができるようになります。また、運用コストが低いため、TCO のさらなる削減に繋がります。
また、BigQuery をはじめとする高度なデータ分析サービスがあります。Cloud SQL や AlloyDB からは、シームレスに BigQuery にデータを複製することができ、タイムリーに複雑で大規模なデータ分析を行うことができます。また、無料で使えるダッシュボードツールである Looker Studio や、高度な可視化と分析からの後続アクションへの接続を得意とする Looker など、Google Cloud にはデータの上流から下流までを扱うことができるサービスが揃っています。
BigQuery に格納したデータは、そのまま AI/ML(人工知能/機械学習)の活用に繋げることができます。SQL で機械学習モデルのトレーニングや推論が可能な BigQuery ML や、Vertex AI、Colab Enterprise など、Google Cloud にデータが存在しさえすれば、一連のパイプラインがシームレスに繋がります。
そして、これらを利用するための ID は Google Workspace で統合管理されています。クラウド上で別途、アカウント(ID)を管理する必要はありません。
このような優れた Google Cloud のエコシステムを利用することで得られるビジネス上のメリットは、クラウドへのデータベース移行の初期コストを遥かに上回るものになります。
メリット3. 生成 AI によるデータベース運用の自動化
Google が開発したマルチモーダル生成 AI モデル「Gemini」を利用した、データベースの開発・管理ツールである Gemini in Database により、開発・運用コストを低減できます。
Gemini in Database は、2024年4月にラスベガスで開催された Google Cloud Next ‘24 で発表されました。記事を執筆した2024年5月時点で、以下の機能が発表されています。
- 自然言語で SQL コードを作成・要約(Database Studio)
- データベースの安全性を向上(Database Center)
- パフォーマンスの調査・改善(Query Insights)
- セキュリティ強化
- データベースの移行支援
以下の記事で、「1. 自然言語で SQL コードを作成・要約」を実際に行ってみた流れを紹介していますので、ご参照ください。
移行方法
本記事ではオンプレミス(あるいは他クラウド)のデータベースを Google Cloud に移行する方法を3つ、ご紹介します。
1. Database Migration Service(DMS)
2. レプリケーション
3. ダンプファイル
メリットとデメリットは、以下の表のとおりです。
手法名 | メリット | デメリット |
---|---|---|
1. DMS | ダウンタイムなし | 事前調査と準備が必要 |
2. レプリケーション | ダウンタイムなし | 事前調査と準備が必要 |
3. ダンプファイル | 安全で確実 | ダウンタイムが発生 |
1. Database Migration Service(DMS)
Database Migration Service(DMS)はオンプレミスや他のクラウドにあるデータベースから、Google Cloud の Cloud SQL や AlloyDB for PostgreSQL にデータを移行するためのサービスです。Amazon Web Service(AWS)にも同名の類似サービスがあります。
DMS は連続的なデータ同期により移行を実現します。そのためダウンタイムを設けることなく、移行の最中にも移行元データベースを稼働できることがメリットです。
安全にデータ同期を実現するには安定的なネットワーク帯域が必要ですし、移行元データベースのリソースもある程度消費します。さらに、DMS の利用には確実な事前準備と事前検証が必要な点がデメリットであると言えます。
DMS では、Oracle Database から Cloud SQL for PostgreSQL や AlloyDB for PostgreSQL への異種データベース間移行もサポートされていますが、特に入念な準備とテストが必要です。また SQL の方言が異なるため、アプリケーション側の修正も必要になります。このような異種間移行の場合に、生成 AI モデル Gemini による支援を受けることもできます(2024年5月現在、Private Preview)
Google Cloud Next ‘24 の Keynote での発表では、Oracle Database から AlloyDB for PostgreSQL へ移行する際に必要となる、ストアドプロシージャの構文の変換を Gemini がサポートする様子などがデモンストレーションされました。
2. レプリケーション
レプリケーションとは、ここではデータベースエンジンに備え付けの機能を使い、データの内容を継続的に複製することを指しています。MySQL、PostgreSQL、Microsoft SQL Server のいずれもネイティブなレプリケーション機能を持っていますが、Cloud SQL でサポートされているのは MySQL と PostgreSQL のみです。
メリットとデメリットは、DMS を使う場合と同様です。データを継続的にレプリケーションするためダウンタイムを抑えることができるメリットがある一方で、移行元・先データベースでの事前作業が必要だったり、安定したネットワーク帯域が必須です。
3. ダンプファイルを利用
データベースの中身をダンプファイルとしてエクスポート(出力)し、ファイルを Google Cloud の Cloud Storage へアップロードしてから、Cloud SQL 等へインポート(取り込み)することで移行が実現できます。
Cloud SQL でサポートされている MySQL、PostgreSQL、Microsoft SQL Server のいずれも、Cloud Storage 上のダンプファイルのインポートが可能です。また、AlloyDB for PostgreSQL でも、pg_dump
ツールで作成された PostgreSQL のダンプファイルをインポートできます。
- 参考 : SQL ダンプファイルを使用したエクスポートとインポート - MySQL
- 参考 : SQL ダンプファイルを使用したエクスポートとインポート - PostgreSQL
- 参考 : SQL ダンプファイルを使用したエクスポートとインポート - SQL Server
- 参考 : Import a DMP file - AlloyDB for PostgreSQL
この手法のメリットは、手順がシンプルであること、また確実な(原則的に差分なく)データの移行ができることです。
一方のデメリットは、移行元データベースからダンプファイルをエクスポートした時点から、移行先の Cloud SQL が本番稼働するまでデータベースの更新を止める必要があり、ダウンタイムが発生することです。ダンプファイルはエクスポートを実行した時点のデータの内容を保持していますので、その後に更新された内容は移行先に反映されないためです。後述の手順の 1.
から 6.
までの数時間程度(データ量により日単位)がダウンタイムとなり得ます。
おおまかな移行手順は以下のようになります。
- アプリケーションを停止(移行元データベースの更新を停止)
- 移行元データベースからダンプファイルをエクスポート
- ダンプファイルを Cloud Storage にアップロード
- 移行先データベースにダンプファイルをインポート
- アプリケーションから移行先データベースへ参照先を変更
- アプリケーションを再開
奥田 梨紗(記事一覧)
クラウドソリューション部クラウドデベロッパー課
前職はベトナムのIT企業。
Google Cloudの可能性に惹かれ、2024年4月G-genにジョイン。Google Cloud 全 11 資格保有。日々修行中です!