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 は、テーブル、プライマリキー、場合によっては一意のインデックスを作成し、効率的にソースからデータを移行するために必要ではないその他のオブジェクトは作成しません。
または、AWS DMS 内で DMS Schema Conversion を使用して、ソースデータベーススキーマとほとんどのデータベースコードオブジェクトをターゲットデータベースと互換性のある形式に自動的に変換する方法を採用することもできます。この変換は、テーブル、ビュー、ストアドプロシージャ、関数、データ型、シノニムなどを対象としています。DMS Schema Conversion が自動的に変換できないオブジェクトには、判別しやすいマークが付けられます。移行を完了するには、このようなオブジェクトは手動で変換します。