目次
DMS(Database Migration Service)とは
DMSとは、データベースをAWSクラウドへ移行するためのマネージドサービスです。
移行の種類
| 同種移行 | 例)Oracle → Oracle(RDS)、MySQL → MySQL(RDS) |
| 異種移行 | 例)Oracle → Amazon Aurora、SQL Server → PostgreSQL |
移行モード
| 一回限りの移行 | 既存DBを完全にAWSへ移動 |
| 継続的なレプリケーション(CDC) | ソースDBの変更をリアルタイムで同期(Change Data Capture) |
対応データベース
ソースおよびターゲットとして、Oracle、SQL Server、MySQL、PostgreSQL、MongoDB、Amazon Aurora、Amazon Redshift、DynamoDB など多数に対応しています。
仕組み
| ソースDB → DMSレプリケーションインスタンス → ターゲットDB |
- レプリケーションインスタンスを作成(EC2ベースのマネージド環境)
- ソース/ターゲットのエンドポイントを設定
- 移行タスクを定義・実行
基本的な仕組み
| レプリケーションインスタンス | 移行処理を実行するマネージドなEC2インスタンス。ソースからデータを読み取り、ターゲットへ書き込むエンジンとして機能します。 |
| エンドポイント | ソース(移行元)とターゲット(移行先)の接続情報(ホスト名、ポート、認証情報など)を定義したものです。 |
| レプリケーションタスク | どのテーブルをいつどのように移行するかを定義する設定です。 |
メリット
| ダウンタイム最小化 | CDCにより、移行中もソースDBを稼働し続けられる |
| フルマネージド | インフラ管理不要 |
| スキーマ変換 | AWS SCT(Schema Conversion Tool)と組み合わせて異種DB間のスキーマ変換も可能 |
| 低コスト | 使った分だけの従量課金 |
よくあるユースケース
- オンプレミスDBをAWS RDSやAuroraへ移行
- 本番環境を止めずにクラウドへ段階的移行
- 開発・テスト環境の複製
- 継続的なデータ同期・レプリケーション
DMSの確認場所
AWSマネジメントコンソール画面で確認できます。
(以下は、旧ナビゲーション)
DMSレプリケーションインスタンス(EC2)
AWSコンソール
→ 「Database Migration Service」を検索・選択
→ 左メニュー「レプリケーションインスタンス」
ここで、作成済みのインスタンス一覧・状態(available / stopped など)が確認できます。
移行タスク
AWSコンソール
→ 「Database Migration Service」を検索・選択
→ 左メニュー「データベース移行タスク」
ここで、タスクの一覧・状態(実行中 / 停止 / 完了 など)が確認できます。
エンドポイント
AWSコンソール
→ 「Database Migration Service」を検索・選択
→ 左メニュー「エンドポイント」
コスト確認
不要なリソースが残っていないか確認する場合は、合わせて以下も確認するとよいです。
AWSコンソール → 「Billing」→「コストエクスプローラー」
→ サービス:Database Migration Service でフィルタ
DMSの削除
削除してよいケース
完全移行(カットオーバー)が完了した場合
- ソースDBからの移行が100%完了
- アプリケーションがターゲットDBに切り替え済み
- データ整合性の検証も完了
→ DMSタスク・レプリケーションインスタンスともに削除可能
残すべきケース
継続的なレプリケーション(CDC)を続けている場合
- オンプレミスとAWSを並行稼働中
- 段階的な移行でまだ切り替えが完了していない
→ 移行完了まで残す必要あり
ロールバック手段として温存したい場合
- カットオーバー直後の一定期間、問題発生時に備えて残す
- 安定稼働を確認したら削除
基本的には移行完了・安定確認後は、タスクだけでなくレプリケーションインスタンスまで削除します。
関連の記事
