ホーム データストレージ・データベース設計

データベース移行パターン — AWS DMSとSchema Conversion Tool

異種DB間移行時のスキーマ変換、継続的レプリケーションによるカットオーバー、CDC(変更データキャプチャ)を解説します。

最終更新: 2026-07-28 カテゴリ: データストレージ・データベース設計

新規ソリューション設計の一環として、既存データベースを新しい環境(別エンジン、AWSサービス)に 移行するケースは頻繁に発生します。本記事ではAWS DMSと**Schema Conversion Tool (SCT)**の 基本を解説します。

SAA レベル:基礎概念

AWS DMSの基本

  • ソースデータベースからターゲットデータベースへ、ほぼ無停止でデータを移行するマネージドサービス
  • 同種(Homogeneous、例: MySQL→MySQL)・異種(Heterogeneous、例: Oracle→Aurora PostgreSQL)どちらの移行にも対応

SAA 試験のポイント

DMSは基本的にデータそのものの移行を担当します。テーブル構造や、ストアドプロシージャ、トリガーといったスキーマ・コードオブジェクトの変換は別のツール(SCT)の役割である、という分担がSAAで問われます。

Schema Conversion Tool (SCT) の基本

  • 異なるデータベースエンジン間で、スキーマ定義・ストアドプロシージャ・関数などのコードオブジェクトを自動変換するツール
  • 自動変換できない複雑なロジックは、手動での対応が必要な箇所としてレポートされる

SAP レベル:高度な設計シナリオ

異種DB間移行時のスキーマ変換ワークフロー

SAP 試験のポイント

Oracle からAurora PostgreSQLのような異種移行では、まずSCTでスキーマとコードオブジェクトを変換し、変換率(自動変換できた割合)のレポートを確認します。自動変換できない複雑なストアドプロシージャ等は、手動でリファクタリングするか、Lambda等アプリケーション側のロジックに置き換える判断が必要です。スキーマ変換が完了して初めて、DMSによるデータ移行フェーズに進むという順序がSAPで問われます。

Step 1: SCTでスキーマ・コードオブジェクトを変換(手動対応箇所を洗い出し)
Step 2: 変換後のスキーマをターゲットDBに適用
Step 3: DMSで初期データロード + 継続的レプリケーション(CDC)を開始
Step 4: カットオーバー(アプリケーションの接続先切り替え)

CDC(変更データキャプチャ)による継続的レプリケーション

SAP 試験のポイント

DMSは、初期の一括データロード後、ソース側のトランザクションログ(バイナリログ等)を継続的に読み取り、変更差分のみをリアルタイムに近い形でターゲットに反映するCDCをサポートします。これにより、長時間のダウンタイムを取らずに、初期ロード完了後もソースとターゲットのデータを同期し続け、業務影響の少ないタイミングで最終カットオーバーを行う、というダウンタイム最小化の移行戦略が実現できます。

ダウンタイム最小化のためのカットオーバー手順

  1. DMSで初期データロードを実施(この間もソースDBは稼働継続)
  2. CDCでソースとターゲットの差分を継続的に同期
  3. 業務影響の少ない時間帯に、アプリケーションの接続先を新DBへ切り替え(短時間の書き込み停止のみ)
  4. 切り替え後、旧DBへのCDCを停止し、旧環境を段階的に廃止

設計上の落とし穴

「DMSを使えば完全に無停止で移行できる」という理解は誤りです。CDCによって差分同期は継続できますが、最終的なアプリケーションの接続先切り替え(カットオーバー)の瞬間には、通常ごく短時間の書き込み停止が必要になります。この「ゼロではないが最小化されたダウンタイム」という現実的な理解がSAPで問われます。

大規模データセットの移行における考慮事項

  • 初期データロードのボリュームが大きい場合、DMSのレプリケーションインスタンスのサイズ・並列タスク数を適切にチューニングする必要がある
  • ネットワーク帯域が制約になる場合は、Snowball等のオフラインデータ転送との組み合わせ(4章の移行ドメインとも関連)も検討される

まとめ

  • SAA: DMSがデータ移行、SCTがスキーマ変換という役割分担を理解する。
  • SAP: 異種DB移行のワークフロー(SCT→DMS)、CDCによる差分同期とダウンタイム最小化のカットオーバー設計ができる。

ここまでで 2-3 データストレージ・データベース設計 の全5記事が完了しました。次は 2-4 セキュアなソリューション設計 に進みます。