Google Cloud SQLへのレプリケーションを試してみました[DBMoto]


異種データベース間レプリケーションを行えるソフトウェアDBMoto。エージェントレスなアーキテクチャを採用しているので、データベースのプラットフォームに依存せず、例えばクラウド上のデータベースであってもレプリケーションを実施することができます。

今回は実際にDBMotoによる、Google Cloud SQLを使用したレプリケーションを試してみました。

現在Google Cloud SQLはMySQLPostgreSQLから選択できますが、DBMotoではどちらのデータベースエンジンであってもレプリケーションを行えます。また連携元(先)のデータベースに関しては、同種のデータベースはもちろん、Oracle, SQL Server,DB2 (AS/400)といった異種データベースであってもレプリケーションを行うことが可能です。


まずは、Google Cloud SQLを作成します。

こちらよりGoogle Cloud SQLインスタンスの作成画面のスタートページを開きます。


「インスタンスを作成」ボタンを選択し、次の画面でデータベースエンジンを選択します。今回はMySQLを選択してみました。


インスタンス名やリージョン、rootパスワードを入力後、作成をクリックします。数分待つとインスタンスが立ち上がり、Google Cloud SQL MySQLのデプロイが完了します。


インスタンス起動後は接続先となるIPアドレスが表示されます。さらに、GUI上でユーザ作成や接続を承認するIPアドレスも指定できます。今回はオンプレミスのDBMoto<サーバから接続するため、承認済みネットワークにDBMotoサーバのグローバルIPアドレスを指定し、接続ユーザとして「dbmoto」ユーザを作成しました。


これでGoogle Cloud SQL側の設定は完了です。後はDBMotoの画面で接続設定を行うだけです。Google Cloud SQLのパブリックIPアドレスと作成した「dbmoto」ユーザを指定することで接続が完了し、Google Cloud SQLを使用したレプリケーションを行うことができます。

Cloud SQL ProxyをDBMotoサーバにインストールすることで、Cloud SQL Proxyを使用した接続を行うことも可能です。


もちろん、リアルタイムな連携目的で、レプリケーション元データベースからGoogle Cloud SQLへの差分レプリケーションも可能です。さらにデータベースエンジンがMySQLの場合は、バイナリログやトリガーを使用したGoogle Cloud SQL MySQLからの差分レプリケーションも可能です。
※トリガーを使用する場合は、Google Cloud SQL MySQL側のデータベースフラグの設定から「log_bin_trust_function_creators」パラメータを有効化することで可能です。

このように、DBMotoを使用することで、オンプレミスのあらゆるデータベースをGoogle Cloud SQL に移行することや、リアルタイムなデータ連携によりGoogle Cloud SQL 側でのアプリケーション開発などを行うことが可能です。DBMotoの詳細に関してはこちらよりお問い合わせください。

関連したトピックス