AWS Database Migration Service
ユーザーガイド (Version API Version 2016-01-01)

AWS DMS レプリケーションインスタンスを使用する

AWS DMS レプリケーションインスタンスを作成すると、AWS DMS では Amazon Virtual Private Cloud (Amazon VPC) サービスに基づいて、VPC の Amazon Elastic Compute Cloud (Amazon EC2) インスタンスにレプリケーションインスタンスが作成されます。このレプリケーションインスタンスを使用して、データベース移行を実行します。[Multi-AZ] オプションを選択した場合、レプリケーションインスタンスはマルチ AZ 配置を使用して高可用性およびフェイルオーバーサポートを提供します。

マルチ AZ 配置では、AWS DMS によって異なるアベイラビリティーゾーンにレプリケーションインスタンスの同期スタンバイレプリカが自動的にプロビジョニングされて維持されます。プライマリレプリケーションインスタンスは、同期的にアベイラビリティーゾーン間でスタンバイレプリカにレプリケートされます。このアプローチでは、データの冗長性が確保されて I/O のフリーズは排除されるため、レイテンシーのスパイクは最小限に抑えられます。


             AWS Database Migration Service レプリケーションインスタンス

AWS DMS はレプリケーションインスタンスを使用してソースデータストアに接続し、ソースデータを読み取り、ターゲットデータストアが使用できるようにデータをフォーマットします。レプリケーションインスタンスもターゲットデータストアにデータをロードします。この処理のほとんどはメモリ内で行われます。ただし、大きいトランザクションではディスクでのバッファリングが必要になることがあります。キャッシュされたトランザクションとログファイルもディスクに書き込まれます。

AWS DMS レプリケーションインスタンスは、次の AWS リージョンで作成できます。

サービス対象 名前
アジアパシフィック (東京) リージョン ap-northeast-1
アジアパシフィック (ソウル) リージョン ap-northeast-2
アジアパシフィック (ムンバイ) リージョン ap-south-1
アジアパシフィック (シンガポール) リージョン ap-southeast-1
アジアパシフィック (シドニー) リージョン ap-southeast-2
カナダ (中部) リージョン ca-central-1
欧州 (フランクフルト) リージョン eu-central-1
欧州 (アイルランド) リージョン eu-west-1
欧州 (ロンドン) リージョン eu-west-2
南米 (サンパウロ) リージョン sa-east-1
米国東部 (バージニア北部) リージョン us-east-1
米国東部 (オハイオ) リージョン us-east-2
米国西部 (北カリフォルニア) リージョン us-west-1
米国西部 (オレゴン) リージョン us-west-2

AWS DMS では、AWS GovCloud (米国) という特殊な AWS リージョンがサポートされています。このリージョンは、米国政府機関および関係者のために、より機密性の高いワークロードをクラウドに移行することを目的に設けられています。AWS GovCloud (米国) は、米国政府の特定の規制とコンプライアンスの要件に対応しています。AWS GovCloud (米国) の詳細については、「AWS GovCloud (米国) とは」を参照してください。

以下で、レプリケーションインスタンスの詳細について参照してください。

移行に適した AWS DMS レプリケーションインスタンスを選択する

AWS DMS では、Amazon Elastic Compute Cloud (Amazon EC2) インスタンスでレプリケーションインスタンスが作成されます。現在、AWS DMS ではレプリケーションインスタンス向けに T2、C4、R4 の Amazon EC2 インスタンスクラスがサポートされています。

  • T2 インスタンスは、ベースラインレベルの CPU パフォーマンスを提供しながら、そのベースラインレベルを超えてバーストする機能を備えるように設計された、低コストのスタンダードインスタンスです。これらのインスタンスは、データベース移行プロセスの開発、設定、およびテストに適しています。また、CPU のバースト能力を利用できる定期的データ移行タスクにも適しています。

  • この C4 インスタンスクラスは、大量の演算を行うワークロードで最高レベルのプロセッサパフォーマンスを実現するように設計されています。パケット毎秒 (PPS) が非常に大きく、ネットワークのストレスが少なく、ネットワークレイテンシーが低くなります。AWS DMS は、特に異機種間 (例: Oracle から PostgreSQL) で移行やレプリケーションを実行する場合に、CPU に対する負荷が大きくなる場合があります。C4 インスタンスは、このような状況に適しています。

  • R4 インスタンスクラスは、メモリ負荷の大きいワークロード用に最適化されたメモリです。DMS を使用する高スループットトランザクションシステムの継続的な移行やレプリケーションが原因で、大量の CPU やメモリを消費することがあります。R4 インスタンスは、vCPU 別のメモリが含まれます。

レプリケーションインスタンスごとに、メモリと vCPU の固有の設定があります。次の表は、各レプリケーションインスタンスタイプの設定を示しています。価格については、AWS Database Migration サービスの料金表ページを参照してください。

レプリケーションインスタンスタイプ

vCPU

メモリ (GB)

汎用

dms.t2.micro

1

1

dms.t2.small

1

2

dms.t2.medium

2

4

dms.t2.large

2

8

コンピューティング最適化

dms.c4.large

2

3.75

dms.c4.xlarge

4

7.5

dms.c4.2xlarge

8

15

dms.c4.4xlarge

16

30

メモリを最適化

dms.r4.large

2

15.25

dms.r4.xlarge

4

30.5

dms.r4.2xlarge

8

61

dms.r4.4xlarge

16

122

dms.r4.8xlarge

32

244

移行に最適なレプリケーションインスタンスクラスを判断しやすいように、AWS DMS レプリケーションインスタンスで使用する変更データキャプチャ (CDC) プロセスを見ていきましょう。

全ロード + CDC タスク (一括ロードと継続的なレプリケーション) を実行していると想定します。この場合、タスクにはメタデータやその他の情報を格納する独自の SQLite リポジトリがあります。AWS DMS で全ロードを開始する前に、次のステップを実行します。

  • AWS DMS は、ソースエンジンのトランザクションログから移行するテーブルの変更 (キャッシュされた変更と呼ばれる) のキャプチャを開始します。全ロードが完了すると、これらのキャッシュされた変更が収集され、ターゲットに適用されます。キャッシュされた変更のボリュームに応じて、これらの変更は、メモリから直接適用できます。ここで、これらの変更から設定しきい値まで収集されます。または、ディスクから適用して、変更がメモリに保持できないときに書き込まれるようにすることもできます。

  • キャッシュされた変更が適用されると、AWS DMS はデフォルトでターゲットインスタンスに対してトランザクション適用を開始します。

適用済みのキャッシュされた変更フェーズと継続的なレプリケーションフェーズで、AWS DMS は、受信データと送信データ用に 2 つのストリームバッファを使用します。AWS DMS はソーターと呼ばれる重要なコンポーネントも使用します。これは、別のメモリバッファです。ソーターコンポーネントの 2 つの重要な用途 (他のコンポーネントを含む) は次のとおりです。

  • すべてのトランザクションを追跡し、関連するトランザクションのみを送信バッファに転送します。

  • これにより、トランザクションはソース上と同じコミットの順番で転送されます。

見てわかるように、このアーキテクチャには、AWS DMS の CDC 用の 3 つの重要なメモリバッファがあります。これらのバッファのいずれでメモリ負荷が生じた場合、移行でパフォーマンス上の問題が発生し、障害が起きる可能性があります。

1 秒あたりのトランザクション数 (TPS) が多い高負荷のワークロードをこのアーキテクチャに接続すると、R4 インスタンスの追加メモリが役立つことがわかります。R4 インスタンスを使用すると、多数のトランザクションをメモリに保持し、継続的なレプリケーション中のメモリプレッシャーの問題を回避できます。

パブリックおよびプライベートレプリケーションインスタンス

レプリケーションのインスタンスに、インスタンスがソースデータベースとターゲットデータベースへの接続に使用するパブリックまたはプライベート IP アドレスがあるかどうかを指定できます。

プライベートレプリケーションインスタンスには、レプリケーションネットワーク外からアクセスできないるプライベート IP アドレスがあります。ソースとターゲットのデータベースの両方が、VPN、AWS Direct Connect、VPC ピア接続を使用してレプリケーションインスタンスの VPC に接続されている同じネットワーク内にある場合、レプリケーションインスタンスにはプライベート IP アドレスが必要です。

VPC ピア接続は、同じネットワーク内にあるかのように各 VPC のプライベート IP アドレスを使用してルーティングできるようにする、2 つの VPC 間のネットワーキング接続です。VPC のピア接続の詳細については、『Amazon VPC ユーザーガイド』の「VPC ピア接続」を参照してください。

AWS DMS メンテナンス

AWS DMS では、AWS DMS リソースのメンテナンスを定期的に実行します。通常、メンテナンスにはレプリケーションインスタンスやレプリケーションインスタンスのオペレーティングシステム (OS) の更新が伴います。AWS CLI または AWS DMS API を使用して、メンテナンスウィンドウを管理し、メンテナンスの更新を確認できます。AWS DMS コンソールでは、現在この作業はサポートされていません。

メンテナンス項目の適用時には、AWS DMS でご使用のレプリケーションインスタンスを少しの間オフラインにする必要があります。リソースのオフラインを必要とするメンテナンスには、特定のオペレーティングシステムやインスタンスのパッチが含まれます。セキュリティやインスタンスの信頼性に関連するパッチのみ、必須のパッチ適用として自動的にスケジューリングされます。このようなパッチは頻繁に発生するものではありません (通常 1 年に 1 ~ 2 回)。また、メンテナンスウィンドウのごく一部以上が必要になることは、非常に稀な場合に限られます。[Auto minor version upgrade] コンソールオプションを選択して、マイナーバージョンの更新が自動的に適用されるようにします。

AWS DMS メンテナンスウィンドウ

すべての AWS DMS レプリケーションインスタンスには週次のメンテナンスウィンドウが用意されており、その期間内に、利用可能なシステムの変更が適用されます。メンテナンスウィンドウは、変更やソフトウェアのパッチなどが実行されるタイミングをコントロールする機会と考えることができます。

特定の週の間にメンテナンスが必要であると AWS DMS が判断する場合、メンテナンスは、レプリケーションインスタンスの作成時に選択した 30 分のメンテナンス時間中に行われます。AWS DMS は、30 分のメンテナンス時間中にほとんどのメンテナンスを完了します。ただし、大規模な変更の場合より長い時間がかかる場合があります。

レプリケーションインスタンスを作成したときに選択した 30 分のメンテナンスウィンドウは、AWS リージョンごとに割り当てられた 8 時間の中で選択されます。レプリケーションインスタンスの作成時に希望のメンテナンスウィンドウを指定しない場合、AWS DMS では、ランダムに選択した曜日にメンテナンスウィンドウを割り当てます。マルチ AZ 配置を使用するレプリケーションインスタンスの場合、メンテナンスを完了するにはフェイルオーバーが必要になる場合があります。

AWS DMS をサポートしている各 AWS リージョンのメンテナンスウィンドウの一覧を次の表に示します。

サービス対象 時間ブロック
アジアパシフィック (シドニー) リージョン 12:00–20:00 UTC
アジアパシフィック (東京) リージョン 13:00–21:00 UTC
アジアパシフィック (ムンバイ) リージョン 17:30–01:30 UTC
アジアパシフィック (ソウル) リージョン 13:00–21:00 UTC
アジアパシフィック (シンガポール) リージョン 14:00–22:00 UTC
カナダ (中部) リージョン 06:29–14:29 UTC
欧州 (フランクフルト) リージョン 23:00–07:00 UTC
欧州 (アイルランド) リージョン 22:00–06:00 UTC
欧州 (ロンドン) リージョン 06:00–14:00 UTC
南米 (サンパウロ) リージョン 00:00–08:00 UTC
米国東部 (バージニア北部) リージョン 03:00–11:00 UTC
米国東部 (オハイオ) リージョン 03:00–11:00 UTC
米国西部 (北カリフォルニア) リージョン 06:00–14:00 UTC
米国西部 (オレゴン) リージョン 06:00–14:00 UTC
AWS GovCloud (米国西部) 06:00–14:00 UTC

既存の移行タスクにおけるメンテナンスの効果

インスタンスで AWS DMS 移行タスクが実行されている場合、パッチが適用されると次のイベントが発生します。

  • 移行タスクのテーブルで継続的な変更フェーズ (CDC) のレプリケートを実行している場合、AWS DMS は、パッチが適用されている間、タスクを一時停止します。その後、パッチが適用されると、移行は中断されたところから再開します。

  • パッチの適用時に AWS DMS がテーブルを移行中の場合、AWS DMS はテーブルの移行を再開します。

メンテナンスウィンドウ設定の変更

AWS マネジメントコンソール、AWS CLI、または AWS DMS API を使用して、メンテナンスウィンドウの時間を変更できます。

AWS コンソールを使用したメンテナンスウィンドウ設定の変更

メンテナンスウィンドウの時間枠は、AWS マネジメントコンソール を使用して変更できます。

AWS コンソールを使用して優先メンテナンスウィンドウを変更するには

  1. AWS マネジメントコンソール にサインインして AWS DMS を選択します。

  2. ナビゲーションペインで [Replication instances] を選択します。

  3. 変更するレプリケーションインスタンスを選択してから、[Modify] を選択します。

  4. [Maintenance] セクションを展開し、メンテナンスウィンドウの日時を選択します。

    
                            レプリケーションインスタンスを変更する
  5. [Apply changes immediately] を選択します。

  6. [Modify] を選択します。

CLI を使用したメンテナンスウィンドウ設定の変更

必要なメンテナンスウィンドウを調整するには、以下のパラメータを指定して AWS CLI modify-replication-instance コマンドを使用します。

  • --replication-instance-identifier

  • --preferred-maintenance-window

次の AWS CLI の例では、メンテナンスウィンドウを火曜日の午前 4:00 – 4:30 UTC に設定します。

aws dms modify-replication-instance \ --replication-instance-identifier myrepinstance \ --preferred-maintenance-window Tue:04:00-Tue:04:30
API を使用したメンテナンスウィンドウ設定の変更

必要なメンテナンスウィンドウを調整するには、以下のパラメータを指定して AWS DMS API の ModifyReplicationInstance アクションを使用します。

  • ReplicationInstanceIdentifier = myrepinstance

  • PreferredMaintenanceWindow = Tue:04:00-Tue:04:30

次のコード例では、メンテナンスウィンドウを火曜日の午前 4:00 – 4:30 UTC に設定します。

https://dms.us-west-2.amazonaws.com/ ?Action=ModifyReplicationInstance &DBInstanceIdentifier=myrepinstance &PreferredMaintenanceWindow=Tue:04:00-Tue:04:30 &SignatureMethod=HmacSHA256 &SignatureVersion=4 &Version=2014-09-01 &X-Amz-Algorithm=AWS4-HMAC-SHA256 &X-Amz-Credential=AKIADQKE4SARGYLE/20140425/us-east-1/dms/aws4_request &X-Amz-Date=20140425T192732Z &X-Amz-SignedHeaders=content-type;host;user-agent;x-amz-content-sha256;x-amz-date &X-Amz-Signature=1dc9dd716f4855e9bdf188c70f1cf9f6251b070b68b81103b59ec70c3e7854b3

レプリケーションエンジンバージョンの操作

レプリケーションエンジンは、レプリケーションインスタンス上で実行され、指定する移行タスクを実行する AWS DMS コアソフトウェアです。AWS では、新機能とパフォーマンスの強化を含め、新しいバージョンの AWS DMS レプリケーションエンジンソフトウェアを定期的にリリースしています。レプリケーションエンジンソフトウェアの各バージョンには、他のバージョンと区別するための独自のバージョン番号があります。

新しいレプリケーションインスタンスを作成する際、特に指定がない場合は、最新の AWS DMS エンジンバージョンが実行されます。詳細については、「AWS DMS レプリケーションインスタンスを使用する」を参照してください。

現在実行しているレプリケーションインスタンスがある場合は、最新のエンジンバージョンにアップグレードできます (AWS DMS ではエンジンバージョンのダウングレードはサポートされていません)。 レプリケーションエンジンバージョンのリストを含む詳細については、次のセクションを参照してください。

レプリケーションインスタンスバージョンの廃止

時折、AWS DMS によってレプリケーションインスタンスの以前のバージョンが廃止されることがあります。2018 年 4 月 2 日以降、AWS DMS では新しいレプリケーションインスタンスのバージョン 1.9.0 の作成が無効になります。このバージョンは、2016 年 3 月 15 日に AWS DMS で最初にサポートされて以降、機能、セキュリティ、信頼性が強化された後続のバージョンに置き換えられてきました。

2018 年 8 月 5 日の 0:00 (UTC) 以降、バージョン 1.9.0 で実行されるすべての DMS レプリケーションインスタンスは、各インスタンスに指定されたメンテナンスウィンドウ中に使用可能な最新バージョンに自動アップグレードされるようにスケジュールされます。それより前のご都合のよいときにインスタンスをアップグレードすることをお勧めします。

レプリケーションインスタンスのアップグレードを開始するには、「レプリケーションインスタンスのエンジンバージョンのアップグレード 」の手順を使用します。

レプリケーションインスタンスのアップグレードを選択したときに実行されている移行タスクについては、アップグレードが完了すると、アップグレード時の全ロードフェーズのテーブルが最初から再ロードされます。他のすべてのテーブルのレプリケーションは、アップグレードが完了すると中断することなく再開されます。バージョン 1.9.0 からインスタンスをアップグレードする場合は、AWS DMS レプリケーションインスタンスの使用可能な最新バージョンで現在の移行タスクをすべてテストすることをお勧めします。

レプリケーションインスタンスのエンジンバージョンのアップグレード

AWS では、新機能とパフォーマンスの強化を含め、定期的に新しいバージョンの AWS DMS レプリケーションエンジンソフトウェアをリリースしています。利用可能な AWS DMS エンジンバージョンの概要を以下に示します。

バージョン リリース概要
3.1.x
2.4.x
2.3.x
2.2.x
  • AWS DMS ソースまたは AWS DMS ターゲットとしての Microsoft SQL Server 2016 のサポート。

  • AWS DMS ソースまたは AWS DMS ターゲットとしての SAP ASE 16 のサポート。

  • AWS DMS ソースのみとしての、Microsoft Azure で実行されている Microsoft SQL Server のサポート。既存のデータの完全移行を実行できます。ただし、変更データキャプチャ (CDC) は使用できません。

1.9.x AWS DMS レプリケーションエンジンソフトウェアの累積リリース。

注記

レプリケーションインスタンス を 2.4.x から最新バージョンに直接アップグレードできます。

コンソールを使用したエンジンバージョンのアップグレード

AWS マネジメントコンソール を使用して AWS DMS レプリケーションインスタンスをアップグレードできます。

コンソールを使用してレプリケーションインスタンスをアップグレードするには

  1. https://console.aws.amazon.com/dms/ にある AWS DMS コンソールを開きます。

  2. ナビゲーションペインで [Replication instances] を選択します。

  3. レプリケーションエンジンを選択し、[Modify] を選択します。

  4. [Replication engine version] でバージョン番号を選択し、[Modify] を選択します。

注記

レプリケーションインスタンスタイプのアップグレードには数分間かかります。インスタンスが使用可能になると、ステータスは available に変わります。

CLI を使用したエンジンバージョンのアップグレード

次のように AWS CLI を使用して AWS DMS レプリケーションインスタンスをアップグレードできます。

AWS CLI を使用してレプリケーションインスタンスをアップグレードするには

  1. 次のコマンドを使用して、レプリケーションインスタンスの Amazon リソースネーム (ARN) を確認します。

    aws dms describe-replication-instances \ --query "ReplicationInstances[*].[ReplicationInstanceIdentifier,ReplicationInstanceArn,ReplicationInstanceClass]"

    出力で、アップグレードするレプリケーションインスタンスの ARN を書き留めます。たとえば、arn:aws:dms:us-east-1:123456789012:rep:6EFQQO6U6EDPRCPKLNPL2SCEEY などです。

  2. 次のコマンドを使用して、使用可能なレプリケーションインスタンスバージョンを調べます。

    aws dms describe-orderable-replication-instances \ --query "OrderableReplicationInstances[*].[ReplicationInstanceClass,EngineVersion]"

    出力で、レプリケーションインスタンスクラスに使用できるエンジンバージョン番号を書き留めます。この情報はステップ 1 の出力に表示されます。

  3. 次のコマンドを使ってレプリケーションインスタンスをアップグレードします。

    aws dms modify-replication-instance \ --replication-instance-arn arn \ --engine-version n.n.n

    前述の arn を、前のステップで書き留めた実際のレプリケーションインスタンス ARN に置き換えます。

    n.n.n を、目的のエンジンバージョン番号に置き換えます。たとえば、2.2.1 などです。

注記

レプリケーションインスタンスタイプのアップグレードには数分間かかります。次のコマンドを使用して、レプリケーションインスタンスのステータスを表示できます。

aws dms describe-replication-instances \ --query "ReplicationInstances[*].[ReplicationInstanceIdentifier,ReplicationInstanceStatus]"

レプリケーションインスタンスが使用可能になると、ステータスは available に変わります。

レプリケーションインスタンスのための暗号化キーの設定

AWS DMS では、レプリケーションインスタンスによって使用されるストレージと、エンドポイントの接続情報を暗号化します。レプリケーションインスタンスで使用されるストレージを暗号化するため、AWS DMS では AWS アカウントに固有のマスターキーを使用します。このマスターキーは、AWS Key Management Service (AWS KMS) で表示および管理できます。ご使用のアカウント (aws/dms) のデフォルトのマスターキー を使用するか、ご自身で作成するカスタムのマスターキーを使用することができます。既存の AWS KMS 暗号化キーがある場合は、そのキーを暗号化に使用することもできます。

KMS キー識別子を指定して AWS DMS リソースを暗号化することで、独自の暗号化キーを指定できます。独自の暗号化キーを指定した場合、データベース移行の実行に使用されるユーザーアカウントがそのキーにアクセスできる必要があります。独自の暗号化キーを作成して暗号化キーへのユーザーアクセスを許可する方法の詳細については、『AWS KMS開発者ガイド』を参照してください。

KMS キー識別子を指定しない場合、AWS DMS はデフォルトの暗号化キーを使用します。KMS によって、AWS アカウント用に AWS DMS のデフォルトの暗号化キーが作成されます。AWS アカウントには、AWS のリージョンごとにデフォルトの暗号化キーがあります。

AWS DMS リソースの暗号化に使用されるキーを管理するには、KMS を使用します。KMS は、AWS マネジメントコンソール コンソールのホームページで [Identity & Access Management] を選択し、ナビゲーションペインで [暗号化キー] を選択することで表示できます。

KMS は、安全で可用性の高いハードウェアとソフトウェアを組み合わせて、クラウド向けに拡張されたキー管理システムを提供します。KMS を使用して、暗号化キーを作成し、それらのキーの使用方法を制御するポリシーを定義できます。KMS では AWS CloudTrail がサポートされているため、キーの使用を監査して、キーが適切に使用されていることを確認できます。KMS キーは、AWS DMS と、Amazon RDS、Amazon S3、Amazon Elastic Block Store (Amazon EBS)、Amazon Redshift などのサポートされている AWS のサービスと組み合わせて使用できます。

特定の暗号化キーを使用して AWS DMS リソースを作成すると、それらのリソースの暗号化キーを変更することはできません。AWS DMS リソースを作成する場合は、必ず暗号化キー要件を調べてください。

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

データベースの移行の最初のタスクは、割り当てるタスクを実行するのに十分なストレージと処理能力を持つレプリケーションのインスタンスを作成し、ソースデータベースからターゲットデータベースにデータを移行することです。このインスタンスの必要なサイズは、移行する必要のあるデータの量、および、インスタンスが実行するタスクにより異なります。レプリケーションインスタンスの詳細については、「AWS DMS レプリケーションインスタンスを使用する」を参照してください。

以下の手順では、AWS DMS コンソールウィザードを選択したことを前提とします。また、このステップは、AWS DMS コンソールのナビゲーションペインで [Replication instances (レプリケーションインスタンス)]、[Create replication instance (レプリケーションインスタンスの作成)] の順に選択することによっても実行できます。

AWS コンソールを使用してレプリケーションインスタンスを作成するには

  1. [Create replication instance] ページで、レプリケーションのインスタンス情報を指定します。次の表で設定について説明します。

    
                            レプリケーションインスタンスの作成
    使用するオプション 操作

    名前

    8 ~ 16 の印刷可能な ASCII 文字 (/、"、@ を除く) を含むレプリケーションインスタンス名を入力します。名前は、選択した AWS リージョンのアカウントで一意でなければなりません。わかりやすい名前にするには、AWS リージョンや実行中のタスクなどの情報を名前に含めます (例: west2-mysql2mysql-instance1)。

    説明

    レプリケーションインスタンスの簡単な説明を入力します。

    インスタンスクラス

    移行に必要な設定を使用してインスタンスのクラスを選択します。正常に移行を完了するために、インスタンスには十分なストレージ、ネットワーク、処理能力が必要であることに注意してください。移行に最適なインスタンスのクラスを決定する方法に関する詳細については、「AWS DMS レプリケーションインスタンスを使用する」を参照してください。

    レプリケーションエンジンのバージョン

    デフォルトでは、レプリケーションインスタンスは最新バージョンの AWS DMS レプリケーションエンジンソフトウェアを実行します。このデフォルトをそのまま使用することをお勧めします。ただし、必要に応じて、以前のエンジンバージョンを選択できます。

    VPC

    使用する Amazon Virtual Private Cloud (Amazon VPC) を選択します。ソースまたはターゲットデータベースが VPC にある場合、その VPC を選択します。ソースまたはターゲットデータベースが別の VPC にある場合、それらが共にパブリックサブネットにあり、パブリックにアクセス可能であることを確認してから、レプリケーションインスタンスが配置される VPC を選択します。レプリケーションインスタンスが、ソース VPC のデータにアクセスできるようにする必要があります。ソースもターゲットデータベースも VPC にない場合は、レプリケーションインスタンスを配置する VPC を選択します。

    マルチ AZ

    オプションのパラメータを使用して、フェイルオーバーのサポート用に別のアベイラビリティーゾーンにレプリケーションインスタンスのスタンバイレプリカを作成します。変更データキャプチャ (CDC) または、進行中のレプリケーションを使用する場合は、このオプションを有効にする必要があります。

    パブリックアクセス可能

    レプリケーションインスタンスをインターネットからアクセス可能にする場合は、このオプションを選択します。

  2. 必要がある場合は、[Advanced] タブを選択して、次に示す通り、ネットワークおよび暗号化設定の値を設定します。次の表で設定について説明します。

    
                            アドバンスドタブ
    使用するオプション 操作

    Allocated storage (GB)

    ストレージは主に、ログファイルと、キャッシュされたトランザクションで消費されます。キャッシュされたトランザクションでは、ストレージは、キャッシュされたトランザクションをディスクに書き込む必要がある場合にのみ使用されます。したがって、AWS DMS では大量のストレージを使用しません。例外には次のようなものがあります。

    • 膨大なトランザクションをロードする、サイズの大きなテーブル。サイズの大きなテーブルをロードするには時間がかかります。そのため、サイズの大きなテーブルをロードする間、キャッシュされたトランザクションが書き込まれる可能性が高くなります。

    • キャッシュされたトランザクションをロードする前に停止するよう設定されているタスク。この場合、すべてのテーブルのロードが完了するまで、すべてのトランザクションがキャッシュされます。この設定では、キャッシュされたトランザクションにより、かなりの量のストレージが消費されることがあります。

    • Amazon Redshift にロードされるテーブルを使用する設定になっているタスク。ただし、Amazon Aurora がターゲットのときは、この設定は問題にはなりません。

    ほとんどの場合、ストレージのデフォルトの割り当てで十分です。ただし、ストレージ関連のメトリクスに注意を払い、デフォルトの割り当てよりも消費量が多い場合はストレージを拡張することをおすすめします。

    レプリケーションサブネットグループ

    レプリケーションインスタンスを作成する選択した VPC でレプリケーションサブネットグループを選択します。ソースデータベースが VPC にある場合は、レプリケーションインスタンスの場所として、ソースデータベースを含むサブネットグループを選択します。レプリケーションサブネットグループの詳細については、「レプリケーションサブネットグループの作成」を参照してください。

    アベイラビリティーゾーン

    ソースデータベースが配置されているアベイラビリティーゾーンを選択します。

    VPC セキュリティグループ

    レプリケーションのインスタンスが VPC 内で作成されます。ソースデータベースが VPC にある場合は、データベースが存在する DB インスタンスへのアクセス権を提供する VPC セキュリティグループを選択します。

    KMS マスターキー

    使用する暗号化キーを選択して、レプリケーションのストレージと接続情報を暗号化します。(デフォルト) aws/dms を選択する場合、アカウントおよび AWS リージョンに関連付けられたデフォルトの AWS Key Management Service (AWS KMS) キーが使用されます。説明とアカウント番号が、キーの ARN とともに表示されます。暗号化キーの使用の詳細については、「暗号化キーの設定と KMS のアクセス許可の指定」を参照してください。

  3. [Maintenance] 設定を指定します。次の表で設定について説明します。メンテナンス設定の詳細については、「AWS DMS メンテナンスウィンドウ」を参照してください。

    
                        [Maintenance] タブ
    使用するオプション 操作

    Auto minor version upgrade

    選択すると、メンテナンスの時間帯に、レプリケーションインスタンスに自動的にマイナーエンジンアップグレードが適用されます。

    Maintenance window

    週 1 回のシステムメンテナンスを実行できる時間帯 (世界標準時 (UTC)) を選択します。

    デフォルト: 1 週間のうちのランダムな日に起こる、AWS リージョンあたり 8 時間の範囲からランダムに選択された 30 分の時間窓。

  4. [Create replication instance] を選択します。

レプリケーションインスタンスの変更

インスタンスクラスの変更やストレージの増量など、レプリケーションインスタンスの設定を変更できます。

レプリケーションインスタンスを変更する際に、変更内容を即時に適用することができます。変更内容をすぐに適用するには、AWS マネジメントコンソール で [Apply changes immediately (変更をすぐに適用する)] オプションを選択するか、AWS CLI を呼び出す際に --apply-immediately パラメータを使用するか、AWS DMS API を使用する際に ApplyImmediately パラメータを true に設定します。

変更の即時適用を選択しない場合、この変更は保留中の変更キューに保存されます。次のメンテナンスウィンドウ実行中に、キューのすべての保留中の変更が適用されます。

注記

変更の即時適用を選択した場合、保留中の変更キューにあるすべての変更も同様に適用されます。ダウンタイムを必要とする保留中の変更がある場合、[Apply changes immediately] を選択すると予想外のダウンタイムが発生することがあります。

AWS コンソールを使用してレプリケーションインスタンスを変更するには

  1. AWS マネジメントコンソール にサインインして AWS DMS を選択します。

  2. ナビゲーションペインで [Replication instances] を選択します。

  3. 変更するレプリケーションインスタンスを選択します。次の表は、行うことができる変更を示しています。

    使用するオプション 操作

    名前

    レプリケーションインスタンスの名前を変更できます。8 ~ 16 の印刷可能な ASCII 文字 (/、"、@ を除く) を含むレプリケーションインスタンス名を入力します。名前は、選択した AWS リージョンのアカウントで一意でなければなりません。わかりやすい名前にするには、AWS リージョンや実行中のタスクなどの情報を名前に含めます (例: west2-mysql2mysql-instance1)。

    インスタンスクラス

    インスタンスクラスを変更できます。移行に必要な設定を使用してインスタンスのクラスを選択します。インスタンスクラスを変更すると、レプリケーションインスタンスが再起動されます。この再起動は、次のメンテナンスウィンドウ中に行われます。または、[Apply changes immediately] オプションを選択するとすぐに行われます。

    移行に最適なインスタンスのクラスを決定する方法に関する詳細については、「AWS DMS レプリケーションインスタンスを使用する」を参照してください。

    レプリケーションエンジンのバージョン

    レプリケーションインスタンスで使用されているエンジンバージョンをアップグレードできます。レプリケーションのエンジンバージョンをアップグレードすると、アップグレード中にレプリケーションインスタンスがシャットダウンされます。

    マルチ AZ

    このオプションを変更して、フェイルオーバーのサポート用に別のアベイラビリティーゾーンにレプリケーションインスタンスのスタンバイレプリカを作成するか、このオプションを削除できます。変更データキャプチャ (CDC) または継続的なレプリケーションを使用する場合は、このオプションを有効にする必要があります。

    Allocated storage (GB)

    ストレージは主に、ログファイルと、キャッシュされたトランザクションで消費されます。キャッシュされたトランザクションでは、ストレージは、キャッシュされたトランザクションをディスクに書き込む必要がある場合にのみ使用されます。したがって、AWS DMS では大量のストレージを使用しません。例外には次のようなものがあります。

    • 膨大なトランザクションをロードする、サイズの大きなテーブル。サイズの大きなテーブルをロードするには時間がかかります。そのため、サイズの大きなテーブルをロードする間、キャッシュされたトランザクションが書き込まれる可能性が高くなります。

    • キャッシュされたトランザクションをロードする前に停止するよう設定されているタスク。この場合、すべてのテーブルのロードが完了するまで、すべてのトランザクションがキャッシュされます。この設定では、キャッシュされたトランザクションにより、かなりの量のストレージが消費されることがあります。

    • Amazon Redshift にロードされるテーブルを使用する設定になっているタスク。ただし、Amazon Aurora がターゲットのときは、この設定は問題にはなりません。

    ほとんどの場合、ストレージのデフォルトの割り当てで十分です。ただし、ストレージ関連のメトリクスに注意を払い、デフォルトの割り当てよりも消費量が多い場合はストレージを拡張することをおすすめします。

    VPC セキュリティグループ

    レプリケーションのインスタンスが VPC 内で作成されます。ソースデータベースが VPC にある場合は、データベースが存在する DB インスタンスへのアクセス権を提供する VPC セキュリティグループを選択します。

    Auto minor version upgrade

    このオプションを選択すると、メンテナンスウィンドウ中にマイナーエンジンアップグレードを自動的にレプリケーションインスタンスに適用できます。または、[Apply changes immediately] オプションを選択するとすぐに適用できます。

    Maintenance window

    週 1 回のシステムメンテナンスを実行できる時間帯 (世界標準時 (UTC)) を選択します。

    デフォルト: 1 週間のうちのランダムな日に起こる、AWS リージョンあたり 8 時間の範囲からランダムに選択された 30 分の時間窓。

    Apply changes immediately

    行った変更をすぐに適用するには、このオプションを選択します。選択した設定によっては、このオプションを選択すると、レプリケーションインスタンスが直ちに再起動される可能性があります。

レプリケーションインスタンスを再起動する

AWS DMS レプリケーションインスタンスを再起動して、レプリケーションエンジンを再開できます。再起動すると、レプリケーションインスタンスは一時的に機能停止になります。その間、インスタンスのステータスは [Rebooting] に設定されます。AWS DMS インスタンスがマルチ AZ 用に構成されている場合、再起動はフェイルオーバーにより実行できます。再起動が完了すると、AWS DMS イベントが作成されます。

AWS DMS インスタンスがマルチ AZ 配置である場合は、ある AWS アベイラビリティーゾーンから別のアベイラビリティーゾーンへのフェイルオーバーを強制的に実行できます。AWS DMS インスタンスのフェイルオーバーを強制すると、AWS DMS は別のアベイラビリティーゾーンでスタンバイインスタンスに自動的に切り替わります。フェイルオーバーを使用した再起動は、テスト用に AWS DMS インスタンスの障害をシミュレートするときに役立ちます。

再起動の発生時にレプリケーションインスタンスで実行されている移行タスクがある場合、データは失われず、再起動が完了するとタスクが再開されます。移行タスクのテーブルがバルクロードの途中の場合 (全ロードフェーズ)、DMS はそれらのテーブルの移行を最初から再開します。移行タスクのテーブルが継続的なレプリケーションフェーズにある場合、再起動が完了するとタスクが再開されます。

ステータスが [Available] 状態にない場合、AWS DMS レプリケーションインスタンスを再起動することはできません。AWS DMS インスタンスは、以前の要求による変更、またはメンテナンスウィンドウのアクションなど、いくつかの理由で使用できない場合があります。AWS DMS レプリケーションインスタンスの再起動に必要な時間は、通常短時間です (5 分未満)。

AWS コンソールを使用したレプリケーションインスタンスの再起動

レプリケーションインスタンスを再起動するには、AWS コンソールを使用します。

AWS コンソールを使用してレプリケーションインスタンスを再起動するには

  1. AWS マネジメントコンソール にサインインして AWS DMS を選択します。

  2. ナビゲーションペインで [Replication instances] を選択します。

  3. 再起動するレプリケーションインスタンスを選択します。

  4. [Reboot] を選択します。

  5. マルチ AZ 配置のレプリケーションインスタンスを設定し、別の AWS アベイラビリティーゾーンにフェイルオーバーする場合は、[レプリケーションインスタンスの再起動] ダイアログボックスで、[フェイルオーバーによる再起動を行いますか?] を選択します。

  6. [Reboot] を選択します。

CLI を使用してレプリケーションインスタンスを再起動する

レプリケーションインスタンスを再起動するには、以下のパラメータを指定して AWS CLI reboot-replication-instance コマンドを使用します。

  • --replication-instance-arn

例 シンプルな再起動の例

次の AWS CLI の例では、レプリケーションインスタンスを再起動します。

aws dms reboot-replication-instance \ --replication-instance-arn arnofmyrepinstance

例 フェイルオーバーによるシンプルな再起動の例

次の AWS CLI の例では、フェイルオーバーによりレプリケーションインスタンスを再起動します。

aws dms reboot-replication-instance \ --replication-instance-arn arnofmyrepinstance \ --force-failover
API を使用してレプリケーションインスタンスを再起動する

レプリケーションインスタンスを再起動するには、以下のパラメータを指定して AWS DMS API の RebootReplicationInstance アクションを使用します。

  • ReplicationInstanceArn = arnofmyrepinstance

例 シンプルな再起動の例

次のコードの例では、レプリケーションインスタンスを再起動します。

https://dms.us-west-2.amazonaws.com/ ?Action=RebootReplicationInstance &DBInstanceArn=arnofmyrepinstance &SignatureMethod=HmacSHA256 &SignatureVersion=4 &Version=2014-09-01 &X-Amz-Algorithm=AWS4-HMAC-SHA256 &X-Amz-Credential=AKIADQKE4SARGYLE/20140425/us-east-1/dms/aws4_request &X-Amz-Date=20140425T192732Z &X-Amz-SignedHeaders=content-type;host;user-agent;x-amz-content-sha256;x-amz-date &X-Amz-Signature=1dc9dd716f4855e9bdf188c70f1cf9f6251b070b68b81103b59ec70c3e7854b3

例 フェイルオーバーによるシンプルな再起動の例

次のコード例では、レプリケーションインスタンスを再起動し、別の AWS アベイラビリティーゾーンにフェイルオーバーします。

https://dms.us-west-2.amazonaws.com/ ?Action=RebootReplicationInstance &DBInstanceArn=arnofmyrepinstance &ForceFailover=true &SignatureMethod=HmacSHA256 &SignatureVersion=4 &Version=2014-09-01 &X-Amz-Algorithm=AWS4-HMAC-SHA256 &X-Amz-Credential=AKIADQKE4SARGYLE/20140425/us-east-1/dms/aws4_request &X-Amz-Date=20140425T192732Z &X-Amz-SignedHeaders=content-type;host;user-agent;x-amz-content-sha256;x-amz-date &X-Amz-Signature=1dc9dd716f4855e9bdf188c70f1cf9f6251b070b68b81103b59ec70c3e7854b3

レプリケーションインスタンスの削除

不要になった AWS DMS レプリケーションインスタンスは削除できます。レプリケーションインスタンスを使用する移行タスクがある場合は、レプリケーションインスタンスを削除する前に、タスクを停止して削除する必要があります。

AWS アカウントを閉じた場合、アカウントに関連付けられたすべての AWS DMS リソースおよび設定は 2 日後に削除されます。これらのリソースには、すべてのレプリケーションインスタンス、ソースおよびターゲットのエンドポイント設定、レプリケーションタスク、および SSL 証明書が含まれます。2 日後に AWS DMS を再度使用する場合は、必要なリソースを再作成します。

AWS コンソールを使用したレプリケーションインスタンスの削除

レプリケーションインスタンスを削除するには、AWS コンソールを使用します。

AWS コンソールを使用してレプリケーションインスタンスを削除するには

  1. AWS マネジメントコンソール にサインインして AWS DMS を選択します。

  2. ナビゲーションペインで [Replication instances] を選択します。

  3. 削除するレプリケーションインスタンスを選択します。

  4. [Delete] を選択します。

  5. ダイアログボックスで、[Delete] を選択します。

CLI を使用したレプリケーションインスタンスの削除

レプリケーションインスタンスを削除するには、以下のパラメータを指定して AWS CLI delete-replication-instance コマンドを使用します。

  • --replication-instance-arn

例 削除の例

次の AWS CLI の例では、レプリケーションインスタンスを削除します。

aws dms delete-replication-instance \ --replication-instance-arn <arnofmyrepinstance>
API を使用したレプリケーションインスタンスの削除

レプリケーションインスタンスを削除するには、以下のパラメータを指定して AWS DMS API の DeleteReplicationInstance アクションを使用します。

  • ReplicationInstanceArn = <arnofmyrepinstance>

例 削除の例

次のコードの例では、レプリケーションインスタンスを削除します。

https://dms.us-west-2.amazonaws.com/ ?Action=DeleteReplicationInstance &DBInstanceArn=arnofmyrepinstance &SignatureMethod=HmacSHA256 &SignatureVersion=4 &Version=2014-09-01 &X-Amz-Algorithm=AWS4-HMAC-SHA256 &X-Amz-Credential=AKIADQKE4SARGYLE/20140425/us-east-1/dms/aws4_request &X-Amz-Date=20140425T192732Z &X-Amz-SignedHeaders=content-type;host;user-agent;x-amz-content-sha256;x-amz-date &X-Amz-Signature=1dc9dd716f4855e9bdf188c70f1cf9f6251b070b68b81103b59ec70c3e7854b3

AWS DMS によりサポートされている DDL ステートメント

データ移行プロセス中は、ソースデータベース上でデータ定義言語 (DDL) ステートメントを実行できます。これらのステートメントはレプリケーションサーバー上で、ターゲットデータベースにレプリケートされます。

サポートされている DDL ステートメントは以下のとおりです。

  • Create table

  • Drop table

  • Rename table

  • Add column

  • Drop column

  • Rename column

  • Change column data type

特定のソースでサポートされている DDL ステートメントについては、そのソースについて説明しているトピックを参照してください。