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

所要時間3分
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 Logs を使用すると、移行中に問題が発生する可能性がある場合に警告を出すことができます。詳細については、「Amazon CloudWatch を使用したレプリケーションタスクのモニタリング」をご参照ください。

レプリケーションインスタンスの作成

  1. AWS DMS コンソールを開き、ナビゲーションペインから [Replication Instances] (レプリケーションインスタンス) を選択します。
  2. [レプリケーションインスタンスを作成] を選択します。
  3. レプリケーションインスタンス名、説明、インスタンスクラス、Amazon Virtual Private Cloud (Amazon VPC)、およびマルチ Multi-AZ 優先設定を入力します。
    注意: 移行ワークロードに対して十分なインスタンスクラスを選択してください。インスタンスがワークロードに対して十分でない場合は、後でレプリケーションインスタンスを変更できます 。
  4. [Advanced] (詳細) セクションで、VPC セキュリティグループを選択するか、デフォルトのオプションを選択します。
  5. [Create replication instance] (レプリケーションインスタンスの作成) を選択します。

ターゲットおよびソースエンドポイントを作成する

  1. AWS DMS コンソールを開き、ナビゲーションペインから [Endpoints] (エンドポイント) を選択します。
  2. [エンドポイントを作成] を選択して、ソースデータベースとターゲットデータベースを作成します。
  3. エンドポイントタイプでは、[ソース] を選択します。
  4. エンドポイントのエンジン固有の情報を入力します。
  5. [Run Test] (テストを実行) を選択します。
  6. テストが完了後は、[Save (保存)] を選択します。
  7. ステップ 3 ~ 6 を繰り返します。ただし [Endpoint type] (エンドポイントタイプ) で [Target] (ターゲット) を選択します。
    注意: ターゲットソースの両方でこのステップを完了してください。

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

  1. AWS DMS コンソールを開き、ナビゲーションペインから [Endpoints] (エンドポイント) を選択します。
  2. ソースエンドポイントを選択し、[スキーマを更新] を選択します。
  3. [スキーマを更新] を選択します。
    注意: AWS DMS タスクを作成するときにソーススキーマがテーブルマッピングに表示されるように、ソースを更新する必要があります。

移行タスクを作成する

  1. AWS DMS コンソールを開き、ナビゲーションペインから [Database migration tasks] (データベース移行タスク) を選択します。
  2. [Create task] (タスクの作成) を選択します。
  3. [Task identifier] (タスク識別子)、[Replication instance] (レプリケーションインスタンス)、[Source database endpoint] (ソースデータベースエンドポイント)、[Target database endpoint] (ターゲットデータベースエンドポイント)、および [Migration type] (移行タイプ) を指定します。以下のいずれかの移行タイプを選択します。
    Migrate existing data only (既存のデータのみを移行)—1 回限りの移行には、この移行タイプを使用します。
    [既存のデータを移行し継続的な変更をレプリケーションする] - この移行タイプを使用すると、ダウンタイムを最小限に抑えながら、大規模なデータベースを AWS クラウドに移行できます。
    Migrate ongoing replication changes (継続的な変更レプリケーションの移行)—既存のデータをすでに移行していて、ソースデータベースを AWS クラウドでホストされているターゲット MySQL データベースと同期させる場合は、この移行タイプを使用します。
  4. [Task Settings] (タスク設定) セクションで、必要に応じてタスクを変更します。
  5. [Table mappings] (テーブルマッピング) セクションで、 [Guided UI] (ガイド付き UI) を選択します。
  6. [Add new selection rule] (新しい選択ルールを追加) を選択し、[Schema] (スキーマ) と [Table name] (テーブル名) を指定します。
    **注意:**選択したオブジェクトの一部またはすべてのソーススキーマ、テーブル、または列の名前を変更または変換できます。これを行うには、[Transformation rules] (変換ルール) セクションを展開します。[Add new transformation rule] (新しい変換ルールを追加) を選択します。次に、[ターゲット]、[スキーマ名]、および [アクション] を選択します。
  7. [Create task] (タスクの作成) を選択します。

注意: 大きなオブジェクト (LOB) 列がある場合は、[Limited LOB Mode] (制限付き LOB モード) をお勧めします。詳細については、「AWS DMS タスクのソースデータベースの LOB サポートの設定」を参照してください。

移行タスクをモニタリングする

  1. [Task Monitoring] (タスクモニタリング) ビューを使用して、移行タスクをモニタリングします。どのテーブルが正常に移行されたか、どのテーブルが移行中かを確認できます。次のメッセージタイプに注意してください:
    I - 情報メッセージを示す
    W - 警告を示す
    E - データベースの移行時に発生したエラーを示します
  2. ターミナルを使用してソースインスタンスとターゲットインスタンスに接続し、データベースが正常に移行されたことを検証します。

Oracle の移行

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

MySQL/PostgreSQL/SQL サーバーへの移行

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

{
  "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"
    }
  ]
}

ログを調べて、エラーがないことを確認します。

レイテンシーをモニタリングし、ソースとターゲットのデータベースでデータ数を比較してから、新しいターゲットデータベースに切り替えます。詳細については、Troubleshooting migration tasks in AWS Database Migration Service (AWS Database Migration Service での移行タスクのトラブルシューティング) を参照してください。


関連情報

AWS Database Migration Service の仕組み

Database migration step-by-step walkthroughs (データベース移行のステップバイステップチュートリアル)

Sources for data migration (データ移行のソース)

Targets for data migration (データ移行のターゲット)

AWS公式
AWS公式更新しました 2年前
コメントはありません

関連するコンテンツ