Hello, Everyone〜SBCloudの新米アーキテクトのAngelaです。今回は新しくリリースされたData Transmission Service(DTS)をご紹介します。
Alibaba Cloud東京リージョンにECSを作成して疑似的なオンプレミス環境から、DTSを利用して上海リージョンのRDSへデータ同期をおこないました。実際やって見たら興味深く、Wonderfulプロダクトでした。ではでは、早速検証した結果をご紹介いたします!
1.疑似的なオンプレミス環境の準備
東京リージョンにECSを用意して、マスタとするMySQLをインストールします(準備の過程は割愛します)。
用意したECS:
インストールしたMySQLへ接続してみます:
2.上海リージョンRDSを準備します
上海リージョンでスレーブとするRDSのMySQLを用意します。
上海リージョンRDS:
作成したMySQLへ接続してみます:
3.東京リージョンのにあるMySQLにDBとテーブルを用意します
テーブル導入の過程は割愛します。結果は下記となります。次にこのDBを上海リージョンRDSのMySQLと同期させます。
4.上海リージョンに同期用DTSを作ります
①DTS実行前、両DB環境を確認します
東京リージョンのMySQL:
上海リージョンのRDS:
②DTSを作成します
東京リージョンのMySQLをソースデータベースとして選択し、上海リージョンのRDSをターゲットデータベースとして選択します。またここで、「接続のテスト」ボタンを利用し、ソースデータベースとターゲットデータベースが接続されたか確認することができます。
入力後、「ホワイトリストを承認して次のステップに進む」をクリックします。
今回はリアルタイムDB同期をさせたいので、「オブジェクト構造移行」+「既存データ移行」+「データ変更レプリケーション」をチェックします。これで移行中にソースデータベースにデータ変化があっても、ちゃんとターゲットデータベースに反映されます。移行オブジェクトを選んだ後、「事前チェックと開始」をクリックします。
事前チェック完了後、DTSを購入します💰💰💰。
データ変更レプリケーションが遅延なしになれば、DBの同期が取れています。このタスクのステータスは手動で終了させない限り停止しません。従って、常にレプレーションがおこなわれていることになります。
5.同期結果確認と検証
①初回の同期結果を確認します
無事に同期されましたね。
ここに「dts_increment_trx」というテーブルが増えました。これはDTSが作成した同期用のテーブルです。同期中に削除しまうと同期タスクが失敗する可能性がありますので、同期タスク終了後に削除するか、そのまま残すかにしましょう。
②DMLを検証しますほぼ(CMか?)同時にスレーブへ反映しました。
③DDLを検証しますほぼ(またか?)同時にスレーブへ反映しました。
🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟
最後に、DTSが日本から海外にこんなにもSpeedyにデータのリアルタイム同期ができることには、正直驚きました。実際、中国では銀行がDTSを利用して複数リージョンでDR構築したり、ゲーム会社がDTSでゲームデータ共有するなどの事例があります。日本リージョンにはリリースしたばかりですが、素晴らしい機能持っていますので、もっと日本企業のグローバル化進展に貢献することが期待がされます❤。
🙌🏻校閲者Sugaharaさん、Shuくんに感謝を申し上げます。
ありがとうございます❤。