AWS DMS のコンポーネント - AWS Database Migration Service

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

AWS DMS のコンポーネント

このセクションでは、AWS DMS の内部コンポーネントと、データ移行におけるそのコンポーネントの動作について説明します。AWS DMS の基礎となるコンポーネントを理解することで、効率的にデータを移行し、問題のトラブルシューティング時および調査時に優れた洞察を得ることができます。

AWS DMS の移行は、レプリケーションインスタンス、ソースエンドポイントとターゲットエンドポイント、およびレプリケーションタスクの 3 つのコンポーネントで構成されます。作成するとAWS DMS移行移行必要なレプリケーションインスタンス、エンドポイント、タスクをAWSリージョン。

レプリケーションインスタンス

高いレベルで、AWS DMSレプリケーションインスタンスは、1 つ以上のレプリケーションタスクをホストするマネージド Amazon Elastic Compute Cloud (Amazon EC2) インスタンスです。

関連付けられたいくつかのレプリケーションタスクを実行するレプリケーションインスタンスの例を以下の図に示します。


                            AWS DMS の開始方法

移行の特性とレプリケーションサーバーの容量に応じて、1 つのレプリケーションインスタンスを使用して、1 つ以上のレプリケーションタスクをホストできます。AWS DMS では、ユースケースに最適な設定を選択できるように、さまざまなレプリケーションインスタンスが用意されています。レプリケーションインスタンスのさまざまなクラスの詳細については、「適切な選択AWS移行用の DMS レプリケーションインスタンス」を参照してください。

AWS DMSは、Amazon EC2 インスタンスにレプリケーションインスタンスが作成されます。サービスのテストや小規模な移行の場合、いくつかの小さいインスタンスクラスで十分です。移行に多数のテーブルが関与する場合や、複数の同時レプリケーションタスクを実行する予定の場合、大きいインスタンスを 1 つ使用することを検討してください。AWS DMS はかなりのメモリと CPU を消費する可能性があるため、このアプローチが推奨されます。

選択した Amazon EC2 インスタンスクラスに応じて、レプリケーションインスタンスには 50 GB または 100 GB のデータストレージが付属しています。ほとんどのお客様にとって、通常このストレージ容量は十分な量です。ただし、移行で大規模なトランザクションや大量のデータ変更が発生する場合は、基本ストレージの割り当てを増やすことを検討します。変更データキャプチャ (CDC) によって、データがディスクに書き込まれる可能性があります。これは、ターゲットから変更が書き込まれる速度によって異なります。

AWS DMS は、マルチ AZ 配置を使用して高可用性およびフェイルオーバーサポートを提供します。AWS DMS のマルチ AZ 配置では、異なるアベイラビリティーゾーンにレプリケーションインスタンスのスタンバイレプリカが自動的にプロビジョニングされ、維持されます。プライマリレプリケーションインスタンスは、同期的にスタンバイレプリカにレプリケートされます。プライマリレプリケーションインスタンスに障害が発生するか、応答しない場合、スタンバイ状態で中断時間をできる限り抑えて、実行中のタスクを再開します。プライマリはその状態を常にスタンバイにレプリケーションしているため、マルチ AZ 配置ではパフォーマンス上のオーバーヘッドが発生します。

AWS DMS レプリケーションインスタンスの詳細については、「AWS DMS レプリケーションインスタンスを使用する」を参照してください。

Amazon EC2 でのマイクロソフトソフトウェアのライセンスオプション

Amazon EC2 では、関連するライセンス料をコストに含めるインスタンス(「ライセンス込み」)を実行するか、Microsoft から既に購入したライセンスを利用するかを選択できます。Microsoft ソフトウェアの場合、EC2 では Windows Server および SQL Server ライセンスを含むインスタンスの料金を支払うことができます。その他のマイクロソフトソフトウェアについては、マイクロソフトの条項に従って、お客様は独自のライセンス (BYOL) を持参することができます。BYOL の詳細については、「」を参照してください。Amazon Web Services マイクロソフト、よくある質問

エンドポイント

AWS DMS は、エンドポイントを使用してソースまたはターゲットのデータストアにアクセスします。具体的な接続情報はデータストアによって異なりますが、一般的にエンドポイントを作成するときは次の情報を指定します。

  • エンドポイントタイプ — ソースまたはターゲット。

  • エンジンタイプ — データベースエンジンのタイプ(Oracle、PostgreSQL など)。

  • サーバー名 — サーバー名または IP アドレスAWS DMS到達できる。

  • ポート — データベースサーバー接続に使用されるポート番号。

  • 暗号化 — セキュアソケットレイヤー (SSL) モード(SSL を使用して接続を暗号化する場合)。

  • 認証情報 — 必要なアクセス権を持つアカウントのユーザー名とパスワード。

AWS DMS コンソールを使用してエンドポイントを作成する場合は、コンソールでエンドポイント接続をテストする必要があります。DMS タスクでエンドポイントを使用する前に、テストが成功している必要があります。接続情報と同様に、特定のテスト基準はエンジンの種類によって異なります。一般的に、AWS DMS では、指定されたサーバー名とポートにデータベースが存在することと、提供された認証情報を使用して、移行を実行するために必要なアクセス許可を持つデータベースに接続できることを検証します。接続テストが成功すると、AWS DMS は、スキーマ情報をダウンロードして格納します。この情報は、後でタスク設定時に使用できます。スキーマ情報には、テーブル定義、プライマリキー定義、一意キー定義などがあります。

複数のレプリケーションタスクで 1 つのエンドポイントを使用することもできます。たとえば、2 つの論理的に異なるアプリケーションがあり、これらが同じソースデータベースにホストされていて、これらを別々に移行するとします。この場合は、アプリケーションテーブルのセットごとに 1 つずつ、2 つのレプリケーションタスクを作成します。両方のタスクで、同じ AWS DMS エンドポイントを使用できます。

エンドポイントの動作をカスタマイズするには、追加の接続属性を使用します。追加の接続属性は、ログの詳細、ファイルサイズ、その他のパラメータなど、さまざまな動作を制御できます。データストアのエンジンタイプにはそれぞれ、使用可能な追加接続属性があります。データストアごとの追加接続属性は、データストアのソースセクションまたはターゲットセクションにあります。サポートされているソースとターゲットデータストアのリストについては、「AWS DMS のソース」と「AWS DMS のターゲット」を参照してください。

AWS DMS エンドポイントの詳細な情報については、「AWS DMS エンドポイントの使用」を参照してください。

レプリケーションタスク

一連のデータをソースエンドポイントからターゲットエンドポイントに移動するには、AWS DMS レプリケーションタスクを使用します。レプリケーションタスクの作成は、移行を開始する前に最後に実行する必要があります。

レプリケーションタスクの作成時に以下のタスク設定を指定します。

  • レプリケーションインスタンス — タスクをホストして実行するインスタンス

  • ソースエンドポイント

  • ターゲットエンドポイント

  • 移行タイプオプションは次にリストされるとおりです。移行タイプのオプションの詳細な説明については、「[Creating a task] (タスクの作成)」を参照してください。

    • 全ロード (既存データの移行) — 既存のデータをコピーできる長さの停止が許容される場合は、このオプションが適しています。このオプションでは、ソースデータベースからターゲットデータベースにデータがそのまま移行され、必要に応じてテーブルが作成されます。

    • 全ロード + CDC (既存のデータを移行して、継続的な変更をレプリケート) — このオプションでは、ソースで変更をキャプチャしながら、全データロードが実行されます。フルロードが完了すると、キャプチャされた変更がターゲットに適用されます。最終的に、変更の適用は安定した状態に到達します。この時点で、アプリケーションをシャットダウンし、残りの変更がターゲットに移動するようにした後、ターゲットをポイントするアプリケーションを再起動できます。

    • CDC のみ (データ変更のみレプリケート) — 状況によっては、以外の方法を使用して既存のデータをコピーした方が効率的なことがあります。AWS DMS。たとえば、同機種間移行では、一括データのロードにネイティブのエクスポート/インポートツールを使用する方が効率的になる可能性があります。その場合は、AWS DMS を使用し、一括ロードを開始したときから変更をレプリケートして、ソースデータベースとターゲットデータベースの同期を保つことができます。

  • ターゲットテーブル準備モードオプションは以下にリストされるとおりです。ターゲットテーブルモードの詳細な説明については、「[Creating a task] (タスクの作成)」を参照してください。

    • 何もしない —AWS DMSでは、ターゲットテーブルがターゲットで事前に作成されていることを前提とします。

    • ターゲット上のテーブルを削除 —AWS DMSは、ターゲットテーブルを削除して再作成します。

    • 切り捨て—ターゲットでテーブルを作成済みである場合、AWSDMS は、移行の開始前にそれらを切り捨てます。テーブルが存在しない場合、このオプションを選択すると、AWS DMS は不足しているテーブルを作成します。

  • LOB モードオプションは以下にリストされるとおりです。LOB モードの詳細な説明については、「AWS DMS タスクのソースデータベースの LOB サポートの設定」を参照してください。

    • LOB 列を含めない — LOB 列は移行対象から除外されます。

    • 完全 LOB モード — サイズに関係なく LOB 全体を移行します。AWS DMSで制御されるチャンクの単位で LOB を移行します。最大 LOB サイズパラメータ。このモードは制限付き LOB モードを使用するよりも低速です。

    • 制限付き LOB モード — LOB をで指定された値まで切り詰めます。最大 LOB サイズパラメータ。このモードは完全 LOB モードを使用するよりも高速です。

  • テーブルマッピング — 移行するテーブルと移行方法を示します。詳細については、「テーブルマッピングを使用して、タスクの設定を指定する」を参照してください。

  • データ変換は以下にリストされるとおりです。データ変換の詳細については、「 JSON を使用するテーブル選択および変換を指定する」を参照してください。

    • スキーマ、テーブル、および列の名前を変更します。

    • テーブルスペース名の変更 (Oracle ターゲットエンドポイント用)。

    • ターゲットのプライマリキーと一意のインデックスを定義します。

  • データ検証

  • アマゾンCloudWatchログに記録します

タスクを使用してソースエンドポイントからターゲットエンドポイントにデータを移行します。タスク処理はレプリケーションインスタンスで実行されます。ログ記録要件、制御テーブルデータ、エラー処理など、移行するテーブルとスキーマ、および特別な処理を指定します。

概念的には、AWS DMSレプリケーションタスクは、次の図に示すように 2 つの異なる機能を実行します。


                            AWS DMS の開始方法

全ロードプロセスは、簡単に理解できます。データは、ソースから一括抽出で抽出され、ターゲットに直接ロードされます。AWS DMS コンソールの [詳細設定] で、抽出して並列にロードするテーブルの数を指定できます。

AWS DMS タスクの詳細については、「AWS DMS タスクの使用」を参照してください。

継続的なレプリケーションまたは変更データキャプチャ (CDC)

AWS DMS タスクを使用して、ターゲットへのデータの移行中にソースデータストアへの継続的な変更をキャプチャすることもできます。ソースエンドポイントから継続的な変更をレプリケートするときに AWS DMS が使用する変更キャプチャプロセスは、データベースエンジンのネイティブ API を使用することでデータベースログへの変更を収集します。

CDC プロセスで、レプリケーションタスクは、メモリ内のバッファを使用して転送中のデータを保持することによって、ソースからターゲットへの変更をストリーミングするように設計されています。何らかの理由でメモリ内バッファが枯渇すると、レプリケーションタスクによって、ディスク上のキャッシュの変更は保留中に変更されます。この状況は、たとえば、AWS DMS がソースからの変更をターゲットに適用できるよりも速く取得している場合に発生します。この場合、タスクのターゲットレイテンシーが、タスクのソースレイテンシーを超えていることがわかります。

これを確認するには、AWS DMS コンソールでタスクに移動し、[タスクのモニタリング] タブを開きます。CDCLatencyTargetCDCLatencySourceグラフは、ページの下部に表示されます。ターゲットのレイテンシーを示すタスクがある場合は、アプリケーションの速度を上げるために必要なターゲットエンドポイントのチューニングがある可能性があります。

上記で説明したように、レプリケーションタスクでは、タスクログ用のストレージも使用されます。通常、レプリケーションインスタンスで事前設定されているディスク容量では、十分に変更をログ記録および反映することができます。追加のディスク容量が必要な場合 (例: 詳細なデバッグを使用して移行の問題を調査する場合)、レプリケーションインスタンスを変更してより多くの容量を割り当てることができます。

スキーマおよびコード移行

AWS DMS は、スキーマまたはコード変換を実行しません。ソースとターゲットが同じデータベースエンジンの場合、Oracle SQL Developer、MySQL Workbench、pgAdmin III などのツールを使用して、スキーマを起動できます。異なるデータベースエンジンに既存のスキーマを変換する場合、AWS SCT を使用できます。このツールは、ターゲットスキーマを作成でき、スキーマ全体 (テーブル、インデックス、ビューなどを含む) を生成および作成することもできます。AWS SCT を使用して PL/SQL または TSQL を PgSQL や他の形式に変換することもできます。AWS SCTの詳細については、「AWS Schema Conversion Tool」を参照してください。

可能な限り、AWS DMS はターゲットスキーマの自動作成を試みます。時々,AWS DMSスキーマを作成できません。たとえば、AWS DMSでは、セキュリティ上の理由から、ターゲット Oracle スキーマを作成しません。MySQL データベースターゲットの場合は、追加の接続属性を使用することにより、DMS ですべてのオブジェクトを指定のデータベースおよびスキーマに移行できます。または、これらの属性により、ソース上でスキーマを検出したときに DMS で各データベースおよびスキーマを自動的に作成することもできます。