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

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

のコンポーネント AWS DMS

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

AWS DMS 移行は、移行するデータベースの検出、自動スキーマ変換、レプリケーションインスタンス、ソースエンドポイントとターゲットエンドポイント、レプリケーションタスクの 5 つのコンポーネントで構成されます。 AWS DMS 移行を作成するには、 で必要なレプリケーションインスタンス、エンドポイント、タスクを作成します AWS リージョン。

データベースの検出

DMS Fleet Advisor は、複数のデータベース環境からデータを収集し、データインフラストラクチャに関するインサイトを提供します。DMS Fleet Advisor は、すべてのコンピュータにエージェントをインストールする必要なく、単一または複数の中央ロケーションからオンプレミスのデータベースと分析サーバーのデータを収集します。現時点で DMS Fleet Advisor は Microsoft SQL Server、MySQL、Oracle、PostgreSQL のデータベースサーバーをサポートしています。

ネットワークで検出したデータに基づいて、DMS Fleet Advisor は、ユーザーがモニタリング対象のデータベースサーバーとオブジェクトを決定するために確認できるインベントリを構築します。これらのサーバー、データベース、およびスキーマの詳細が収集されるため、目的とするデータベース移行を実行可能かを分析できます。

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

の DMS Schema Conversion AWS DMS は、異なるタイプのデータベース間のデータベース移行をより予測しやすくします。DMS Schema Conversion を使用して、ソースデータプロバイダーの移行の複雑さの評価、データベーススキーマとコードオブジェクトの変換ができます。その後、変換したコードをターゲットデータベースに適用できます。

DMS Schema Conversion は概括すると、インスタンスプロファイル、データプロバイダー、移行プロジェクトの 3 つのコンポーネントで動作します。[インスタンスプロファイル] では、ネットワークとセキュリティの設定を指定します。[データプロバイダー] には、データベース接続の認証情報を保存します。移行プロジェクトには、データプロバイダー、インスタンスプロファイル、移行ルールが含まれています。 は、データプロバイダーとインスタンスプロファイル AWS DMS を使用して、データベーススキーマとコードオブジェクトを変換するプロセスを設計します。

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

大まかに言うと、 AWS DMS レプリケーションインスタンスは、1 つ以上のレプリケーションタスクをホストするマネージド Amazon Elastic Compute Cloud (Amazon EC2) インスタンスです。

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

の使用を開始する AWS DMS

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

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

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

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

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

レプリケーション インスタンスを作成および管理するのではなく、 AWS DMS サーバーレスを使用してレプリケーションを自動的に AWS DMS プロビジョニングできます。詳細については、「Serverless AWS DMS の使用」を参照してください。

エンドポイント

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

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

  • エンジンタイプ - Oracle、PostgreSQL などのデータベースエンジンの種類

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

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

  • 暗号化 - Secure Sockets Layer (SSL)モード(SSL を使用して接続を暗号化する場合)。

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

AWS DMS コンソールを使用してエンドポイントを作成する場合、コンソールではエンドポイント接続をテストする必要があります。 AWS 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 ドロップして再作成します。

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

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

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

    • フル LOB モード – size に関係なく、完全な LOBs を移行します。 は、最大 LOBs サイズパラメータによって制御されるチャンクで LOB を分割して AWS DMS 移行します。 このモードは制限付き LOB モードを使用するよりも低速です。

    • 制限付き LOB モード – LOB を[Max LOB Size] (最大 LOB サイズ) で指定された値まで切り詰めます。このモードは完全 LOB モードを使用するよりも高速です。

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

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

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

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

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

  • [Data validation] (データ検証)

  • Amazon CloudWatch ログ記録

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

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

の使用を開始する AWS DMS

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

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

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

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

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

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

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