daily-dev.net

React, firebase, 機械学習など

アカウント間・リージョン間でRDSインスタンスを移行/変更したいならDMS(Database Migration Service)を使うのが一番速い

sponsored

https://d1.awsstatic.com/product-marketing/DMS/DMS-MultiSource-Diagram.8b818bdaa0897f58c5391f47c4d8cadd5c8fb2fb.png

Database Migration Serviceって知らなかったけどめちゃめちゃ簡単で便利なサービス。><

「RDS リージョン 変更」で調べるとデフォルトのシングルAZをマルチAZにして、手動でフェイルオーバーするとリージョンが変わりますよ、って記事がググって一番上に出てきたのだけれど、フェイルオーバーした後のリージョンを指定できないなら意味ないじゃないか、、、、、 スナップショットを取って移行しようにも、なんだか別のリージョンだとできなさそうだったし、困った・・・ と思って手頃な方法を調べたら 。。。

1) You can use AWS Database Migration Service to take an initial dump and replicate data continuously. Pros : Simple setup due to the homogenous nature of migration Cons : A bit expensive than traditional mysqldump based migration

2) If you are using RDS Aurora, you can setup cross region replication : Replicating Amazon Aurora DB Clusters Across AWS Regions

3) Traditional way : Take a initial dump of the data using mysqldump Once the dump is complete, replicate the data using native MySQL based replication Pros : Least expensive Cons : Higher level of expertise required than options 1 and 2

https://www.quora.com/How-do-I-transfer-databases-from-one-RDS-region-to-another-RDS-region-in-Amazon-AWS

がヒットしました!

これ、移行期間中の移動元DBの変更もレプリケートしてくれるし、2つのデータベースを指定するだけで終わるし、これ以上簡単にしようがないくらい簡単で、良かったです。

注意としては、

  • データベースの binlog-formatをROWにすること
  • タスクを作成するだけじゃ動かなくて、後から「開始」ってボタンを押さないと動かないこと
  • タスク作成時に、ロギングを有効化しておく。必要に応じてログレベル設定も変更する。
  • 数百万レコードあるテーブルだとCPUエラーが起きることがあるので、large以上のRDSインスタンスをレプリケーション用データベースにするのがオススメ。

があります。

RDS Auroraだとリージョンをまたいでレプリケートできるんですね。なんでそれ以外は駄目なんだろう。Auroraに切り替えさせるためだけでしょうか?