DTS を使用すると、2 つの RDS インスタンス間でデータを移行できます。また、増分移行をサポートするストレージエンジンの場合、ソース RDS インスタンスのサービスを停止せずに、ターゲット RDS インスタンスにデータを移行することができます。DTS は、同じデータベースタイプ (RDS For MySQL > RDS For MySQL など) 間の移行のみをサポートし、異なるデータベースタイプ (RDS For MySQL > RDS For SQL Server など) 間の移行はサポートしません。
このセクションでは、DTS を使用して 2 つの RDS インスタンス間でデータを移行するタスクの設定方法について説明します。
権限の要件
移行タイプが異なると、ソースデータベースとターゲットデータベースの移行アカウントの権限要件が異なります。
移行タイプ | スキーマの移行 | 完全移行 | 増分移行 |
---|---|---|---|
ソース RDS インスタンス | 読み取り/書き込み権限 | 読み取り/書き込み権限 | 読み取り/書き込み権限 |
ターゲット RDS for MySQL インスタンス | 読み取り/書き込み権限 | 読み取り/書き込み権限 | 読み取り/書き込み権限 |
移行タスクの設定
DTS を使用して 2 つの RDS MySQL インスタンス間でデータを移行する方法について、以下に説明します。DTS を使用して、2 つの異なるインスタンス間または 1 つの RDS インスタンス内でデータを移行できます。
RDS インスタンスでのデータベースの作成
データ移行プロセスで、移行するデータベースがターゲット RDS インスタンスに存在しない場合、自動的に作成されます。ただし、次の 2 つのケースでは、移行タスクを設定する前にデータベースを手動で作成する必要があります。
- データベース名が RDS 定義要件を満たさない (小文字、数字、アンダースコア、ダッシュで構成されます。文字で始まり、文字または数字で終わります。最大 64 文字です)。
- 移行するデータベースの名前が、ローカルとターゲットの RDS for PostgreSQL インスタンス間で異なる。
上記の 2 つのケースでは、移行タスクを設定する前に RDS コンソールでデータベースを作成する必要があります。詳細は、「データベースの作成」をご参照ください。
移行アカウントの作成
移行アカウントに必要な権限の詳細は、前述の「権限の要件」をご参照ください。RDS データベースアカウントを作成していない場合は、「アカウントの作成」をご参照ください。
ソースとターゲットの RDS インスタンスに移行アカウントを作成し、移行するデータベースとテーブルに対する読み取り権限と書き込み権限を付与する必要があります。
移行タスクの設定
上記の要件をすべて満たした場合、移行タスクの設定を開始できます。移行タスクを設定するには、次の手順を実行します。
DTS コンソールにログインし、右上の [移行タスクの作成] をクリックします。
ソースインスタンスとターゲットインスタンスの接続情報を設定します。
移行タスク名、およびソース RDS インスタンスとターゲット RDS インスタンスの接続情報を設定する必要があります。具体的には、次のとおりです。
- タスク名
各タスクに自動的に名前が生成されます。タスク名は一意である必要はありません。必要に応じてタスク名を変更できます。タスクを簡単に識別できるように、意味のある名前をタスクに設定することを推奨します。
ソースインスタンス情報
- インスタンスタイプ:[RDS インスタンス] を選択します。
- RDS インスタンス ID:移行するソース RDS インスタンスの ID。クラシックネットワークと VPC ネットワークの RDS インスタンスがサポートされます。
- データベース名:RDS インスタンスのストレージエンジンが PostgreSQL または PPAS の場合、データベース名を設定する必要があります。データベース名は、接続するデフォルトのデータベースです。
- データベースアカウント:RDS インスタンスへのアクセスに使用されるアカウント。
- データベースのパスワード:ソース RDS インスタンスへのアクセスに使用されるアカウントのパスワード。
ターゲットインスタンス情報
- インスタンスタイプ:[RDS インスタンス] を選択します。
- RDS インスタンス ID:移行するターゲット RDS インスタンスの ID。クラシックネットワークと VPC ネットワークの RDS インスタンスがサポートされます。
- データベース名:RDS インスタンスのストレージエンジンが PostgreSQL または PPAS の場合、データベース名を設定する必要があります。データベース名は、接続するデフォルトのデータベースです。
- データベースアカウント:RDS インスタンスへのアクセスに使用されるアカウント。
- データベースのパスワード:ソース RDS インスタンスへのアクセスに使用されるアカウントのパスワード。
接続情報を設定したら、[ホワイトリストの承認] をクリックしてホワイトリストを設定します。このステップでは、移行エラーを回避するため、サーバーの IP アドレスがターゲット RDS インスタンスのホワイトリストに追加されます。
移行オブジェクトと移行タイプを選択します。
- 移行タイプ
スキーマ移行、完全移行、増分移行がサポートされます。
既存のデータのみを移行する必要がある場合、[スキーマ移行] と [完全移行] を選択します。
ダウンタイムなしでデータを移行する必要がある場合、[スキーマ移行]、[完全移行]、[増分移行] を選択します。
- 移行オブジェクト
移行するオブジェクトを選択します。移行オブジェクトには、データベース、テーブル、列を指定することができます。デフォルトでは、オブジェクトがターゲット RDS インスタンスに移行された後のオブジェクト名は、ソース RDS インスタンスでの名前と同じです。ソースインスタンスとターゲットインスタンスとでオブジェクトに異なる名前を付けるには、DTS のオブジェクト名マッピング機能を使用する必要があります。詳細は、「オブジェクト名マッピング」をご参照ください。
事前チェック
移行タスクが開始される前に、事前チェックが実行されます。事前チェックに合格した場合のみ、移行を開始できます。
事前チェックが失敗した場合、該当するチェック項目の [詳細] をクリックして詳細を表示します。その内容に応じてエラーを修正してから、事前チェックを再度実行します。
移行タスク
事前チェックに合格すると、移行タスクを開始し、タスクリストで移行の詳細なステータスと進行状況を表示できます。
増分移行を選択した場合、移行中にソースデータベースに加えられた変更はターゲット RDS インスタンスに同期され、移行タスクは自動的に終了しません。データ同期ではなくデータ移行のみを実行する場合、増分移行の遅延がなくなるまでソースデータベースへのデータの書き込みを数分間停止します。その後、移行タスクを停止し、ターゲット RDS インスタンスにサービスを切り替えます。
2 つの RDS インスタンス間のデータ移行が完了しました。