スキップしてコンテンツを表示

AWS DMS を使用して Amazon RDS または Amazon Aurora DB インスタンスに移行する方法を教えてください。

所要時間2分
0

データベースを Amazon Relational Database Service (Amazon RDS) または Amazon Aurora に移行したいです。ダウンタイムを最小限に抑え、移行を行う方法を教えてください。

簡単な説明

注: 同種移行を実行する場合は、可能な場合はお使いのエンジンのネイティブツール (MySQL ダンプや MySQL レプリケーションなど) を使用してください。

AWS DMS を使用して Amazon RDS DB インスタンスに移行する場合:

  • レプリケーションインスタンスを作成する
  • ターゲットとソースのエンドポイントを作成する
  • ソースエンドポイントスキーマを更新する
  • 移行タスクを作成する
  • 移行タスクを監視する

これらの手順は、Amazon RDS for Oracle や Amazon Aurora for MySQL DB インスタンスを含む、すべての Amazon RDS および Amazon Aurora エンジンタイプで使用できます。

解決策

注: 必要な場合にのみ、AWS DMS は、テーブルデータを移行する前に、プライマリキーを含むテーブルをターゲットに作成します。完全なターゲットスキーマを生成するには、AWS Schema Conversion Tool (AWS SCT) を使用します。詳細については、「スキーマの変換」を参照してください。

(オプション) Amazon CloudWatch でログ記録を有効にする

Amazon CloudWatch ログを使用すると、移行時の潜在的な問題に関するアラートを受信できます。詳細については、「Amazon CloudWatch を使用してレプリケーションタスクを監視する」を参照してください。

レプリケーションインスタンスを作成する

  1. AWS DMS コンソールを開き、ナビゲーションペインで [レプリケーションインスタンス] を選択します。
  2. [レプリケーションインスタンスを作成] を選択します。
  3. レプリケーションインスタンス名、説明、インスタンスクラス、Amazon 仮想プライベートクラウド (Amazon VPC)、マルチ AZ 設定を入力します。
    注: 移行ワークロードに十分なインスタンスクラスを選択してください。インスタンスがワークロードには十分でない場合、後でレプリケーションインスタンスを変更できます。
  4. [詳細] セクションで、独自の VPC セキュリティグループまたはデフォルトオプションを選択します。
  5. [レプリケーションインスタンスを作成] を選択します。

ターゲットとソースのエンドポイントを作成する

  1. AWS DMS コンソールを開き、ナビゲーションペインで [エンドポイント] を選択します。
  2. [エンドポイントの作成] を選択し、ソースデータベースとターゲットデータベースを作成します。
  3. [エンドポイントタイプ][ソース] を選択します。
  4. エンドポイントのエンジンに固有の情報を入力します。
  5. [テストの実行] をクリックします。
  6. テストの完了後、[保存] を選択します。
  7. 手順 3 ~ 6 を繰り返します。ただし、[エンドポイントタイプ] では [ターゲット] を選択します。
    : ターゲットソースの両方でこのステップを実行します。

ソースエンドポイントスキーマを更新する<b></b>

  1. AWS DMS コンソールを開き、ナビゲーションペインで [エンドポイント] を選択します。
  2. ソースエンドポイントを選択し、[スキーマの更新] を選択します。
  3. [スキーマを更新] を選択します。
    注: AWS DMS タスクの作成時には、ソーススキーマをテーブルマッピングに表示するために、ソースを更新する必要があります。

移行タスクを作成する

  1. AWS DMS コンソールを開き、ナビゲーションペインで [データベース移行タスク] を選択します。
  2. [タスクの作成] を選択します。
  3. タスク識別子レプリケーションインスタンスソースデータベースエンドポイントターゲットデータベースエンドポイント移行タイプを指定します。次の移行タイプのいずれかを選択します。
    既存のデータのみ移行: この移行タイプは、1 回限りの移行に使用します。
    既存のデータを移行し、進行中の変更をレプリケートする: この移行タイプを使用すると、ダウンタイムを最小限に抑え、大規模なデータベースを AWS クラウドに移行できます。
    進行中のレプリケーション変更を移行: この移行タイプは、既存のデータを移行済みであり、ソースデータベースを AWS クラウドでホストされているターゲット MySQL データベースと同期する場合に使用します。
  4. 必要に応じて、[タスク設定] セクションでタスクを変更します。
  5. [テーブルマッピング] セクションで、[ガイド付き UI] を選択します。
  6. [新しい選択ルールを追加] を選択し、[スキーマ][テーブル名] を指定します。
    注: 選択したオブジェクトの一部またはすべてのソーススキーマ、テーブル、列名を変更したり変換したりすることができます。その操作を行うには、[変換ルール] セクションを展開します。[新しい変換ルールを追加] を選択します。次に、[ターゲット][スキーマ名][アクション] を選択します。
  7. [タスクの作成] を選択します。

注: ラージオブジェクト (LOB) 列がある場合は、制限付き LOB モードを使用してください。詳細については、「AWS DMS タスクでソースデータベース用 LOB サポートを設定する」を参照してください。

移行タスクを監視する

  1. [タスク監視] ビューを使用すると、移行タスクを監視できます。正常に移行が完了したテーブルや、移行中のテーブルを確認できます。次のメッセージタイプに注意してください。
    I - 情報メッセージを示します
    W - 警告を示します
    E - データベースの移行時に発生したエラーを示します
  2. ターミナルでソースインスタンスとターゲットインスタンスに接続することで、データベースの移行が正常に完了したことを確認します。

Oracle の移行

ソースデータベースに Oracle を使用する場合は、AWS DMS はテーブルを指定されたターゲットエンドポイントユーザーに移行します。変換ルールを使用することで、Oracle ターゲットのスキーマを変更できます。詳細については、「Oracle ターゲットのユーザーとスキーマを変更する」を参照してください。

MySQL/PostgreSQL/SQL Server への移行

移行中、スキーマとテーブルはターゲット上で同じ名前に移行されます。テーブルをターゲットの別のスキーマ/テーブルに移行する場合は、マッピングルールを作成し、ターゲットデータベース上の新しいスキーマ/テーブルを指定します。

{
  "rules": [{
      "rule-type": "selection",
      "rule-id": "1",
      "rule-name": "1",
      "object-locator": {
        "schema-name": "test",
        "table-name": "%"
      },
      "rule-action": "include"
    }, {
      "rule-type": "transformation",
      "rule-id": "2",
      "rule-name": "2",
      "rule-action": "rename",
      "rule-target": "schema",
      "object-locator": {
        "schema-name": "test"
      },
      "value": "newtest"
    }
  ]
}

ログを参照し、エラーがないことを確認します。

新しいターゲットデータベースに切り替える前に、遅延を監視し、ソースデータベースとターゲットデータベースのデータ数を比較します。詳細については、「AWS Database Migration Service での移行タスクのトラブルシューティング」を参照してください。


関連情報

AWS Database Migration Service のしくみ

データベース移行のステップバイステップ手順

データ移行のソース

データ移行のターゲット

コメントはありません