RDS コンソールを使用して、EC2 データベースを RDS に移行できます。RDS では AWS Database Migration Service (AWS DMS) を使用してソース EC2 データベースを移行します。AWS DMS によって、リレーショナルデータベースの AWS クラウドへの移行が可能になります。AWS Database Migration Service の詳細については、AWS Database Migration Service ユーザーガイド の AWS Database Migration Service とは を参照してください。
移行を開始するには、データの移行先となる同等の RDS DB インスタンスを作成する必要があります。ターゲットデータベースを作成したら、そのデータベースに EC2 データベースをインポートできます。ソースデータベースが 1TiB 未満の場合、この移行アクションにより、データを RDS に移行するために必要となる時間とリソースが節約されます。
概要
RDS コンソールで、EC2 データベースを同等の RDS データベースに移行できます。コンソールからの移行を有効にするには、RDS データベースを作成する必要があります。
次のデータベースエンジンの EC2 データベースを移行できます。
-
MySQL
-
MariaDB
-
PostgreSQL
この移行プロセスには、以下のステップが含まれます。
-
RDS で同等のデータベースを作成します。データベースを同等にするには、同じデータベースエンジンおよび互換性のあるエンジンバージョンが必要です。また、データベースは同じ VPC 内にある必要があります。データベースを作成する手順については、「Amazon RDS DB インスタンスの作成」を参照してください。
-
データベースのレプリケーションのタイプを選択します。
-
フルロード移行 – RDS は、ソースデータベース全体をターゲットデータベースにコピーし、必要に応じてターゲットに新しいテーブルを作成します。
注記
このオプションを選択すると、対象の RDS データベースが停止します。
-
フルロードと変更データキャプチャ (CDC) 移行 – フルロード移行と同様に、このオプションでは、RDS はソースデータベース全体をターゲットデータベースにコピーします。ただし、フルロード移行の後は、RDS はソースでキャプチャされた変更をターゲットデータベースに適用します。変更データキャプチャでは、データベースエンジンのネイティブ API を使用してデータベースログへの変更を収集します。
注記
このオプションを選択すると、対象の RDS データベースが停止します。
-
変更データキャプチャ (CDC) — このオプションを使用すると、移行中もターゲットデータベースを使用できます。RDS は、ソースデータベースの進行中の変更をターゲットデータベースに移行します。
-
-
RDS は、移行を容易にするために必要なネットワークリソースを作成します。RDS が必要なリソースを作成すると、作成されたリソースについて通知が行われ、データ転送を開始できます。
移行の完了に必要な時間は、レプリケーションのタイプとソースデータベースのサイズによって異なります。
前提条件
MySQL と MariaDB
MySQL または MariaDBデータベースをソースデータベースとして使用し始める前に、次の前提条件を満たしていることを確認してください。これらの前提条件は、AWS が管理するソースに適用されます。
レプリケーション管理者ロールを持つ AWS DMS のアカウントを保有している必要があります。ロールには、次の権限が必要です。
-
[REPLICATION CLIENT] (レプリケーション クライアント) – この権限は、CDC タスクにのみ必要です。つまり、フルロードのみのタスクにはこの権限は必要ありません。
-
[REPLICATION SLAVE] (レプリケーション スレーブ) – この権限は、CDC タスクにのみ必要です。つまり、フルロードのみのタスクにはこの権限は必要ありません。
AWS DMS ユーザーには、レプリケーション対象に指定されたソーステーブルに対する SELECT 権限も必要です。
MySQL 固有の移行前評価を使用する場合、次の権限を付与します。
grant select on mysql.user to <dms_user>;
grant select on mysql.db to <dms_user>;
grant select on mysql.tables_priv to <dms_user>;
grant select on mysql.role_edges to <dms_user> #only for MySQL version 8.0.11 and higher
PostgreSQL
AWS が管理する PostgreSQL ソースデータベースからデータを移行する前に、以下を実行します:
-
AWS DMS の PostgreSQL ソースエンドポイントのユーザーアカウントとして、PostgreSQL DB インスタンスに必要な最小限のアクセス許可を持つ AWS ユーザーアカウントを使用することをお勧めします。管理アカウントの使用はお勧めしません。このアカウントには
rds_superuser
ロールとrds_replication
ロールが必要です。rds_replication
ロールは、論理スロットを管理し、論理スロットを使用してデータをストリーミングするアクセス権許可付与します。
注記
一部の AWS DMS トランザクションでは、DMS エンジンで再度そのパラメータが使用されるまでの間、しばらくアイドル状態になります。PostgreSQL バージョン 9.6 以降で idle_in_transaction_session_timeout
パラメータを使用すると、アイドル状態のトランザクションでタイムアウトやエラーが生じる場合があります。
制限
自動移行プロセスには、次の制限が適用されます。
-
ソースデータベースの移行を開始するには、ターゲットデータベースのステータスが[使用可能] である必要があります。
-
MySQL ソースデータベースから移行する場合、 RDS アカウントにレプリケーション管理者ロールが必要です。また、そのロールに適切な権限を適用する必要があります。
-
EC2 インスタンスとターゲットデータベースは同じ VPC 内にある必要があります。
[EC2 データベースからデータを移行] アクションを使用する場合、EC2 データベースを次のターゲットデータベースに移行することはできません。
-
クラスターのメンバーであるデータベース
-
Oracle、SQL Server、Db2 データベース
-
MySQL バージョン 5.7 未満のデータベース
-
PostgreSQL バージョン 10.4 未満のデータベース
-
MariaDB バージョン 10.2 未満のデータベース
-