AWS Database Migration Service を使用した、EC2 データベースの Amazon RDS への自動移行 - Amazon Relational Database Service

AWS Database Migration Service を使用した、EC2 データベースの Amazon RDS への自動移行

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 未満のデータベース