こんにちは、ちゃりおです。
「VPC作ったけど、ネットワークの構成がいまいちで新しく作り直したい」と思うことありませんか。
僕は、最近ありました。
新しいVPCに移行に移行する際に、RDSがネックになる場合があると思います。
今回は移行する方法をまとめてみました。
移行方法
RDSの「変更」からサブネットグループを変更する
一番、簡単な方法です。
マネジメントコンソールのRDSの変更から、サブネットグループを新VPCにすれば移動できます。
しかし、マルチAZ配置やリードレプリカがある際はできません。
一旦、マルチAZの解除、リードレプリカの削除が必要になります。
移動中は、RDSが使用できません。多少のダウンタイムが発生してしまいます。
RDS立てて変更してみたらだいたい7分くらいかかりました。
- マネジメントコンソールから簡単に変更できる
デメリット
- 移動中はダウンタイムが発生する
【小ネタ】知っていましたか?RDSを別のVPCに移動できることを
DMSでレプリケーションする
DMSというAWSのデータベースレプリケーションサービスを使う方法です。
新VPCにRDSを立てておいて、DMSを使ってレプリケーションする方法です。
データ移行中にソースデータベースで行われるすべての変更はターゲットに継続的にレプリケートされるため、移行プロセスの間もソースデータベースは完全に利用可能な状態に保たれます。データベース移行の完了後は、任意の期間にわたってターゲットデータベースとソースデータベースを同期させておくことが可能なため、お客様にとって都合のよい時に切り替えを実行できます。
これすごいです。ダウンタイムが少なくて済みそうです。
DMSインスタンスを立てる必要があります。
マネジメントコンソールから簡単に作れますが、少し面倒です。
あと、DMS分の料金も少しかかります。
- ダウンタイムを少なくすることができる
- 旧環境と並行稼動が可能
デメリット
- DMSインスタンスを立てる必要がある
- DMSの料金がかかる
参考 AWS Database Migration Service
スナップショットから復元して新しいRDSを新VPCにたてる
スナップショット(バックアップ)から新VPCにRDSを作成する方法です。
既存のRDSを残しつつやりたい場合にいい方法だと思います。
または、本番とSTGが違うVPCで本番のスナップショットから、STGのVPCにRDSをたてるとか。
この方法だと、バックアップ時点の状態になってしまうので注意が必要です。
本番RDSを新しいVPCに移行するとかが目的だと、あまりいい方法ではないです。
- 手順が簡単
- 旧環境にもRDSを残せる
デメリット
- ダウンタイム長め
まとめ
今回は、RDSのVPCを移行する方法についてでした。
- RDSの「変更」からサブネットグループを変更する
- DMSでレプリケーションする
- スナップショットから復元して新しいRDSを新VPCにたてる
実際に、移行したら詳しく書こうと思います。
他の方法もあれば、教えてもらえると嬉しいです。