😎

Database Migration Serviceについて

2024/08/16に公開

初めに

こんにちは。hikaruです。
現在、Professional Cloud Database Engineerの取得に向けて頑張っています。
今回はDatabase Migration Service (DMS)について調査したことをまとめてみました。

Database Migration Service (DMS)とは

Database Migration Service (DMS)は、主に、オンプレミスで稼働しているMySQLやPostgreSQLデータベースをGoogle Cloud上に移行するために利用されるサービスです。
DMSを利用することでクラウド上のマネージドデータベースにリフトアンドシフトして、インフラ管理作業から解放されたり、マネージドサービス特有の高可用性、障害復旧、スケーリングの恩恵を受けることができます。

サポートされているデータベース

Database Migration Serviceでサポートされているデータベースと移行パターンしては、以下通りになります。

Database Source Database Destination Database
MySQL Amazon RDS
On-Premise or Cloud VM
Cloud SQL
Amazon Aurora
Cloud SQL
PostgreSQL Amazon RDS
On-Premise or Cloud VM
Cloud SQL
Amazon Aurora
Oracle
Cloud SQL
AlloyDB for PostgreSQL Amazon RDS
On-Premise or Cloud VM
Cloud SQL
Amazon Aurora
Oracle
AlloyDB for PostgreSQL
SQL Server Amazon RDS
On-Premise or Cloud VM
Cloud SQL for SQL Server

サポートされている詳細なマイナーバージョンについては公式ドキュメントを確認してください。
https://cloud.google.com/database-migration/docs/supported-databases

移行方法

継続的な移行

Database Migration Serviceでは、継続的な移行がサポートされています。継続的な移行とは、初回のデータダンプとロードに加えて、ソースデータベースから
宛先データベースへ変更内容が継続的に連携されることを言います。継続的なデータ変更が連携されている場合は、宛先データベースはレプリカインスタンスとしてふるまいます。
完全に宛先データベースに移行するタイミングが来た場合、プロモートという操作を行うことで、宛先データベースがソースデータベースから完全に切り離され、
レプリカインスタンスからプライマリインスタンスに昇格されます。

一度限りの移行

Database Migration Serviceでは、一度限りの移行もサポートされています。
一度限りの移行とは、ソースデータベースの単一スナップショットをダンプし、宛先データベースにロードすることです。
移行中は、ソースデータベースに対して新規に書き込みを行うことができないため、移行期間中はダウンタイムが発生します。ロードが完了すると自動的にプロモートされ、
宛先データベースがプライマリデータベースになります。

ネットワーク接続性

Database Migration Serviceを利用するにあたり、ソースデータベースと宛先データベース間にネットワークの接続性を確立する必要があります。

ホワイトリストによるIP許可

パブリックIPでの接続で、Database Migration Serviceを利用する接続方式です。
ソースデータベースがGoogle Cloud外部にあり、外部からアクセス可能なIPv4アドレスとTCPポートがある場合に利用可能です。
設定が簡単かつ、短期間の移行シナリオで利用されるケースが多いですが、
FWの設定が必要になる、ソースデータベースにパブリックIPを付与する必要がある、接続がデフォルトで暗号化されていない等の懸念もあります。

VMを介したリバースSSHトンネル

パブリックIPでの接続に問題があり、Google Cloudと専用線を接続する余裕がない場合は、VMを介したリバースSSHトンネルでDatabase Migration Serviceを利用することができます。
ソースデータベースと宛先データベースを経由するVMインスタンスの作成や初期設定等は、DMSの移行ジョブを作成する段階でコンソール上の指示に従うことで設定可能です。

VPCピアリング

プライベートIPでの接続を必要とする場合や、ソースデータベースにアクセスできるVPCネットワークがGoogle Cloud内にある場合、オンプレミスとの接続にVPN/Cloud Interconnectを利用している場合は、VPCピアリングでDatabase Migration Serviceを利用することができます。
Google Cloud内でCompute Engine上でホストしているデータベースをCloud SQLへ移行するパターンや、Interconnect等の専用線を利用してオンプレミスと接続しているパターンで利用されます。

最後に

今回はDatabase Migration Service (DMS)について調査したことをまとめてみました。
普段、オンプレミスのデータベースをクラウドへリフトする機会がないのですが、Cloud SQL to Cloud SQLへの移行や、Cloud SQL to Alloy DBへの移行は今後経験する可能性があるため、DMSについて触りだけでも理解しておくべきだと思いました。

また、Googleが開発している生成AIモデルの「Gemini」が組み込まれている移行支援ツール「Gemini in Database」を利用することで、OracleからPostgreSQLへの移行をサポートする機能が去年のGoogle Cloud Nextで発表されています(プまだレビューです)。
OracleからPostgreSQLへの移行事例は、前職でもよく聞きましたので本機能がGAされることによりかなり移行の助けになると思います。
https://cloud.google.com/gemini/docs/databases/overview?hl=ja

GitHubで編集を提案

Discussion