AWS Database Migration Service
ユーザーガイド (Version API Version 2016-01-01)

AWS Database Migration Service の詳細

AWS Database Migration Service (AWS DMS) は、ソースデータストアからターゲットデータストアへのデータの移行に使用できるウェブサービスです。この 2 つのデータストアはエンドポイントと呼ばれます。移行は、同じデータベースエンジンを使用するソースエンドポイントとターゲットエンドポイント (Oracle データベースと Oracle データベースなど) の間で行うことができます。移行は、異なるデータベースエンジンを使用するソースエンドポイントとターゲットエンドポイント (Oracle データベースと PostgreSQL データベースなど) の間で行うこともできます。AWS DMS を使用する唯一の要件は、エンドポイントの 1 つが AWS のサービス上にあることです。AWS DMS を使用して、オンプレミスのデータベースから別のオンプレミスのデータベースに移行することはできません。

データベース移行のコストについては、「AWS Database Migration Service の料金表ページ」を参照してください。

次のトピックを使用して AWS DMS についての理解を深めます。

AWS DMS の概要

データベース移行を実行するには、AWS DMS はソースデータストアに接続し、ソースデータを読み取り、ターゲットデータストアが使用できるようにデータをフォーマットします。次に、ターゲットデータストアにデータをロードします。この処理のほとんどはメモリ内で行われますが、大きいトランザクションではディスクへのバッファリングが必要になることがあります。キャッシュされたトランザクションとログファイルもディスクに書き込まれます。

大まかに述べると、AWS DMS を使用するときは、次の操作を行います。

  • レプリケーションサーバーを作成します。

  • データストアに関する接続情報を持つソースエンドポイントとターゲットエンドポイントを作成します。

  • ソースデータストアとターゲットデータストアの間でデータを移行するには、1 つ以上の移行タスクを作成します。

タスクは、3 つの主なフェーズで構成できます。

  • 既存のデータの全ロード

  • キャッシュされた変更の適用

  • 継続的なレプリケーション

ソースの既存のデータがターゲットに移動される全ロード移行時、AWS DMS はソースデータストア上のテーブルからターゲットデータストア上のテーブルにデータをロードします。全ロードの進行中、ロードするテーブルに加えられた変更はすべてレプリケーションサーバーにキャッシュされます。これらがキャッシュされた変更点です。AWS DMS は、特定のテーブルの全ロードが開始されるまで、そのテーブルの変更をキャプチャしない点に注意することが重要です。つまり、変更キャプチャが開始されるポイントは、個々のテーブルごとに異なります。

特定のテーブルの全ロードが完了すると、AWS DMS はすぐにそのテーブルのキャッシュされた変更を適用し始めます。すべてのテーブルがロードされると、AWS DMS は継続的なレプリケーションフェーズのトランザクションとして変更を収集し始めます。AWS DMS がキャッシュされた変更をすべて適用すると、テーブルはトランザクション面で一貫したものになります。この時点で、AWS DMS は継続的なレプリケーションフェーズに移り、変更がトランザクションとして適用されます。

継続的なレプリケーションフェーズの開始時、トランザクションのバックログにより、ソースデータベースとターゲットデータベースの間に通常いくらかの遅延が発生します。このトランザクションバックログが終わると、移行は最終的に安定した状態になります。この時点で、アプリケーションをシャットダウンして、残りのトランザクションをターゲットに適用できるようにし、ターゲットデータベースをポイントするようになったアプリケーションを起動できます。

AWS DMS は、移行の実行に必要なターゲットスキーマオブジェクトを作成します。ただし、AWS DMS は最小限のアプローチを採用するため、データの効率的な移行に必要なオブジェクトのみ作成します。つまり、AWS DMS は、テーブル、プライマリキー、場合によっては一意のインデックスを作成しますが、効率的にソースからデータを移行するために必要ではない他のオブジェクトは作成されません。たとえば、セカンダリインデックス、非プライマリキーの制約、データデフォルトは作成されません。

ほとんどの場合、移行を実行するとき、ソーススキーマの大部分またはすべても移行します。同機種間移行 (同じエンジンタイプの 2 つのデータベース間) を実行する場合、エンジンのネイティブツールを使用してスキーマ自体 (データなし) をエクスポートおよびインポートすることによりスキーマを移行します。

移行が異機種間 (異なるエンジンタイプを使用する 2 つのデータベース間) の場合、AWS Schema Conversion Tool (AWS SCT) を使用して完全なターゲットスキーマを自動的に生成できます。このツールを使用した場合、「全ロード」フェーズと「キャッシュされた変更の適用」フェーズの間は、外部キーの制約など、テーブル間の依存関係をすべて無効にする必要があります。パフォーマンスが問題になる場合は、移行プロセス中にセカンダリインデックスを削除または無効にすると役立ちます。AWS SCT の詳細については、AWS SCT ドキュメントの「AWS Schema Conversion Tool」を参照してください。

このページの内容: