Help us improve the AWS re:Post Knowledge Center by sharing your feedback in a brief survey. Your input can influence how we create and update our content to better support your AWS journey.
AWS DMS を使用して Amazon RDS または Amazon Aurora DB インスタンスに移行する方法を教えてください。
データベースを 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 を使用してレプリケーションタスクを監視する」を参照してください。
レプリケーションインスタンスを作成する
- AWS DMS コンソールを開き、ナビゲーションペインで [レプリケーションインスタンス] を選択します。
- [レプリケーションインスタンスを作成] を選択します。
- レプリケーションインスタンス名、説明、インスタンスクラス、Amazon 仮想プライベートクラウド (Amazon VPC)、マルチ AZ 設定を入力します。
注: 移行ワークロードに十分なインスタンスクラスを選択してください。インスタンスがワークロードには十分でない場合、後でレプリケーションインスタンスを変更できます。 - [詳細] セクションで、独自の VPC セキュリティグループまたはデフォルトオプションを選択します。
- [レプリケーションインスタンスを作成] を選択します。
ターゲットとソースのエンドポイントを作成する
- AWS DMS コンソールを開き、ナビゲーションペインで [エンドポイント] を選択します。
- [エンドポイントの作成] を選択し、ソースデータベースとターゲットデータベースを作成します。
- [エンドポイントタイプ] で [ソース] を選択します。
- エンドポイントのエンジンに固有の情報を入力します。
- [テストの実行] をクリックします。
- テストの完了後、[保存] を選択します。
- 手順 3 ~ 6 を繰り返します。ただし、[エンドポイントタイプ] では [ターゲット] を選択します。
注: ターゲットとソースの両方でこのステップを実行します。
ソースエンドポイントスキーマを更新する<b></b>
- AWS DMS コンソールを開き、ナビゲーションペインで [エンドポイント] を選択します。
- ソースエンドポイントを選択し、[スキーマの更新] を選択します。
- [スキーマを更新] を選択します。
注: AWS DMS タスクの作成時には、ソーススキーマをテーブルマッピングに表示するために、ソースを更新する必要があります。
移行タスクを作成する
- AWS DMS コンソールを開き、ナビゲーションペインで [データベース移行タスク] を選択します。
- [タスクの作成] を選択します。
- タスク識別子、レプリケーションインスタンス、ソースデータベースエンドポイント、ターゲットデータベースエンドポイント、移行タイプを指定します。次の移行タイプのいずれかを選択します。
既存のデータのみ移行: この移行タイプは、1 回限りの移行に使用します。
既存のデータを移行し、進行中の変更をレプリケートする: この移行タイプを使用すると、ダウンタイムを最小限に抑え、大規模なデータベースを AWS クラウドに移行できます。
進行中のレプリケーション変更を移行: この移行タイプは、既存のデータを移行済みであり、ソースデータベースを AWS クラウドでホストされているターゲット MySQL データベースと同期する場合に使用します。 - 必要に応じて、[タスク設定] セクションでタスクを変更します。
- [テーブルマッピング] セクションで、[ガイド付き UI] を選択します。
- [新しい選択ルールを追加] を選択し、[スキーマ] と [テーブル名] を指定します。
注: 選択したオブジェクトの一部またはすべてのソーススキーマ、テーブル、列名を変更したり変換したりすることができます。その操作を行うには、[変換ルール] セクションを展開します。[新しい変換ルールを追加] を選択します。次に、[ターゲット]、[スキーマ名]、[アクション] を選択します。 - [タスクの作成] を選択します。
注: ラージオブジェクト (LOB) 列がある場合は、制限付き LOB モードを使用してください。詳細については、「AWS DMS タスクでソースデータベース用 LOB サポートを設定する」を参照してください。
移行タスクを監視する
- [タスク監視] ビューを使用すると、移行タスクを監視できます。正常に移行が完了したテーブルや、移行中のテーブルを確認できます。次のメッセージタイプに注意してください。
I - 情報メッセージを示します
W - 警告を示します
E - データベースの移行時に発生したエラーを示します - ターミナルでソースインスタンスとターゲットインスタンスに接続することで、データベースの移行が正常に完了したことを確認します。
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 での移行タスクのトラブルシューティング」を参照してください。
関連情報
- 言語
- 日本語

関連するコンテンツ
- 質問済み 7ヶ月前
