AWS Database Migration Service - ユーザーガイド

AWS Database Migration Service
ユーザーガイド
API Version API バージョン 2016-01-01
AWS Database Migration Service ユーザーガイド
AWS Database Migration Service: ユーザーガイド
Copyright © 2017 Amazon Web Services, Inc. and/or its affiliates. All rights reserved.
Amazon's trademarks and trade dress may not be used in connection with any product or service that is not Amazon's, in any manner
that is likely to cause confusion among customers, or in any manner that disparages or discredits Amazon. All other trademarks not
owned by Amazon are the property of their respective owners, who may or may not be affiliated with, connected to, or sponsored by
Amazon.
AWS Database Migration Service ユーザーガイド
Table of Contents
AWS Database Migration Service とは .................................................................................................. 1
移行の計画 ................................................................................................................................ 2
AWS DMS の概要 .............................................................................................................................. 3
移行: 概要 ................................................................................................................................. 3
AWS DMS コンポーネント .......................................................................................................... 4
sources ..................................................................................................................................... 5
ターゲット ................................................................................................................................ 6
レプリケーションインスタンス ..................................................................................................... 7
パブリックおよびプライベートレプリケーションインスタンス .................................................. 8
データベースの移行のためのネットワークのセットアップ ................................................................ 8
データベース移行のネットワーク設定 .................................................................................... 8
レプリケーションサブネットグループの作成 ......................................................................... 10
暗号化キーの設定 ...................................................................................................................... 11
タグ付け .................................................................................................................................. 12
API ................................................................................................................................. 13
ARN の構築 ............................................................................................................................. 14
サポートされている DDL ステートメント ..................................................................................... 15
ソースデータベースでの LOB のサポート ..................................................................................... 16
AWS DMS を使用するためのセットアップ ........................................................................................... 18
AWS にサインアップする .......................................................................................................... 18
IAM ユーザーを作成する ............................................................................................................ 19
要件の特定 ............................................................................................................................... 20
ご利用開始にあたって ....................................................................................................................... 23
データベースの移行開始 ............................................................................................................ 23
ステップ 1: [Welcome] .............................................................................................................. 24
ステップ 2: レプリケーションのインスタンスを作成する ................................................................ 24
ステップ 3: データベースエンドポイントを指定 ............................................................................ 26
ステップ 4: タスクを作成する .................................................................................................... 27
タスクをモニタリングする ......................................................................................................... 30
ベストプラクティス .......................................................................................................................... 31
パフォーマンスの向上 ............................................................................................................... 31
レプリケーションインスタンスのサイズ設定 ................................................................................. 32
ソースデータベースのロードを削減する ....................................................................................... 33
タスクログを使用する ............................................................................................................... 33
スキーマ変換 ............................................................................................................................ 33
ラージバイナリオブジェクト (LOB) の移行 ................................................................................... 34
継続的なレプリケーション ......................................................................................................... 34
Oracle ターゲットのユーザー/スキーマの変更 ............................................................................... 35
セキュリティ .................................................................................................................................... 36
AWS DMS を使用するのに必要な IAM アクセス許可 ...................................................................... 36
AWS CLI と AWS DMS API で使用する IAM ロールの作成 ............................................................. 38
暗号化キーの設定 ...................................................................................................................... 41
AWS Database Migration Service のネットワークセキュリティ ....................................................... 42
AWS Database Migration Service での SSL の使用 ........................................................................ 43
AWS Database Migration Service で SSL を使用する場合の制限 .............................................. 44
証明書の管理 .................................................................................................................... 45
MySQL 互換、PostgreSQL、または SQL Server のエンドポイントでの SSL の有効化 ................ 45
Oracle エンドポイントでの SSL のサポート ......................................................................... 46
データベースのパスワードの変更 ................................................................................................ 50
制限 ................................................................................................................................................ 51
AWS Database Migration Service の制限 ...................................................................................... 51
データ移行のソース .......................................................................................................................... 53
ソースとしての Oracle の使用 .................................................................................................... 54
変更データキャプチャ (CDC) での Oracle LogMiner または Oracle Binary Reader の使用 ............. 54
API Version API バージョン 2016-01-01
iii
AWS Database Migration Service ユーザーガイド
ソースとしての Oracle の制限 ............................................................................................
サポートされている圧縮方法 ..............................................................................................
ソースとしての Oracle のユーザーアカウント権限 .................................................................
ソースとしての Oracle の設定 ............................................................................................
RDS Oracle DB インスタンスのソースとしての設定 ..............................................................
SQL Server のソースとしての使用 ..............................................................................................
SQL Server の制限 ...........................................................................................................
SQL Server CDC の制限 ....................................................................................................
サポートされている圧縮方法 ..............................................................................................
Microsoft SQL Server AlwaysOn 可用性グループの使用 ..........................................................
Microsoft SQL Server データベースの AWS Database Migration Service のレプリケーション
ソースとしての設定 ..........................................................................................................
Microsoft SQL Server での MS-Replication を使用した変更データキャプチャ .............................
Microsoft SQL Server での MS-CDC を使用した変更データキャプチャ .....................................
MS-Replication または MS-CDC を使用できない場合 .............................................................
PostgreSQL のソースとしての使用 ..............................................................................................
ソースとしての PostgreSQL の前提条件 ..............................................................................
PostgreSQL をソースとして使用する場合のセキュリティ要件 .................................................
PostgreSQL をソースとして使用する場合の制限 ...................................................................
ソースとしての Amazon RDS PostgreSQL DB インスタンスの設定 .........................................
PostgreSQL ソースからのアーティファクトの削除 ................................................................
PostgreSQL の詳細設定 .....................................................................................................
ソースとしての MySQL の使用 ...................................................................................................
MySQL をソースとして使用する場合の前提条件 ....................................................................
MySQL をソースとして使用する場合の制限 ..........................................................................
MySQL をソースとして使用する場合のセキュリティ要件 .......................................................
SAP ASE のソースとしての使用 .................................................................................................
SAP ASE をソースとして使用する場合の前提条件 .................................................................
SAP ASE をソースとして使用する場合の制限 .......................................................................
SAP ASE をソースとして使用する場合のユーザーアカウントアクセス許可 ...............................
切り捨てポイントの削除 ....................................................................................................
データ移行のターゲット ....................................................................................................................
Oracle のターゲットとしての使用 ...............................................................................................
ターゲットとして Oracle を使用する場合の制限 ....................................................................
ターゲットとして Oracle を使用する場合のユーザーアカウント権限 ........................................
ターゲットとしての Oracle の設定 ......................................................................................
ターゲットとしての SQL Server の使用 .......................................................................................
SQL Server を AWS Database Migration Service のターゲットとして使用する場合の制限 ............
AWS Database Migration Service のターゲットとして SQL Server を使用する場合のセキュリ
ティ要件 ..........................................................................................................................
ターゲットとしての PostgreSQL の使用 ......................................................................................
AWS Database Migration Service のターゲットとして PostgreSQL を使用する場合の制限 ...........
ターゲットとして PostgreSQL を使用する場合のセキュリティ要件 ..........................................
ターゲットとしての MySQL の使用 .............................................................................................
ターゲットとして MySQL を使用する場合の前提条件 ............................................................
ターゲットとしての MySQL の制限 .....................................................................................
MySQL をターゲットとして使用する場合のセキュリティ要件 .................................................
ターゲットとしての Amazon Redshift の使用 ................................................................................
AWS Database Migration Service のターゲットとして Amazon Redshift データベースを使用す
る場合の前提条件 ..............................................................................................................
ターゲットとしての Redshift の制限 ....................................................................................
AWS Database Migration Service のターゲットとしての Amazon Redshift データベースの設定 ....
Amazon Redshift で拡張された VPC ルーティングを AWS Database Migration Service のター
ゲットとして使用する .......................................................................................................
ターゲットとしての SAP ASE の使用 ..........................................................................................
ターゲットとしての SAP ASE の前提条件 ............................................................................
移行タスクの使用 ..............................................................................................................................
API Version API バージョン 2016-01-01
iv
57
57
57
58
60
62
62
63
64
64
65
65
65
66
66
67
67
67
68
70
71
71
72
73
73
74
74
74
75
75
76
77
77
78
79
79
80
80
80
80
80
81
81
81
82
82
83
83
84
84
85
85
86
AWS Database Migration Service ユーザーガイド
タスクの変更 ............................................................................................................................ 87
タスクのステータス .................................................................................................................. 87
複数のタスクの作成 .................................................................................................................. 87
移行方法 .................................................................................................................................. 88
タスク設定 ............................................................................................................................... 88
ターゲットメタデータのタスク設定 ..................................................................................... 89
全ロードタスク設定 .......................................................................................................... 89
ロギングタスク設定 .......................................................................................................... 90
制御テーブルタスク設定 .................................................................................................... 91
ストリームバッファタスク設定 ........................................................................................... 92
変更処理のチューニング設定 .............................................................................................. 92
変更処理の DDL 処理ポリシータスク設定 ............................................................................. 93
エラー処理タスクの設定 .................................................................................................... 94
タスク設定の保存 .............................................................................................................. 96
タスク実行中のテーブルの状態 ................................................................................................... 97
テーブルマッピングの作成 ......................................................................................................... 97
AWS コンソールを使用した選択および変換テーブルマッピング ............................................. 98
JSON を使用した選択および変換テーブルマッピング ........................................................... 98
移行タスクのモニタリング ................................................................................................................ 108
データ移行サービスメトリクス ................................................................................................. 108
レプリケーションインスタンスのメトリクス ....................................................................... 109
レプリケーションタスクのメトリクス ................................................................................ 110
AWS CloudTrail を使用した AWS DMS API 呼び出しのログ記録 .................................................... 111
CloudTrail イベントログ作成機能の設定 ............................................................................. 111
CloudTrail ログファイルの AWS Database Migration Service イベントエントリ ........................ 111
イベントと通知の使用 ...................................................................................................................... 113
AWS DMS イベントカテゴリおよびイベントメッセージ ............................................................... 114
AWS DMS イベント通知へのサブスクライブ .............................................................................. 116
AWS マネジメントコンソール ........................................................................................... 116
AWS DMS API ............................................................................................................... 117
移行タスクのトラブルシューティング ................................................................................................ 118
移行タスクの実行の遅れ ........................................................................................................... 118
タスクのステータスバーが動かない ........................................................................................... 119
外部キーとセカンダリインデックスが見つからない ...................................................................... 119
Amazon RDS 接続問題 ............................................................................................................ 119
エラーメッセージ: スレッドの接続文字列が正しくありません。正しくないスレッド値「0」 ..... 120
ネットワーキングの問題 ........................................................................................................... 120
全ロード後、CDC が停止する ................................................................................................... 120
タスクを再開時のプライマリキー制約違反エラー ......................................................................... 120
スキーマの初回ロードが失敗する .............................................................................................. 121
不明なエラーが発生してタスクが失敗する .................................................................................. 121
タスクを再開するとテーブルが最初からロードされる ................................................................... 121
タスクあたりのテーブル数 ........................................................................................................ 121
Oracle 固有の問題のトラブルシューティング .............................................................................. 121
ビューからデータを取得する ............................................................................................. 122
Oracle 12c から LOB を移行する ...................................................................................... 122
Oracle LogMiner と BinaryReader の切り替え ..................................................................... 122
エラー: Oracle CDC は停止しました。122301 Oracle CDC の最大再試行カウンタを超えまし
た。 .............................................................................................................................. 122
Oracle ソースエンドポイントにサプリメンタルロギングを自動的に追加する ........................... 123
LOB の変更がキャプチャされない ..................................................................................... 123
エラー: ORA-12899: 列 <column-name> の値が大きすぎる ................................................... 123
NUMBER のデータ型が誤って解釈される ........................................................................... 123
MySQL 固有の問題のトラブルシューティング ............................................................................. 124
バイナリログ作成が無効化されるため、Amazon RDS DB インスタンスのエンドポイントの
CDC タスクが失敗する .................................................................................................... 124
MySQL 互換エンドポイントへの自動コミットを追加する ...................................................... 124
API Version API バージョン 2016-01-01
v
AWS Database Migration Service ユーザーガイド
MySQL 互換ターゲットエンドポイントで外部キーを無効化する .............................................
文字が疑問符に置き換えられる .........................................................................................
[Bad event] ログのエントリ ..............................................................................................
MySQL 5.5 の変更データキャプチャ ..................................................................................
Amazon RDS DB インスタンスのバイナリログ保持を延長する ..............................................
ログメッセージ: ソースデータベースからの一部の変更は、ターゲットデータベースに適用され
ても効果がありません。 ...................................................................................................
エラー: 識別子が長すぎます ..............................................................................................
エラー: サポートされていない文字セットによりフィールドデータ変換が失敗しました ..............
PostgreSQL 固有の問題のトラブルシューティング ......................................................................
ユーザー定義のデータ型の列が正しく移行されない ..............................................................
エラー: 作成用のスキーマが選択されていません ..................................................................
CDC を使用時、テーブルへの削除や更新がレプリケートされない ..........................................
TRUNCATE ステートメントが反映されない ........................................................................
PostgreSQL の DDL キャプチャを防止する .........................................................................
DDL キャプチャ用のデータベースオブジェクトを作成するスキーマの選択 ..............................
PostgreSQL に移行した後 Oracle テーブルが存在しない .......................................................
ソースとしてビューを使用したタスクで行がコピーされない ..................................................
Microsoft SQL Server 固有の問題のトラブルシューティング ..........................................................
AWS DMS ユーザーアカウントの CDC 使用を特別に許可する ...............................................
SQL Server 変更データキャプチャ (CDC) および Amazon RDS .............................................
SQL Server データベースの変更キャプチャエラー ...............................................................
IDENTITY 列が存在しない ................................................................................................
エラー: SQL Server は公開をサポートしていません .............................................................
ターゲットに変更が表示されない ......................................................................................
Amazon Redshift 固有の問題のトラブルシューティング ................................................................
AWS DMS レプリケーションのインスタンスとは異なるリージョンの Amazon Redshift クラス
ターにロードする ............................................................................................................
エラー: リレーション「awsdms_apply_exceptions」がすでに存在します .................................
名前が「awsdms_changes」で始まるテーブルのエラー ........................................................
dms.awsdms_changes000000000XXXX のような名前のクラスターのテーブルを参照する ..........
Amazon Redshift での作業に必要なアクセス許可 .................................................................
Amazon Aurora 特有の問題のトラブルシューティング ..................................................................
エラー: CHARACTER SET UTF8 フィールドが「,」で切り取られています。行が「\n」で切り
取られています ...............................................................................................................
リファレンス ..................................................................................................................................
ソースデータ型 .......................................................................................................................
Oracle のソースデータ型 ..................................................................................................
SQL Server のソースデータ型 ..........................................................................................
PostgreSQL のソースデータ型 ..........................................................................................
MySQL のソースデータ型 ................................................................................................
SAP ASE のソースデータ型 .............................................................................................
ターゲットデータ型 .................................................................................................................
Oracle のターゲットデータ型 ............................................................................................
SQL Server のターゲットデータ型 ....................................................................................
PostgreSQL のターゲットデータ型 ....................................................................................
MySQL のターゲットデータ型 ..........................................................................................
SAP ASE のターゲットデータ型 .......................................................................................
Amazon Redshift のデータ型 ............................................................................................
AWS DMS のデータ型 .............................................................................................................
追加の接続属性 .......................................................................................................................
MySQL ..........................................................................................................................
PostgreSQL ....................................................................................................................
Oracle ...........................................................................................................................
SQL Server ....................................................................................................................
Amazon Redshift .............................................................................................................
SAP Adaptive Server Enterprise (ASE) ...............................................................................
API Version API バージョン 2016-01-01
vi
125
125
125
125
125
126
126
126
126
127
127
127
127
127
128
128
128
128
128
129
129
129
129
129
130
130
130
130
130
131
131
131
132
133
133
135
138
140
142
143
143
144
146
147
148
149
151
152
152
153
154
156
158
158
AWS Database Migration Service ユーザーガイド
VPC 内にない DB インスタンスから VPC に ClassicLink を使用 .................................................... 158
ドキュメント履歴 ............................................................................................................................ 162
API Version API バージョン 2016-01-01
vii
AWS Database Migration Service ユーザーガイド
AWS Database Migration Service と
は
AWS Database Migration Service (AWS DMS) は、Oracle、PostgreSQL、Microsoft SQL Server、Amazon
Redshift、Amazon Aurora、MariaDB、MySQL など、幅広く使用されている商用およびオープンソース
データベースとの間でデータを移行できます。このサービスでは、Oracle から Oracle など、同機種間の
移行をサポートしているほか、Oracle から MySQL、MySQL から Amazon Aurora など、異なるデータ
ベースプラットフォーム間の異機種の移行もサポートしています。ソースまたはターゲットデータベース
は、1 つの AWS サービス上に存在している必要があります。
データベース移行を実行するため、AWS DMS はソースデータベースに接続してソースデータを読み取
り、ターゲットデータベースが使用できるようにデータをフォーマットし、ターゲットデータベースに
データをロードします。この処理のほとんどはメモリ内で行われますが、大きいトランザクションでは
ディスクへのバッファリングが必要になることがあります。キャッシュされたトランザクションとログ
ファイルもディスクに書き込まれます。
AWS DMS は、移行の実行に必要なターゲットスキーマオブジェクトを作成します。ただし、AWS DMS
は最小限のアプローチを採用するため、データの効率的な移行に必要なオブジェクトのみ作成します。つ
まり、AWS DMS は、テーブル、プライマリキー、場合によっては一意のインデックスを作成しますが、
効率的にソースからデータを移行するために必要ではない他のオブジェクトは作成されません。たとえ
ば、セカンダリインデックス、非プライマリキーの制約、データデフォルトは作成されません。
ほとんどの場合、移行を実行するとき、ソーススキーマの大部分またはすべても移行します。同機種間移
行 (同じエンジンタイプの 2 つのデータベース間) を実行する場合、エンジンのネイティブツールを使用し
てスキーマ自体 (データなし) をエクスポートおよびインポートすることによりスキーマを移行します。移
行が異機種間 (異なるエンジンタイプを使用する 2 つのデータベース間) の場合、AWS スキーマ変換ツー
ルを使用して完全なターゲットスキーマを自動的に生成できます。このツールを使用した場合、「全ロー
ド」フェーズと「キャッシュされた変更の適用」フェーズの間は、外部キーの制約など、テーブル間の依
存関係をすべて無効にする必要があります。パフォーマンスが問題になる場合は、移行プロセス中にセカ
ンダリインデックスを削除または無効にすると役立ちます。AWS スキーマ変換ツールの詳細については、
「AWS スキーマ変換ツール」を参照してください。
データベース移行のコストについては、AWS Database Migration Service の料金表ページを参照してくだ
さい。
AWS DMS は現在、次のリージョンで利用できます。
リージョン
名前
米国東部 (バージニア北部) リージョン
us-east-1
API Version API バージョン 2016-01-01
1
AWS Database Migration Service ユーザーガイド
移行の計画
リージョン
名前
米国東部 (オハイオ) リージョン
us-east-2
米国西部 (北カリフォルニア) リージョン
us-west-1
米国西部 (オレゴン) リージョン
us-west-2
カナダ (中部) リージョン
ca-central-1
アジアパシフィック(東京)リージョン
ap-northeast-1
アジアパシフィック (ソウル) リージョン
ap-northeast-2
アジアパシフィック (ムンバイ) リージョン
ap-south-1
アジアパシフィック(シンガポール)リージョン
ap-southeast-1
アジアパシフィック(シドニー)リージョン
ap-southeast-2
欧州(フランクフルト)リージョン
eu-central-1
欧州 (アイルランド) リージョン
eu-west-1
欧州 (ロンドン) リージョン
eu-west-2
南米(サンパウロ)リージョン
sa-east-1
AWS Database Migration Service での移行の計画
AWS Database Migration Service を使用してデータベース移行を計画するときは、以下の点を考慮してく
ださい。
• ソースおよびターゲットデータベースを AWS DMS レプリケーションインスタンスに接続するネット
ワークを設定する必要があります。これは、同じ VPC 内にある 2 つの AWS リソースをより複雑な設
定にレプリケーションインスタンスとして接続する (オンプレミスデータベースを VPN 経由で Amazon
RDS DB インスタンスに接続するなど) のと同じくらい簡単です。詳細については、「データベース移
行のネットワーク設定 (p. 8)」を参照してください。
• ソースおよびターゲットエンドポイント – ソースデータベース内のどの情報とテーブルをターゲッ
トデータベースに移行する必要があるかを知っている必要があります。AWS DMS は、テーブルとプ
ライマリキーの作成を含めて、基本的なスキーマの移行をサポートします。ただし、AWS DMS は、
ターゲットデータベースのセカンダリインデックス、外部キー、ユーザーアカウントなどは自動的に
作成しません。ソースおよびターゲットデータベースエンジンによっては、サプリメンタルロギング
をセットアップしたり、ソースまたはターゲットデータベースの他の設定を変更したり必要がある点
に注意してください。詳細については、「データ移行のソース (p. 53)」と「データ移行のターゲッ
ト (p. 76)」を参照してください。
• スキーマ/コードの移行 – AWS DMS はスキーマまたはコードの変換を実行しません。Oracle SQL
Developer、MySQL Workbench、または pgAdmin III などのツールを使用してスキーマを変換できま
す。異なるデータベースエンジンに既存のスキーマを変換する場合、AWS スキーマ変換ツールを使用
できます。このツールは、ターゲットスキーマを作成でき、スキーマ全体 (テーブル、インデックス、
ビューなど) を生成および作成することもできます。このツールを使用して PL/SQL または TSQL を
PgSQL や他の形式に変換することもできます。AWS スキーマ変換ツールの詳細については、「AWS ス
キーマ変換ツール」を参照してください。
• サポートされていないデータ型 – ソースの一部のデータ型は、ターゲットデータベースの並行データ型
に変換する必要があります。データベースのデータ型の変換に関する表は、「データ変換リファレンス
や追加のトピックを含む AWS Database Migration Service のリファレンス (p. 132)」を参照してくだ
さい。
API Version API バージョン 2016-01-01
2
AWS Database Migration Service ユーザーガイド
移行: 概要
AWS DMS の概要
AWS Database Migration Service (AWS DMS) は、ソースデータベースからターゲットデータベースへの
データの移行に使用できるウェブサービスです。AWS DMS を使用するには、いずれかのデータベースが
AWS サービスに存在している必要があります。オンプレミスデータベースから別のオンプレミスデータ
ベースに移行することはできません。
移行: 概要
データベース移行を実行するため、AWS DMS はソースデータベースに接続してソースデータを読み取
り、ターゲットデータベースが使用できるようにデータをフォーマットし、ターゲットデータベースに
データをロードします。この処理のほとんどはメモリ内で行われますが、大きいトランザクションでは
ディスクへのバッファリングが必要になることがあります。キャッシュされたトランザクションとログ
ファイルもディスクに書き込まれます。
大まかに述べると、AWS DMS を使用するときは、次の操作を行います。
• レプリケーションサーバーをプロビジョニングする
• ソースおよびターゲットエンドポイント (データベース) を定義する
• 1 つ以上のタスクを作成し、ソースおよびターゲットデータベース間でデータを移行する
一般的なタスクは、3 つの主なフェーズで構成されます。
• 既存のデータの全ロード
• キャッシュされた変更の適用
• 継続的なレプリケーション
全ロード中、AWS DMS はソースデータベース上のテーブルからターゲットデータベース上のテーブルに
データをロードします (一度に 8 テーブル)。全ロードの進行中、ロードするテーブルに加えられた変更は
すべてレプリケーションサーバーにキャッシュされます。これらがキャッシュされた変更点です。特定の
テーブルの変更キャプチャは、そのテーブルの全ロードが開始されるまで開始されない点に注意すること
は重要です。つまり、変更キャプチャが開始されるポイントは、個々のテーブルごとに異なります。
特定のテーブルの全ロードが完了すると、AWS DMS はすぐにそのテーブルのキャッシュされた変更を適
用し始めます。すべてのテーブルがロードされると、AWS DMS は継続的なレプリケーションフェーズの
トランザクションとして変更を収集し始めます。AWS DMS がキャッシュされた変更をすべて適用する
API Version API バージョン 2016-01-01
3
AWS Database Migration Service ユーザーガイド
AWS DMS コンポーネント
と、テーブルはトランザクション面で一貫したものになります。この時点で、AWS DMS は継続的なレプ
リケーションフェーズに移り、変更がトランザクションとして適用されます。
継続的なレプリケーションフェーズの開始時、トランザクションのバックログにより、ソースデータベー
スとターゲットデータベースの間に通常いくらかの遅延が発生します。このトランザクションバックログ
が終わると、移行は最終的に安定した状態になります。この時点で、アプリケーションをシャットダウン
して、残りのトランザクションをターゲットに適用できるようにし、ターゲットデータベースをポイント
するようになったアプリケーションを起動できます。
AWS DMS は、移行の実行に必要なターゲットスキーマオブジェクトを作成します。ただし、AWS DMS
は最小限のアプローチを採用するため、データの効率的な移行に必要なオブジェクトのみ作成します。つ
まり、AWS DMS は、テーブル、プライマリキー、場合によっては一意のインデックスを作成しますが、
効率的にソースからデータを移行するために必要ではない他のオブジェクトは作成されません。たとえ
ば、セカンダリインデックス、非プライマリキーの制約、データデフォルトは作成されません。
ほとんどの場合、移行を実行するとき、ソーススキーマの大部分またはすべても移行します。同機種間移
行 (同じエンジンタイプの 2 つのデータベース間) を実行する場合、エンジンのネイティブツールを使用し
てスキーマ自体 (データなし) をエクスポートおよびインポートすることによりスキーマを移行します。移
行が異機種間 (異なるエンジンタイプを使用する 2 つのデータベース間) の場合、AWS スキーマ変換ツー
ルを使用して完全なターゲットスキーマを自動的に生成できます。このツールを使用した場合、「全ロー
ド」フェーズと「キャッシュされた変更の適用」フェーズの間は、外部キーの制約など、テーブル間の依
存関係をすべて無効にする必要があります。パフォーマンスが問題になる場合は、移行プロセス中にセカ
ンダリインデックスを削除または無効にすると役立ちます。AWS スキーマ変換ツールの詳細については、
「AWS スキーマ変換ツール」を参照してください。
AWS DMS コンポーネント
AWS DMS を使用するときに扱うコンポーネントは、以下のとおりです。
レプリケーションインスタンス
AWS DMS レプリケーションインスタンスは、an Amazon Elastic Compute Cloud (Amazon EC2) イ
ンスタンスで実行されます。レプリケーションインスタンスは、マルチ AZ 配置を使用して高可用性
とフフェイルオーバーサポートを提供します。AWS DMS のマルチ AZ 配置では、異なるアベイラビ
リティーゾーンにレプリケーションインスタンスの同期スタンバイレプリカが自動的にプロビジョ
ニングされて維持されます。プライマリレプリケーションインスタンスは、同期的にアベイラビリ
ティーゾーン間でスタンバイレプリカにレプリケートされます。このアプローチでは、データの冗長
性が確保されて I/O のフリーズがなくなり、システムバックアップ時のレイテンシー急上昇が最小限
に抑えられます。
AWS DMS は、ソースデータベースに接続するレプリケーションサーバーを使用してソースデータを
読み取り、ターゲットデータベースが使用できるようにデータをフォーマットし、ターゲットデータ
ベースにデータをロードします。この処理のほとんどはメモリ内で行われます。ただし、大きいトラ
ンザクションではディスクでのバッファリングが必要になることがあります。キャッシュされたトラ
ンザクションとログファイルもディスクに書き込まれます。レプリケーションサーバーを作成すると
きは、以下の点を考慮に入れてください。
• EC2 インスタンスクラス — サービスのテストや小規模な移行の場合、いくつかの小さい EC2 イ
ンスタンスクラスで十分です。移行に多数のテーブルが関与する場合や、複数の同時レプリケー
ションタスクを実行する予定の場合、大きいインスタンスを 1 つ使用することを検討してくださ
い。AWS DMS はかなりの両方のメモリと CPU を消費するため、このアプローチが推奨されま
す。
• ストレージ — 選択した EC2 インスタンスクラスに応じて、レプリケーションサーバーには 50 GB
または 100 GB のデータストレージが付属しています。このストレージは、ログファイルと、ロー
ド時に収集されるキャッシュされた変更に使用されます。ソースシステムがビジーの場合や大きい
トランザクションを実行する場合、またはレプリケーションサーバーで複数のタスクを実行してい
る場合、このストレージの量を増やす必要が生じることがあります。通常は、デフォルトの量で十
分です。
API Version API バージョン 2016-01-01
4
AWS Database Migration Service ユーザーガイド
sources
ソースエンドポイント
ソースエンドポイントから継続的な変更をレプリケートするときに AWS DMS が使用する変更キャプ
チャプロセスは、データベースエンジンのネイティブ API を使用することでデータベースログへの変
更を収集します。ソースエンジンごとに、この変更ストリームを指定されたユーザーアカウントに開
示するための固有の設定要件があります。ほとんどのエンジンでは、キャプチャプロセスのために、
データ損失を発生させず意味のある方法で変更データを使用できるようにするには、追加の設定が必
要です。たとえば、Oracle ではサプリメンタルロギングを追加する必要があり、MySQL では行レベ
ルのバイナリロギングが必要です。Amazon RDS をソースとして使用する場合、バックアップが有
効であることと、変更ログが十分な時間 (通常は 24 時間で十分です) 保持されるようにソースデータ
ベースが設定されていることを確認することをお勧めします。
ターゲットエンドポイント
可能な限り、AWS DMS はターゲットスキーマを自動的に作成するように試みます。場合によって
は、AWS DMS はスキーマを作成することができません。たとえば、セキュリティ上の理由から AWS
DMS はターゲット Oracle スキーマを作成しません。MySQL データベースターゲットの場合、追加の
接続パラメーターを使用にすることにより、AWS DMS がすべてのオブジェクトと指定されたデータ
ベースおよびスキーマに移行したり、ソース上でスキーマを検出したときに各データベースおよびス
キーマを自動的に作成したりするようにすることができます。
タスク
使用できる 3 つの移行タスクタイプのいずれかを作成できます。
• 既存のデータを移行する — 既存のデータをコピーできる長さの停止が許容される場合は、このオプ
ションが適しています。このオプションでは、ソースデータベースからターゲットデータベースに
データがそのまま移行され、必要に応じてテーブルが作成されます。
• 既存のデータを移行して、継続的な変更をレプリケートする — このオプションでは、ソースで変更
をキャプチャしながら、全データロードが実行されます。全ロードが完了すると、キャプチャされ
た変更がターゲットに適用されます。最終的に、変更の適用は安定した状態に到達します。この時
点で、アプリケーションをシャットダウンし、残りの変更がターゲットに移動するようにした後、
ターゲットをポイントするアプリケーションを再起動できます。
• データ変更のみレプリケートする — 状況によっては、AWS DMS 以外の方法を使用して既存のデー
タをコピーした方が効率的なことがあります。たとえば、同機種間移行では、一括データのロード
にネイティブエクスポート/インポートツールを使用した方が効率的なことがあります。この状況で
は、AWS DMS を使用し、一括ロードを開始したときから変更をレプリケートして、ソースデータ
ベースとターゲットデータベースの同期を保つことができます。
デフォルトでは、タスクを作成するとすぐに AWS DMS によりタスクが開始されます。ただし、状況
によっては、タスクの開始を延期できます。たとえば、AWS コマンドラインインターフェース (AWS
CLI) を使用するとき、タスクを作成するプロセスと、トリガーイベントに基づいてタスクを開始する
別のプロセスが存在する場合があります。必要に応じて、タスクの開始を延期できます。
スキーマおよびコード移行
AWS DMS は、スキーマまたはコード変換を実行しません。ソースとターゲットが同じデータベー
スエンジンの場合、Oracle SQL Developer、MySQL Workbench、または pgAdmin III などのツール
を使用して、スキーマを起動できます。異なるデータベースエンジンに既存のスキーマを変換する場
合、AWS スキーマ変換ツールを使用できます。このツールは、ターゲットスキーマを作成でき、ス
キーマ全体 (テーブル、インデックス、ビューなど) を生成および作成することもできます。このツー
ルを使用して PL/SQL または TSQL を PgSQL や他の形式に変換することもできます。AWS スキーマ
変換ツールの詳細については、「AWS スキーマ変換ツール」を参照してください。
AWS Database Migration Service のソース
AWS Database Migration Service を使用したデータ移行のソースとして、以下のデータベースを使用でき
ます。
API Version API バージョン 2016-01-01
5
AWS Database Migration Service ユーザーガイド
ターゲット
オンプレミスおよび EC2 インスタンスデータベース
• Enterprise、Standard、Standard One、および Standard Two エディションの Oracle バージョン 10.2 以
降、11g、12c
• Enterprise、Standard、Workgroup、および Developer エディションの Microsoft SQL Server バージョ
ン 2005、2008、2008R2、2012、2014. Web および Express エディションはサポートされていませ
ん。
• MySQL バージョン 5.5、5.6、5.7
• MariaDB (MySQL 互換データソースとしてサポートされています)
• PostgreSQL バージョン 9.4 以降
• SAP Adaptive Server Enterprise (ASE) 15.7 以降
Amazon RDS インスタンスデータベース
• Oracle バージョン 11g (バージョン 11.2.0.3.v1 以降) および 12c (Enterprise、Standard、Standard
One、Standard Two エディション)
• Enterprise、Standard、Workgroup、および Developer エディションの Microsoft SQL Server バージョ
ン 2008R2、2012、2014。変更データキャプチャ (CDC) オペレーションはサポートされていない点に
注意してください。Web および Express エディションはサポートされていません。
• MySQL バージョン 5.5、5.6、5.7
• MariaDB (MySQL 互換データソースとしてサポートされています)
• PostgreSQL バージョン 9.4 以降
• Amazon Aurora (MySQL 互換データソースとしてサポートされています)
AWS Database Migration Service のターゲット
AWS Database Migration Service を使用したデータレプリケーションのターゲットとして、以下のデータ
ベースを使用できます。
オンプレミスおよび Amazon EC2 インスタンスデータベース
• Enterprise、Standard、Standard One、および Standard Two エディションの Oracle バージョン
10g、11g、12c
• Enterprise、Standard、Workgroup、および Developer エディションの Microsoft SQL Server バージョ
ン 2005、2008、2008R2、2012、2014. Web および Express エディションはサポートされていませ
ん。
• MySQL バージョン 5.5、5.6、5.7
• MariaDB (MySQL 互換データターゲットとしてサポートされています)
• PostgreSQL バージョン 9.3 以降
• SAP Adaptive Server Enterprise (ASE) 15.7 以降
Amazon RDS インスタンスデータベース Amazon Redshift
• Oracle バージョン 11g (バージョン 11.2.0.3.v1 以降) および 12c (Enterprise、Standard、Standard
One、Standard Two エディション)
• Enterprise、Standard、Workgroup、および Developer エディションの Microsoft SQL Server バージョ
ン 2008R2、2012、2014。Web および Express エディションはサポートされていません。
• MySQL バージョン 5.5、5.6、5.7
API Version API バージョン 2016-01-01
6
AWS Database Migration Service ユーザーガイド
レプリケーションインスタンス
• MariaDB (MySQL 互換データターゲットとしてサポートされています)
• PostgreSQL バージョン 9.3 以降
• Amazon Aurora (MySQL 互換データターゲットとしてサポートされています)
• Amazon Redshift
AWS Database Migration Service のレプリケーショ
ンインスタンス
AWS DMS は、Amazon Virtual Private Cloud (Amazon VPC) サービスをベースとする VPC 内の Amazon
Elastic Compute Cloud (Amazon EC2) インスタンスで実行されるレプリケーションインスタンスを作成し
ます。このレプリケーションインスタンスを使用して、データベース移行を実行します。[Multi-AZ] オプ
ションを選択した場合、レプリケーションインスタンスはマルチ AZ 配置を使用して高可用性およびフェ
イルオーバーサポートを提供します。AWS DMS のマルチ AZ 配置では、異なるアベイラビリティーゾー
ンにレプリケーションインスタンスの同期スタンバイレプリカが自動的にプロビジョニングされて維持さ
れます。プライマリレプリケーションインスタンスは複数のアベイラビリティーゾーンにまたがって、ス
タンバイレプリカに同期してレプリケートされます。これにより、データの冗長性を提供し、I/O のフリー
ズを防ぎ、レイテンシーの急上昇を最小限に抑えることができます。
現在、AWS DMS はレプリケーションインスタンス用に T2 および C4 インスタンスクラスをサポートし
ています。T2 インスタンスはベースラインレベルの CPU パフォーマンスを提供しながら、そのベースラ
インレベルを超えてバーストする機能を備えるよう設計された、低コストのスタンダードインスタンスで
す。これは、データベース移行プロセスの開発、設定、テストに適しているほか、CPU のバースト能力を
利用できる定期的データ移行タスクにも適しています。C4 インスタンスクラスは、最高レベルのプロセッ
サパフォーマンスを提供するとともに、非常に高いパケット毎秒 (PPS) パフォーマンス、低いネットワー
クジッター、および低いネットワークのレイテンシーを実現します。大きなデータベースを移行し、移行
時間を最小化したい場合は、C4 インスタンスクラスを使用してください。
レプリケーションインスタンスごとに、メモリと vCPU の固有の設定があります。次の表は、各レプリ
ケーションインスタンスタイプの設定を示しています。価格については、Amazon Database Migration
Service の料金表ページを参照してください。
レプリケーションインスタンスタイプ
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
汎用
コンピューティング最適化
API Version API バージョン 2016-01-01
7
AWS Database Migration Service ユーザーガイド
パブリックおよびプライベート
レプリケーションインスタンス
パブリックおよびプライベートレプリケーションイン
スタンス
レプリケーションのインスタンスに、インスタンスがソースデータベースとターゲットデータベースへ
の接続に使用するパブリックまたはプライベート IP アドレスがあるかどうかを指定できます。ソース
データベースまたはターゲットデータベースが、仮想プライベートネットワーク (VPN)、AWS Direct
Connect、VPC ピア接続を使用することでレプリケーションインスタンスの VPC に接続されていない
ネットワークにある場合、レプリケーションインスタンスにはパブリック IP アドレスが必要です。
プライベートレプリケーションインスタンスには、レプリケーションネットワーク外からアクセスで
きないるプライベート IP アドレスがあります。ソースデータベースとターゲットデータベースの両方
が、VPN、AWS Direct Connect、VPC ピア接続を使用することでレプリケーションインスタンスの VPC
に接続されている同じネットワーク内にある場合、レプリケーションインスタンスにはプライベート IP ア
ドレスが必要です。
VPC ピア接続は、同じネットワーク内にあるかのように各 VPC のプライベート IP アドレスを使用して
ルーティングできるようにする、2 つの VPC 間のネットワーキング接続です。VPC のピア接続の詳細に
ついては、『Amazon VPC ユーザーガイド』の「VPC ピア接続」を参照してください。
データベースの移行のためのネットワークのセット
アップ
AWS DMS は、常に Amazon Virtual Private Cloud (Amazon VPC) にレプリケーションインスタンスを作成
し、レプリケーションインスタンスが配置される VPC を指定します。アカウントとリージョンにデフォル
トの VPC を使用するか、新しい VPC を作成することができます。VPC では、少なくとも 1 つのアベイ
ラビリティーゾーンにある 2 つのサブネットが必要です。
VPC でレプリケーションインスタンスに割り当てられた Elastic Network Interface (ENI) は、VPC からの
退出 (送信) をすべてのポートですべてのトラフィックに許可するルールを持つセキュリティグループに関
連付けられている必要があります。このアプローチでは、ソースおよびターゲットデータベースエンドポ
イントで適切な送信ルールが有効になっている限り、レプリケーションインスタンスからそれらのエンド
ポイントへの通信が許可されます。すべてのアドレスへの送信をすべてのポートで許可するデフォルト設
定をエンドポイントに使用することをお勧めします。
ソースおよびターゲットエンドポイントは、VPC に接続するか、VPC 内に配置されることにより、VPC
内にあるレプリケーションインスタンスにアクセスします。データベースエンドポイントには、レプリ
ケーションインスタンスからの受信アクセスを許可するネットワーク ACL およびセキュリティグループ
ルール (該当する場合) を含める必要があります。使用しているネットワーク設定に応じて、レプリケー
ションインスタンスの VPC セキュリティグループ、レプリケーションインスタンスのプライベートまた
はパブリック IP アドレス、あるいは NAT ゲートウェイのパブリック IP アドレスを使用することができま
す。これらの接続によって、データ移行に使用するネットワークが形成されます。
データベース移行のネットワーク設定
AWS Database Migration Service では、いくつかのネットワーク設定を使用できます。データベース移行
に使用されるネットワークの一般的な設定を以下に示します。
トピック
• すべてのデータベース移行コンポーネントが 1 つの VPC にある設定 (p. 9)
• 2 つの VPC がある設定 (p. 9)
• AWS Direct Connect または VPN を使用した VPC へのネットワークの設定 (p. 9)
• インターネットを使用した VPC へのネットワークの設定 (p. 10)
API Version API バージョン 2016-01-01
8
AWS Database Migration Service ユーザーガイド
データベース移行のネットワーク設定
• VPC 内にない Amazon RDS DB インスタンスから VPC 内の DB インスタンスに ClassicLink を使用し
た設定 (p. 10)
すべてのデータベース移行コンポーネントが 1 つの VPC にある
設定
ソースエンドポイント、レプリケーションインスタンス、ターゲットエンドポイントがすべて同じ VPC に
ある場合、データベース移行のネットワークが最もシンプルになります。この設定は、ソースエンドポイ
ントとターゲットエンドポイントが Amazon Relational Database Service (Amazon RDS) DB インスタン
スまたは Amazon Elastic Compute Cloud (Amazon EC2) インスタンスにある場合に適しています。
次の図は、Amazon EC2 インスタンス上のデータベースがレプリケーションインスタンスに接続し、デー
タが Amazon RDS DB インスタンスに移行される設定を示しています。
この設定で使用される VPC セキュリティグループは、レプリケーションインスタンスからの受信をデー
タベースポートで許可する必要があります。これは、レプリケーションインスタンスにより使用されるセ
キュリティグループにエンドポイントへの送信があることを確認するか、レプリケーションインスタンス
のプライベート IP アドレスを明示的に許可することにより、行うことができます。
2 つの VPC がある設定
ソースエンドポイントとターゲットエンドポイントが別の VPC にある場合、いずれかの VPC でレプリ
ケーションインスタンスを作成し、VPC ピア接続を使用して 2 つの VPC をリンクすることができます。
VPC ピア接続は、同じネットワーク内にあるかのように各 VPC のプライベート IP アドレスを使用して
ルーティングできるようにする、2 つの VPC 間のネットワーキング接続です。1 つのリージョン内で VPC
を接続するには、この方法をお勧めします。VPC ピア接続は、自分の VPC 間、または、同じ AWS リー
ジョン内の他の AWS アカウントにある VPC との間に作成できます。VPC のピア接続の詳細について
は、『Amazon VPC ユーザーガイド』の「VPC ピア接続」を参照してください。
次の図は、VPC 内の Amazon EC2 インスタンスにあるソースデータベースが、レプリケーションインス
タンスと Amazon RDS DB インスタンス上のターゲットデータベースを含む VPC への VPC ピア接続を使
用して接続されている設定を示しています。
この設定で使用される VPC セキュリティグループは、レプリケーションインスタンスからの受信をデータ
ベースポートで許可する必要があります。
AWS Direct Connect または VPN を使用した VPC へのネット
ワークの設定
リモートネットワークは、AWS Direct Connect やソフトウェアまたはハードウェア VPN 接続といった複
数のオプションを使用して VPC に接続できます。これらのオプションは、内部ネットワークを AWS ク
ラウドに拡張することにより、モニタリング、認証、セキュリティ、データ、他のシステムなどの既存の
オンサイトサービスを統合するためによく使用されます。このタイプのネットワーク拡張を使用すること
で、VPC などの AWS によってホストされたリソースにシームレスに接続できます。
次の図は、ソースエンドポイントが企業データセンターにあるオンプレミスデータベースである設定を示
しています。これは、AWS Direct Connect または VPN を使用することで、レプリケーションインスタン
スと、Amazon RDS DB インスタンス上のターゲットデータベースを含む VPC に接続されます。
この設定では、Amazon VPC からオンプレミス VPN にトラフィックをブリッジできるホストに特定の IP
アドレスまたは範囲を宛先とするトラフィックを送信するルーティングルールが、VPC セキュリティグ
ループに含まれている必要があります。この場合、レプリケーションインスタンスのプライベート IP アド
レスまたはセキュリティグループから NAT インスタンスへのトラフィックを許可する必要がある独自のセ
キュリティグループ設定が NAT ホストに含まれています。
API Version API バージョン 2016-01-01
9
AWS Database Migration Service ユーザーガイド
レプリケーションサブネットグループの作成
インターネットを使用した VPC へのネットワークの設定
VPN または AWS Direct Connect を使用して AWS リソースに接続しない場合、インターネットを使用し
てデータベースを Amazon EC2 インスタンスまたは Amazon RDS DB インスタンスに移行できます。こ
の設定では、ターゲットポイントおよびレプリケーションインスタンスを含むインターネットゲートウェ
イを持つ VPC 内にパブリックレプリケーションインスタンスが必要です。
インターネットゲートウェイを VPC に追加するには、『Amazon VPC ユーザーガイド』の「インター
ネットゲートウェイをアタッチする」を参照してください。
VPC セキュリティグループには、デフォルトでは VPC に向かわないトラフィックをインターネットゲー
トウェイに送信するルーティングルールが含まれている必要があります。この設定では、エンドポイント
への接続が、プライベート IP アドレスではなくレプリケーションインスタンスのパブリック IP アドレス
から行われているかのように見えます。
VPC 内にない Amazon RDS DB インスタンスから VPC 内の DB
インスタンスに ClassicLink を使用した設定
プロキシサーバーと組み合わせて ClassicLink を使用すると、VPC 内にない Amazon RDS DB インス
タンスを、VPC 内にある AWS DMS レプリケーションサーバーおよび DB インスタンスに接続できま
す。&ClassicLink を使用すると、EC2-Classic DB インスタンスを同じリージョンにある自アカウントの
VPC にリンクできます。リンクを作成すると、ソース DB インスタンスはプライベート IP アドレスを使
用して VPC 内のレプリケーションインスタンスと通信できます。VPC 内のレプリケーションインスタン
スは、ClassicLink を使用して EC2-Classic プラットフォーム上のソース DB インスタンスに直接アクセス
できないため、プロキシサーバーを使用して、レプリケーションインスタンスとターゲット DB インスタ
ンスを含む VPC にソース DB インスタンスを接続できます。プロキシサーバーは、ClassicLink を使用し
て VPC に接続し、プロキシサーバーでのポートフォワーディングにより、VPC 内にあるソース DB イン
スタンスとターゲット DB インスタンスの間で通信が可能になります。
AWS DMS で使用する ClassicLink を作成する詳しい手順については、「AWS Database Migration Service
での ClassicLink の使用 (p. 158)」を参照してください。
レプリケーションサブネットグループの作成
データベース移行に使用するネットワークの一部として、使用する予定の Amazon Virtual Private Cloud
(Amazon VPC) のサブネットを指定する必要があります。サブネットとは、指定されたアベイラビリ
ティーゾーンにある VPC 内の IP アドレス範囲です。これらのサブネットは、VPC が存在しているリー
ジョンのアベイラビリティーゾーン間で分散できます。
選択したサブネットにレプリケーションインスタンスを作成します。AWS DMS コンソールを使用するこ
とで、ソースまたはターゲットエンドポイントが使用するサブネットを管理できます。
レプリケーションサブネットグループを作成し、使用されるサブネットを定義できます。2 つの異なるア
ベイラビリティーゾーンにある少なくとも 1 つのサブネットを指定する必要があります。
レプリケーションサブネットグループを作成する方法
1.
2.
3.
4.
AWS マネジメントコンソールにサインインし、AWS Database Migration Service を選択しま
す。AWS Identity and Access Management (IAM) ユーザーとしてサインインしている場合、AWS
DMS にアクセスするための適切なアクセス許可が必要である点に注意してください。データベース
移行に必要なアクセス許可の詳細については、「AWS DMS を使用するのに必要な IAM アクセス許
可 (p. 36)」を参照してください。
[Navigation] ペインで、[Subnet Groups] を選択します。
[Create Subnet Group] を選択します。
以下に示すように、[Edit Replication Subnet Group] ページで、レプリケーションサブネットグループ
情報を指定します。次の表で設定について説明します。
API Version API バージョン 2016-01-01
10
AWS Database Migration Service ユーザーガイド
暗号化キーの設定
使用するオプション
操作
識別子
8 ~ 16 の印刷可能な ASCII 文字 (/、"、@ を除く) を含む
レプリケーションサブネットグループ名を入力します。 名
前は、選択したリージョンのアカウントで一意でなければ
なりません。リージョンや実行するタスクなどの情報を名
前に含めることもできます (DMS-default-VPC など)。
説明
レプリケーションサブネットグループの簡単な説明を入力
します。
VPC
データベース移行に使用する VPC を選択します。VPC で
は、少なくとも 2 つのアベイラビリティーゾーンに少なく
とも 1 つのサブネットが必要であることに注意してくださ
い。
利用可能なサブネット
レプリケーションサブネットグループに含めるサブネット
を選択します。少なくとも 2 つのアベイラビリティーゾー
ンにあるサブネットを選択する必要があります。
5.
[Add] を選択し、サブネットをレプリケーションサブネットグループに追加します。
6.
[Create] を選択します。
AWS Database Migration Service の暗号化キーの設
定
AWS DMS は、レプリケーションインスタンスにより使用されるストレージと、エンドポイント接
続情報を暗号化します。レプリケーションインスタンスにより使用されるストレージを暗号化するた
め、AWS DMS は AWS アカウントに固有のマスターキーを使用します。このマスターキーは、AWS Key
Management Service (AWS KMS) で表示および管理できます。ご使用のアカウント (aws/dms) のデフォル
トのマスターキー を使用するか、ご自身で作成するカスタムのマスターキーを使用することができます。
既存の AWS KMS 暗号化キーがある場合、暗号化にそのキーを使用することもできます。
KMS キー識別子を指定して AWS DMS リソースを暗号化することにより、独自の暗号化キーを指定でき
ます。独自の暗号化キーを指定した場合、データベース移行の実行に使用されるユーザーアカウントが
そのキーにアクセスできる必要があります。独自の暗号化キーを作成して暗号化キーへのアクセスをユー
ザーに許可する方法の詳細については、『KMS 開発者ガイド』を参照してください。
KMS キー識別子を指定しない場合、AWS DMS はデフォルトの暗号化キーを使用します。KMS は、AWS
アカウント用に AWS DMS のデフォルトの暗号化キーを作成します。AWS アカウントには、AWS のリー
ジョンごとにデフォルトの暗号化キーがあります。
AWS DMS リソースの暗号化に使用されるキーを管理するには、KMS を使用します。KMS は、AWS マ
ネジメントコンソールのコンソールホームページで [Identity & Access Management] を選択し、ナビゲー
ションペインで [Encryption Keys] を選択することにより表示できます。KMS は、安全で可用性の高い
ハードウェアとソフトウェアを組み合わせて、クラウド向けに拡張されたキー管理システムを提供しま
す。KMS を使用して、暗号化キーを作成し、それらのキーの使用方法を制御するポリシーを定義できま
す。KMS は AWS CloudTrail をサポートしているため、キーの使用を監査して、キーが適切に使用されて
いることを確認できます。KMS キーは、AWS DMS や、Amazon RDS、Amazon Simple Storage Service
(Amazon S3)、Amazon Elastic Block Store (Amazon EBS) などのサポートされる AWS サービスと組み合
わせて使用できます。
特定の暗号化キーを使用して AWS DMS リソースを作成すると、それらのリソースの暗号化キーを変更す
ることはできません。AWS DMS リソースを作成する前に、必ず暗号化キー要件を調べてください。
API Version API バージョン 2016-01-01
11
AWS Database Migration Service ユーザーガイド
タグ付け
AWS Database Migration Service リソースのタグ付
け
AWS Database Migration Service タグを使用して AWS DMS リソースにメタデータを追加できます。ま
た、これらのタグを IAM ポリシーで使用して、AWS DMS リソースへのアクセスを管理したり、AWS
DMS リソースに適用できるアクションを制御したりできます。さらに、これらのタグを類似のリソースに
付けて、それらのリソースの費用をグループ化することで、コストを追跡できます。
以下のすべての AWS DMS リソースにタグを付けることができます。
• レプリケーションインスタンス
• エンドポイント
• レプリケーションタスク
AWS DMS タグは、AWS DMS リソースを定義してそのリソースに関連付ける名前と値のペアです。その
名前はキーと呼ばれます。キーの値の指定は省略可能です。タグを使用して、AWS DMS リソースに任意
の情報を割り当てることができます。たとえば、タグキーを使用してカテゴリを定義し、タグ値をそのカ
テゴリのアイテムにすることができます。具体的には、「project」というタグキーと「Salix」というタグ
値を定義して、AWS DMS リソースが Salix プロジェクトに割り当てられていることを示すことができま
す。また、タグキーとして environment=test や environment=production などを使用して、AWS DMS リ
ソースがテスト用なのか本稼働用なのかを示すこともできます。AWS DMS リソースに関連付けられてい
るメタデータの追跡が簡単になるように、一貫した一連のタグキーを使用することをお勧めします。
タグを使用して、ユーザー独自のコスト構造を反映するように AWS 請求を整理します。そのために
は、AWS アカウントにサインアップして、タグキー値が含まれた AWS アカウントの請求書を取得する
必要があります。結合したリソースのコストを確認するには、同じタグキー値を持つリソースに従って請
求情報を整理します。たとえば、複数のリソースに特定のアプリケーション名のタグを付け、請求情報を
整理することで、複数のサービスを利用しているアプリケーションの合計コストを確認することができま
す。詳細については、AWS 請求情報とコスト管理情報についての「コスト配分とタグ付け」を参照してく
ださい。
各 AWS DMS リソースにはタグセットがあり、それぞれの AWS DMS リソースに割り当てられているす
べてのタグが含まれています。タグセットには、最大 10 個のタグを格納でき、空にすることもできま
す。AWS DMS リソースに追加したタグのキーがそのリソースの既存のタグのキーと同じ場合、既存の値
は新しい値によって上書きされます。
AWS は、タグに意味を適用しません。タグは文字列として厳密に解釈されます。リソース作成時に使用す
る設定によっては、AWS DMS によって DB インスタンスまたは他の AWS DMS リソースにタグが設定さ
れることがあります。
AWS DMS タグの特徴は以下のとおりです。
• タグキーは、必須のタグ名です。文字列値は、1 ~ 128 文字の Unicode 文字です。「aws:」または
「dms:」をプレフィックスとして使用することはできません。文字列には、一連の Unicode 文字、
数字、空白、「_」、「.」、「/」、「=」、「+」、「-」(Java 正規表現: "^([\\p{L}\\p{Z}\\p{N}_.:/=+\
\-]*)$") のみを含めることができます。
• タグ値は、タグの省略可能な文字列値です。文字列値は、1 ~ 256 文字の Unicode 文字です。「aws:」
または「dms:」をプレフィックスとして使用することはできません。文字列には、一連の Unicode 文
字、数字、空白、「_」、「.」、「/」、「=」、「+」、「-」(Java 正規表現: "^([\\p{L}\\p{Z}\\p{N}_.:/=
+\\-]*)$") のみを含めることができます。
値はタグセット内で一意である必要はなく、null を指定できます。例えば、project/Trinity と cost-center/
Trinity のタグセット内に 1 つのキーと値のペアを使用できます。
API Version API バージョン 2016-01-01
12
AWS Database Migration Service ユーザーガイド
API
AWS マネジメントコンソール、AWS CLI、または AWS DMS API を使用して、AWS DMS リソースに
対してタグを追加、一覧表示、削除できます。AWS CLI または AWS DMS API を使用するときは、操作
する AWS DMS リソースの Amazon リソースネーム (ARN) を指定する必要があります。ARN の作成の
詳細については、「AWS Database Migration Service で使用する Amazon リソースネーム (ARN) の構
築 (p. 14)」を参照してください。
タグはリソース承認用にキャッシュに格納されます。そのため、AWS DMS リソースに対するタグの追加
や更新には数分かかることがあります。
API
AWS DMS API を使用して AWS DMS リソースのタグを追加、一覧表示、または削除できます。
• AWS DMS リソースにタグを追加するには、AddTagsToResource オペレーションを使用します。
• AWS DMS リソースに割り当てられているタグを一覧表示するには、ListTagsForResource オペレー
ションを使用します。
• AWS DMS リソースからタグを削除するには、RemoveTagsFromResource オペレーションを使用しま
す。
必要な ARN を作成する方法の詳細については、「AWS Database Migration Service で使用する Amazon
リソースネーム (ARN) の構築 (p. 14)」を参照してください。
AWS DMS API を使用して XML を操作する場合、タグでは以下のスキーマを使用します。
<Tagging>
<TagSet>
<Tag>
<Key>Project</Key>
<Value>Trinity</Value>
</Tag>
<Tag>
<Key>User</Key>
<Value>Jones</Value>
</Tag>
</TagSet>
</Tagging>
以下の表に示しているのは、使用可能な XML タグとその特性のリストです。キーと値では大文字と小文
字が区別されます。たとえば、project=Trinity と PROJECT=Trinity は 2 つの別個のタグです。
タグ付け要素
説明
タグセット
タグセットは、Amazon RDS リソースに割り当てられるすべてのタグのコ
ンテナーです。リソースごとに割り当て可能なのは 1 つのタグセットのみで
す。AWS DMS API によってのみタグセットを操作できます。
Tag
タグはユーザー定義のキーと値のペアです。1〜10 個のタグをタグセットに
含めることができます。
キー
キーはタグの必須の名前です。文字列値は、1 ~ 128 文字の Unicode 文字
です。「dms:」または「aws:」をプレフィックスとして使用することはで
きません。文字列には、一連の Unicode 文字、数字、空白、「_」、「.」、
「/」、「=」、「+」、「-」(Java 正規表現: "^([\\p{L}\\p{Z}\\p{N}_.:/=+\
\-]*)$")のみを含めることができます。
キーはタグセットに対して一意である必要があります。たとえば、タグ
セットでキーが同じで値が異なるキーと値のペアは使用できません。たとえ
ば、project/Trinity や project/Xanadu は使用できません。
API Version API バージョン 2016-01-01
13
AWS Database Migration Service ユーザーガイド
ARN の構築
タグ付け要素
説明
値
値はタグの省略可能な値です。文字列値は、1 ~ 256 文字の Unicode 文字
です。「dms:」または「aws:」をプレフィックスとして使用することはで
きません。文字列には、一連の Unicode 文字、数字、空白、「_」、「.」、
「/」、「=」、「+」、「-」(Java 正規表現: "^([\\p{L}\\p{Z}\\p{N}_.:/=+\
\-]*)$") のみを含めることができます。
値はタグセット内で一意である必要はなく、null を指定できます。例え
ば、project/Trinity と cost-center/Trinity のタグセット内に 1 つのキーと値の
ペアを使用できます。
AWS Database Migration Service で使用する
Amazon リソースネーム (ARN) の構築
AWS CLI または AWS Database Migration Service API を使用してデータベース移行を自動化する場
合、Amazon リソースネーム (ARN) の使用方法について知っておく必要があります。Amazon Web
Services で作成されたリソースは、一意の識別子である ARN によって特定されます。AWS CLI または
AWS DMS API を使用してデータベース移行をセットアップする場合は、操作するリソースの ARN を指定
する必要があります。
AWS DMS リソースの ARN は次の構文を使用します。
arn:aws:dms:<region>:<account number>:<resourcetype>:<resourcename>
この構文の説明は次のとおりです。
• <region> は、us-west-2 などの AWS DMS リソースが作成されたリージョンの AWS リージョン ID で
す。
以下の表に示しているのは、ARN を作成するときに使用する必要のある AWS リージョンの名前とその
値です。
リージョン
名前
米国東部 (バージニア北部) リージョン
us-east-1
米国東部 (オハイオ) リージョン
us-east-2
米国西部 (北カリフォルニア) リージョン
us-west-1
米国西部 (オレゴン) リージョン
us-west-2
カナダ (中部) リージョン
ca-central-1
アジアパシフィック(東京)リージョン
ap-northeast-1
アジアパシフィック (ソウル) リージョン
ap-northeast-2
アジアパシフィック (ムンバイ) リージョン
ap-south-1
アジアパシフィック(シンガポール)リージョン
ap-southeast-1
アジアパシフィック(シドニー)リージョン
ap-southeast-2
欧州(フランクフルト)リージョン
eu-central-1
API Version API バージョン 2016-01-01
14
AWS Database Migration Service ユーザーガイド
サポートされている DDL ステートメント
リージョン
名前
欧州 (アイルランド) リージョン
eu-west-1
欧州 (ロンドン) リージョン
eu-west-2
南米(サンパウロ)リージョン
sa-east-1
• <account number> はダッシュ記号が省略されたアカウント番号です。アカウント番号を見つけるに
は、http://aws.amazon.com で自分の AWS アカウントにログインし、[My Account/Console]、[My
Account] の順に選択します。
• <resourcetype> は AWS DMS リソースのタイプです。
次の表は、特定の AWS DMS リソースの ARN を構築するときに使用する必要があるリソースタイプを
示しています。
AWS DMS リソースタ
イプ
ARN 形式
レプリケーションイン
スタンス
arn:aws:dms:<region>: <account>:rep: <resourcename>
エンドポイント
arn:aws:dms:<region>:<account>:endpoint: <resourcename>
レプリケーションタス
ク
arn:aws:dms:<region>:<account>: task:<resourcename>
• <resourcename> は、AWS DMS リソースに割り当てられたリソース名です。これは生成された任意の
文字列です。
以下の表に示しているのは、AWS DMS リソースの ARN の例です。AWS アカウントは 123456789012、
作成リージョンは 米国東部(バージニア北部)、リソース名は次のようになっているとします。
リソースタイプ
サンプル ARN
レプリケーションイン
スタンス
arn:aws:dms:us-east-1:123456789012:rep:QLXQZ64MH7CXF4QCQMGRVYVXAI
エンドポイント
移行タスク
arn:aws:dms:useast-1:123456789012:endpoint:D3HMZ2IGUCGFF3NTAXUXGF6S5A
arn:aws:dms:us-east-1:123456789012:task:2PVREMWNPGYJCVU2IBPTOYTIV4
AWS Database Migration Service によりサポートさ
れている DDL ステートメント
データ移行プロセス中は、データ定義言語 (DDL) ステートメントを実行できます。これらのステートメン
トはレプリケーションサーバーで実行され、ソースデータベースまたはターゲットデータベースでサポー
トされます。
サポートされている DDL ステートメントは以下のとおりです。
• Create table
• Drop table
• Rename table
API Version API バージョン 2016-01-01
15
AWS Database Migration Service ユーザーガイド
ソースデータベースでの LOB のサポート
• Add column
• Drop column
• Rename column
• Change column data type
特定のソースまたはターゲットでサポートされている DDL ステートメントについては、そのソースまたは
ターゲットについて説明しているトピックを参照してください。
ソースデータベースでの LOB のサポート
使用するオプション
操作
レプリケーションに LOB 列を含める
ラージオブジェクト (LOB) をシステム間で移行することは難
しい場合があります。AWS DMS には、LOB の列のチュー
ニングに役立つ多くのオプションが用意されています。どの
データ型がいつ AWS DMS によって LOB と見なされるかに
ついては、AWS DMS のドキュメントを参照してください。
Don't include LOB columns - データベース間でデータを移行
するとき、特に異機種間で移行するときは、LOB の保存方法
の見直しが必要になる場合があります。その場合、LOB デー
タを移行する必要はありません。
Full LOB mode - Full LOB mode では、AWS DMS によって
ソースからターゲットに、サイズにかかわらずすべての LOB
が移行されます。この設定では、AWS DMS の最大許容 LOB
サイズに関する情報は不要です。したがって、LOB は一度に
1 つずつ移行されます。Full LOB mode は非常に低速になる
ことがあります。
Limited LOB mode - Limited LOB mode では、AWS DMS の
最大許容 LOB サイズを設定します。これにより、AWS DMS
によってメモリが事前に割り当てられ、LOB データを一括
でロードできるようになります。最大許容 LOB サイズを超
える LOB は切り捨てられ、警告がログファイルに発行され
ます。Limited LOB mode では、Full LOB mode よりも大幅
にパフォーマンスが向上します。可能な限り Limited LOB
mode を使用することをお勧めします。
Note
Oracle では、LOB は可能な限り VARCHAR デー
タ型として扱われます。この方法では、AWS DMS
によって LOB がデータベースから一括でフェッチ
されるため、他の方法よりも大幅に高速になりま
す。Oracle では VARCHAR の最大サイズが 64K で
あるため、Oracle がソースデータベースである場合
は、最大許容 LOB サイズを 64K 未満に設定するの
が最適です。
Max LOB size (K)
Limited LOB mode で実行されるようにタスクを設定して
いる場合、このオプションによって AWS DMS の最大許容
LOB サイズが決まります。この値よりも大きい LOB はこの
値まで切り捨てられます。
API Version API バージョン 2016-01-01
16
AWS Database Migration Service ユーザーガイド
ソースデータベースでの LOB のサポート
使用するオプション
操作
LOB チャンクサイズ (K)
Full LOB mode を使用するようにタスクを設定している場
合、AWS DMS によって LOB は 1 つずつ取得されます。こ
のオプションによって各 LOB のサイズが決まります。この
オプションを設定するときは、ネットワーク設定の最大許容
パケットサイズに特に注意してください。LOB チャンクサイ
ズが最大許容パケットサイズを超えた場合は、切断エラーが
表示されることがあります。
API Version API バージョン 2016-01-01
17
AWS Database Migration Service ユーザーガイド
AWS にサインアップする
AWS DMS を使用するためのセット
アップ
AWS Database Migration Service (AWS DMS) を初めて使用する場合は、事前に以下のタスクをすべて実
行する必要があります。
1. AWS にサインアップする (p. 18)
2. IAM ユーザーを作成する (p. 19)
3. 要件の特定 (p. 20)
AWS にサインアップする
アマゾン ウェブ サービス (AWS) にサインアップすると、AWS アカウントが AWS DMS を含む AWS 内
のすべてのサービスに自動的にサインアップされます。 料金が発生するのは、実際に使用したサービスの
分のみです。
AWS DMS は、使用したリソース分のみお支払いいただくだけで利用可能です。 作成した AWS DMS レ
プリケーションのインスタンスはライブとなります (サンドボックスで実行されるわけではありません)。
インスタンスを終了するまで、AWS DMS 標準使用料が発生します。 AWS DMS の使用料の詳細について
は、「AWS DMS 製品ページ」を参照してください。 AWS の新規のお客様である場合は、AWS DMS の
使用を無料で開始できます。詳細については、「AWS 無料利用枠」を参照してください。
既に AWS アカウントをお持ちの場合は次のタスクに進んでください。AWS アカウントをお持ちでない場
合は、次に説明する手順にしたがってアカウントを作成してください。
AWS アカウントを作成するには
1.
https://aws.amazon.com/ を開き、[AWS アカウントの作成] を選択します。
2.
オンラインの手順に従います。
サインアップ手順の一環として、通話呼び出しを受け取り、電話のキーパッドを用いて PIN を入力す
ることが求められます。
次のタスクで AWS アカウント番号が必要となるので、メモしておいてください。
API Version API バージョン 2016-01-01
18
AWS Database Migration Service ユーザーガイド
IAM ユーザーを作成する
IAM ユーザーを作成する
AWS のサービス (AWS DMS など) の場合は、サービスにアクセスする際に認証情報を指定する必要があ
ります。これにより、リソースへのアクセス許可があるかどうかをサービスが判断できます。 コンソール
を使用するにはパスワードが必要です。AWS アカウントのアクセスキーを作成して、コマンドラインイン
ターフェイスまたは API にアクセスすることができます。ただし、AWS アカウントの認証情報を使って
AWS にアクセスすることはお勧めしません。代わりに AWS Identity and Access Management (IAM) を使
用することをお勧めします。IAM ユーザーを作成して、管理権限を使ってこのユーザーを IAM グループに
追加するか、管理権限を付与します。これで、特殊な URL と IAM ユーザーの認証情報を使って、AWS に
アクセスできます。
AWS にサインアップしても、ご自分の IAM ユーザーをまだ作成していない場合は、IAM コンソールを使
用して作成できます。
自分用の IAM ユーザーを作成し、そのユーザーを管理者グループに追加するには
1.
IAM コンソール (https://console.aws.amazon.com/iam/) にサインインします。
2.
ナビゲーションペインで [Users]、[Add user] の順に選択します。
3.
[User name] で、ユーザー名 (Administrator など) を入力します。名前には、英数字のほかに、プラ
ス記号 (+)、等号 (=)、カンマ (,)、ピリオド (.)、アットマーク (@)、下線 (_)、ハイフン (-) を使用でき
ます。名前は、大文字と小文字が区別されず、最大 64 文字で構成できます。
4.
[AWS マネジメントコンソール access] の横のチェックボックスをオンにし、[Custom password] を選
択して、新しいユーザーのパスワードをテキストボックスに入力します。オプションとして [Require
password reset] を選択し、ユーザーが次回サインインしたときに新しいパスワードを選択することを
強制できます。
5.
[Next: Permissions] を選択します。
6.
[Set permissions for user] ページで、[Add user to group] を選択します。
7.
[Create group] を選択します。
8.
[Create group] ダイアログボックスで、新しいグループの名前を入力します。名前には、英数字のほ
かに、プラス記号 (+)、等号 (=)、カンマ (,)、ピリオド (.)、アットマーク (@)、下線 (_)、ハイフン (-)
を使用できます。名前は、大文字と小文字が区別されず、最大 128 文字で構成できます。
9.
[Filter] で、[Job function] を選択します。
10. ポリシーリストで、[AdministratorAccess] のチェックボックスをオンにします。次に、[Create group]
を選択します。
11. グループのリストに戻り、新しいグループのチェックボックスをオンにします。必要に応じて
[Refresh] を選択し、リスト内のグループを表示します。
12. [Next: Review] を選択して、新しいユーザーに追加するグループメンバーシップのリストを表示しま
す。続行する準備ができたら、[Create user] を選択します。
この同じプロセスを繰り返して新しいグループとユーザーを作成し、AWS アカウントのリソースへのアク
セス権をユーザーに付与できます。ポリシーを使用して特定の AWS リソースに対するユーザーのアクセ
ス権限を制限する方法については、「アクセス管理」と「AWS リソースの管理に関するポリシーの例」を
参照してください。
新規の IAM ユーザーとしてサインインするには、AWS コンソールからサインアウトし、次の URL を使用
します。このとき、your_aws_account_id はハイフンを除いた AWS アカウント番号です (たとえば AWS
アカウント番号が 1234-5678-9012 であれば、AWS アカウント ID は 123456789012 となります)。
https://your_aws_account_id.signin.aws.amazon.com/console/
作成した IAM ユーザー名とパスワードを入力します。サインインすると、ナビゲーションバーに
「your_user_name @ your_aws_account_id」が表示されます。
API Version API バージョン 2016-01-01
19
AWS Database Migration Service ユーザーガイド
要件の特定
サインページの URL に AWS アカウント ID を含めない場合は、アカウントのエイリアスを作成しま
す。IAM ダッシュボードで [Customize] を選択し、エイリアス (会社名など) を入力します。 アカウントエ
イリアスを作成した後、サインインするには、次の URL を使用します。
https://your_account_alias.signin.aws.amazon.com/console/
アカウントの IAM ユーザーのサインインリンクを確認するには、IAM コンソールを開き、ダッシュボード
の [AWS Account Alias] の下を確認します。
要件の特定
データベースの移行には、徹底したテストと適切なバックアップ戦略が必要です。 AWS DMS を使用して
正常にデータベースを移行するには、以下で説明するように、ソースデータベース、ネットワーク、AWS
ネットワーク、要件、ターゲット データベーススキーマの専門知識、時間、知識が必要です。
利用できるリージョン
AWS DMS が、必要なリージョンで使用可能であることを確認します。 AWS DMS は現在、
リージョン
名前
米国東部 (バージニア北部) リージョン
us-east-1
米国東部 (オハイオ) リージョン
us-east-2
米国西部 (北カリフォルニア) リージョン
us-west-1
米国西部 (オレゴン) リージョン
us-west-2
カナダ (中部) リージョン
ca-central-1
アジアパシフィック(東京)リージョン
ap-northeast-1
アジアパシフィック (ソウル) リージョン
ap-northeast-2
アジアパシフィック (ムンバイ) リージョン
ap-south-1
アジアパシフィック(シンガポール)リージョ
ン
ap-southeast-1
アジアパシフィック(シドニー)リージョン
ap-southeast-2
欧州(フランクフルト)リージョン
eu-central-1
欧州 (アイルランド) リージョン
eu-west-1
欧州 (ロンドン) リージョン
eu-west-2
南米(サンパウロ)リージョン
sa-east-1
のリージョンで利用できます。
専門知識
データベースの移行には、複数の分野における専門知識が必要です。
• 移行元データベースエンジンおよび移行先データベースエンジンの詳細な知識が必要です。
• 移行元のネットワークおよびそのネットワークが AWS に接続する方法のどちらも理解する必要が
あります。
API Version API バージョン 2016-01-01
20
AWS Database Migration Service ユーザーガイド
要件の特定
• 移行先の AWS サービス、および AWS Identity and Access Management (IAM) サービスの詳細な知
識が必要です。
• ほとんどの場合、ソフトウェアアーキテクチャーの知識があると役立ちます。
時間
移行のプロジェクトは完了するまで 2 週間から数か月かかる可能性があります。
• 移行を成功させるには複数のイテレーションが必要になる場合があります。
• 移行プロセスは予想よりも時間がかかる場合があります。
• データベースの移行を完了しなければならない日付が決まっていますか。
• 移行計画が、移行自体よりも時間がかかる場合があります。
ソースデータベースの知識
データベースのサイズ、およびそこに含まれるデータ型が、移行に劇的に影響を及ぼす可能性があり
ます。
• データベースにはいくつのスキーマとテーブルが含まれていますか。
• データベースには、非常に大きなテーブル (5 GB 以上) がありますか。
• トランザクションの境界はどのようになっていますか。
• データベースには、AWS DMS がサポートしないデータ型がありますか。
• テーブルには LOB はありますか。 もしあるなら、LOB はどれくらいの大きさですか。
• LOB のテーブルには、プライマリキーがありますか。
• ソースデータベースの使用頻度はどのくらいですか。
• ソースデータベースのユーザー、ロール、アクセス許可の種類はなんですか。
• 最後にデータベースをバキューム処理または圧縮したのはいつですか。
ネットワークおよび AWS ネットワークの知識
ソースデータベースが AWS に使用するネットワークを接続する必要があります。
• データベースはどのように AWS ネットワークにアクセスしますか。
• どの Amazon Virtual Private Cloud (Amazon VPC) を使用しますか。
• どの Amazon Elastic Compute Cloud (Amazon EC2) セキュリティグループを使用しますか。
• すべてのデータを移動するには、どのくらい帯域幅が必要ですか。
要件の理解
以下の質問を考慮するなら、移行計画の作成に役立ちます。
• どのくらいのダウンタイムを許容できますか。
• 移行の後でソースデータベースを使用可能にする必要がありますか。
• 別のデータベースエンジンよりも対象データベースエンジンを使用したい理由は何ですか。
• 高可用性要件は何ですか。
• すべてのデータを移行する必要がありますか。
• すべてのデータを同じデータベースに移行する必要がありますか。
• Amazon RDS (自動バックアップ、高可用性など) を使用する利点を理解していますか。
• Amazon RDS (ストレージのサイズ 管理者ユーザーなど) の使用制限を理解していますか。
• 移行プロセスの間、アプリケーションはどうなりますか。
• 移行が失敗した場合の不測事態計画はどのようなものですか。
ターゲットデータベーススキーマの知識
AWS DMS は、ターゲットデータベースにテーブルとプライマリキーのみを作成します。 他のデータ
ベース要件は作り直す必要があります。
• AWS スキーマ変換ツール (AWS SCT) を使用して、データベーススキーマを移行できます。 これ
は、1 つのデータベースエンジンから別のデータベースエンジンへ移行した場合に最適です。 AWS
スキーマ変換ツールの詳細については、「AWS スキーマ変換ツール」を参照してください。
API Version API バージョン 2016-01-01
21
AWS Database Migration Service ユーザーガイド
要件の特定
• AWS SCT は、同じデータベースエンジンタイプ間のスキーマの変換はサポートしていません。 同
じデータベースエンジンに移動する際にスキーマを変換する必要がある場合、変換用のデータベー
スエンジンのネイティブツールを使用します。
• AWS SCT は、現在オーケストレーションをサポートしていません。
• 移行の後までスキーマの変更を延期します。
API Version API バージョン 2016-01-01
22
AWS Database Migration Service ユーザーガイド
データベースの移行開始
ご利用開始にあたって
AWS Database Migration Service (AWS DMS) は、AWS にデータベースを簡単かつ安全に移行します。
Oracle、MySQL、PostgreSQL などの最も広く使用されている、市販のオープンソースデータベース間で
データを移行できます。 このサービスでは、Oracle から Oracle など、同機種間の移行をサポートしてい
るほか、Oracle から PostgreSQL、MySQL から Oracle など、異なるデータベースプラットフォーム間の
異機種の移行もサポートしています。
AWS Database Migration Service を使用するデータベースの移行のコストの詳細については、「AWS
Database Migration Service の料金表ページ」を参照してください。
トピック
• AWS Database Migration Service を使用して、データベースの移行を開始します。 (p. 23)
• ステップ 1: [Welcome] (p. 24)
• ステップ 2: レプリケーションのインスタンスを作成する (p. 24)
• ステップ 3: データベースエンドポイントを指定 (p. 26)
• ステップ 4: タスクを作成する (p. 27)
• タスクをモニタリングする (p. 30)
AWS Database Migration Service を使用して、デー
タベースの移行を開始します。
データベース移行を開始するには、2 つの方法があります。AWS DMS コンソールウィザードを選択して
このプロセスの各手順を実行するか、ナビゲーションペインで該当するタスクを選択して各手順を実行す
ることができます。
ウィザードを使用するには、AWS DMS コンソールのナビゲーションペインで [Getting started] を選択し
ます。ウィザードを使用して、最初のデータ移行を作成できます。ウィザードプロセスの後で、移行のす
べてのプロセスを実行するレプリケーションのインスタンスを割り当て、ソースとターゲットデータベー
スを指定してから、どのテーブルとレプリケーションプロセスを使用するかを定義したタスクまたは一連
のタスクを作成します。 AWS DMS は、レプリケーションのインスタンスを作成し、移行中のデータでタ
スクを実行します。
または、ナビゲーションペインから項目を選択して、AWS DMS を使用したデータベース移行の各コン
ポーネントを作成することもできます。データベース移行では、以下の操作を行う必要があります。
API Version API バージョン 2016-01-01
23
AWS Database Migration Service ユーザーガイド
ステップ 1: [Welcome]
• 「AWS DMS を使用するためのセットアップ (p. 18)」で概説しているタスクを完了する
• 移行のすべてのプロセスを実行するレプリケーションインスタンスを割り当てる
• ソースとターゲットのデータベースエンドポイントを指定する
• 使用するテーブルとレプリケーションプロセスを定義するタスクまたはタスクセットを作成する
ステップ 1: [Welcome]
AWS DMS コンソールウィザードを使用してデータベース移行を開始した場合は、AWS DMS を使用した
データベース移行のプロセスを説明する [Welcome] ページが表示されます。
コンソールの [Welcome] ページからデータベースの移行を開始するには
•
[Next] を選択します。
ステップ 2: レプリケーションのインスタンスを作
成する
データベースの移行の最初のタスクは、割り当てるタスクを実行するのに十分なストレージと処理能力を
持つレプリケーションのインスタンスを作成し、ソースデータベースからターゲットデータベースにデー
タを移行することです。 このインスタンスの必要なサイズは、移行する必要のあるデータの量、および、
インスタンスが実行するタスクにより異なります。 レプリケーションインスタンスの詳細については、
「AWS Database Migration Service のレプリケーションインスタンス (p. 7)」を参照してください。
以下の手順では、AWS DMS コンソールウィザードを選択したことを前提とします。この手順は、AWS
DMS コンソールのナビゲーションペインで [Replication instances]、[Create replication instance] の順に選
択することも実行できます。
AWS コンソールを使用してレプリケーションインスタンスを作成するには
1.
[Create replication instance] ページで、レプリケーションのインスタンス情報を指定します。 次の表
で設定について説明します。
使用するオプション
操作
名前
8 ~ 16 の印刷可能な ASCII 文字 (/、"、@ を除く) を含む
レプリケーションインスタンス名を入力します。 名前は、
選択したリージョンのアカウントで一意でなければなり
ません。わかりやすい名前にするには、リージョンや実行
中のタスクなどの情報を名前に含めることができます (例:
west2-mysql2mysql-instance1)。
説明
レプリケーションインスタンスの簡単な説明を入力しま
す。
インスタンスクラス
移行に必要な設定を使用してインスタンスのクラスを選択
します。 正常に移行を完了するために、インスタンスに
は十分なストレージ、ネットワーク、処理能力が必要であ
ることに注意してください。 移行に最適なインスタンスの
クラスを決定する方法に関する詳細については、「AWS
Database Migration Service のレプリケーションインスタ
ンス (p. 7)」を参照してください。
API Version API バージョン 2016-01-01
24
AWS Database Migration Service ユーザーガイド
ステップ 2: レプリケーションのインスタンスを作成する
使用するオプション
操作
VPC
使用する Amazon Virtual Private Cloud (Amazon VPC) を
選択します。 ソースまたはターゲットデータベースが
VPC にある場合、その VPC を選択します。 ソースまた
はターゲットデータベースが別の VPC にある場合、それ
らが共にパブリックサブネットにあり、パブリックにアク
セス可能であることを確認してから、レプリケーションイ
ンスタンスが配置される VPC を選択します。 レプリケー
ションインスタンスが、ソース VPC のデータにアクセス
できるようにする必要があります。 ソースもターゲット
データベースも VPC にない場合は、レプリケーションイ
ンスタンスを配置する VPC を選択します。
マルチ AZ
オプションのパラメータを使用して、フェイルオーバー
のサポート用に別のアベイラビリティーゾーンにレプリ
ケーションインスタンスのスタンバイレプリカを作成しま
す。 変更データキャプチャ (CDC) または、進行中のレプ
リケーションを使用する場合は、このオプションを有効に
する必要があります。
パブリックアクセス可能
レプリケーションインスタンスをインターネットからアク
セス可能にする場合は、このオプションを選択します。
2.
必要がある場合は、[Advanced] タブを選択して、次に示す通り、ネットワークおよび暗号化設定の値
を設定します。
3.
追加設定を指定します。 次の表で設定について説明します。
使用するオプション
操作
Allocated storage (GB)
ストレージは主に、ログファイルと、キャッシュされたト
ランザクションで消費されます。キャッシュされたトラン
ザクションでは、ストレージは、キャッシュされたトラン
ザクションをディスクに書き込む必要がある場合にのみ使
用されます。そのため、AWS DMS では大量のストレージ
は使用されませんが、次のような場合は例外です。
• 膨大なトランザクションをロードする、サイズの大きな
テーブル。サイズの大きなテーブルをロードするには時
間がかかります。そのため、サイズの大きなテーブルを
ロードする間、キャッシュされたトランザクションが書
き込まれる可能性が高くなります。
• キャッシュされたトランザクションをロードする前に停
止するよう設定されているタスク。この場合、すべての
テーブルのロードが完了するまで、すべてのトランザ
クションがキャッシュされます。この設定では、キャッ
シュされたトランザクションにより、かなりの量のスト
レージが消費されることがあります。
• Amazon Redshift にロードされるテーブルを使用する設
定になっているタスク。ただし、Aurora がターゲットの
ときは、この設定は問題にはなりません。
ほとんどの場合、ストレージのデフォルトの割り当てで十
分です。ただし、ストレージ関連のメトリクスに注意を払
い、デフォルトの割り当てよりも消費量が多い場合はスト
レージを拡張することをおすすめします。
API Version API バージョン 2016-01-01
25
AWS Database Migration Service ユーザーガイド
ステップ 3: データベースエンドポイントを指定
4.
使用するオプション
操作
レプリケーションサブネットグループ
レプリケーションインスタンスを作成する選択した VPC
でレプリケーションサブネットグループを選択します。
ソースデータベースが VPC にある場合は、レプリケー
ションインスタンスの場所として、ソースデータベースを
含むサブネットグループを選択します。 レプリケーション
サブネットグループの詳細については、「レプリケーショ
ンサブネットグループの作成 (p. 10)」を参照してくださ
い。
アベイラビリティーゾーン
ソースデータベースが配置されているアベイラビリティー
ゾーンを選択します。
VPC セキュリティグループ
レプリケーションのインスタンスが VPC 内で作成されま
す。 ソースデータベースが VPC にある場合は、データ
ベースが存在する DB インスタンスへのアクセス権を提供
する VPC セキュリティグループを選択します。
KMS マスターキー
使用する暗号化キーを選択して、レプリケーションのスト
レージと接続情報を暗号化します。 (デフォルト) aws/dms
を選択する場合、アカウントおよびリージョンに関連付け
られたデフォルトの AWS Key Management Service (AWS
KMS) キーが使用されます。 暗号化キーの使用の詳細につ
いては、「AWS Database Migration Service の暗号化キー
の設定 (p. 41)」を参照してください。
[Next] を選択します。
ステップ 3: データベースエンドポイントを指定
レプリケーションのインスタンスが作成される間、ソースおよびターゲットデータベースを指定できま
す。 ソースおよびターゲットデータベースには、Amazon Elastic Compute Cloud (Amazon EC2) インスタ
ンス、Amazon Relational Database Service (Amazon RDS) DB インスタンス、またはオンプレミスデータ
ベースを使用できます。
以下の手順では、AWS DMS コンソールウィザードを選択したことを前提とします。この手順は、AWS
DMS コンソールのナビゲーションペインで [Endpoints]、[Create endpoint] の順に選択することでも実行
できます。コンソールウィザードを使用するときは、ソースエンドポイントとターゲットエンドポイント
の両方を同じページで作成します。コンソールウィザードを使用しないときは、各エンドポイントを個別
に作成します。
AWS コンソールを使用して、ソースまたはターゲットデータベースエンドポイントを指定するに
は
1.
[ソースおよびターゲットデータベースエンドポイントの接続] ページで、ソースまたはターゲット
データベースの接続情報を指定します。 次の表で設定について説明します。
使用するオプション
操作
エンドポイント識別子
エンドポイントを識別するのに使用する名前を入力しま
す。 名前に、oracle-source または PostgreSQL-target
などのエンドポイントの種類を含めることができます。 名
前はすべてのレプリケーションインスタンスに対して一意
である必要があります。
API Version API バージョン 2016-01-01
26
AWS Database Migration Service ユーザーガイド
ステップ 4: タスクを作成する
2.
使用するオプション
操作
ソースエンジンとターゲットエンジン
エンドポイントであるデータベースエンジンのタイプを選
択します。
サーバー名
サーバー名を入力します。 オンプレミスデータベースの
場合、IP アドレスまたはパブリックホスト名にすること
ができます。 Amazon RDS DB インスタンスの場合、DB
インスタンスのエンドポイント (DNS 名) とすることが
できます。たとえば、mysqlsrvinst.abcd12345678.uswest-2.rds.amazonaws.com とします。
ポート
データベースが使用するポートを入力します。
SSL モード
このエンドポイントの接続暗号化を有効にする場合
は、SSL モードを選択します。 選択したモードにより、
証明書、およびサーバー証明書情報の提供を求められるこ
とがあります。
ユーザー名
データ移行を許可するために必要な権限を持つユーザー名
を入力します。 必要な権限の詳細については、このユー
ザーガイドの「ソースまたはターゲットデータベースエン
ジンに対するセキュリティセクション」を参照してくださ
い。
パスワード
必要な権限のあるアカウントのパスワードを入力します。
パスワード内に特殊文字 ("+" や "&" など) を使用する場合
は、パスワード全体を中かっこ "{}" で囲みます。
必要がある場合は、次に示す通り、[Advanced] タブを選択して、接続文字列および暗号化キーの値を
設定します。 [テストの実行] を選択して、エンドポイントの接続をテストできます。
使用するオプション
操作
追加の接続属性
追加の接続パラメータをここに入力します。 追加の接続属
性の詳細については、「AWS Database Migration Service
での追加の接続属性の使用 (p. 152)」を参照してくださ
い。
KMS マスターキー
使用する暗号化キーを選択して、レプリケーションのスト
レージと接続情報を暗号化します。 (デフォルト) aws/dms
を選択する場合、アカウントおよびリージョンに関連付け
られたデフォルトの AWS Key Management Service (AWS
KMS) キーが使用されます。 暗号化キーの使用の詳細につ
いては、「AWS Database Migration Service の暗号化キー
の設定 (p. 41)」を参照してください。
ステップ 4: タスクを作成する
タスクを作成して、移行するテーブルを指定し、ターゲットスキーマを使用してデータをマッピングし、
ターゲットデータベースに新しいテーブルを作成します。 タスク作成の一環として、移行のタイプ (既存
のデータの移行、既存のデータの移行と継続的な変更のレプリケート、または、データ変更のみのレプリ
ケート) を選択できます。
API Version API バージョン 2016-01-01
27
AWS Database Migration Service ユーザーガイド
ステップ 4: タスクを作成する
AWS DMS を使用して、ソースデータベースとターゲットデータベース間のデータの正確なマッピングを
指定できます。 マッピングを指定する前に、ソースデータベースとターゲットデータベースのデータ型
マッピングのドキュメントセクションを必ず確認してください。
[Create task] ページでタスク情報の指定が完了するとすぐに、タスクを開始することができます。また
は、タスク情報の指定が完了したら、[Dashboard] ページからタスクを開始することもできます。
以下の手順では、AWS DMS コンソールウィザードを選択し、コンソールウィザードを使用してレプリ
ケーションインスタンスの情報とエンドポイントを指定したことを前提とします。この手順は、AWS
DMS コンソールのナビゲーションペインで [Tasks]、[Create task] の順に選択することも実行できます。
移行タスクを作成するには
1.
2.
[Create Task] ページで、タスクオプションを指定します。 次の表で設定について説明します。
使用するオプション
操作
タスク名
タスクの名前を入力します。
タスクの説明
タスクの説明を入力します。
ソースエンドポイント
使用するソースエンドポイントを表示します。
ターゲットエンドポイント
使用するターゲットエンドポイントを表示します。
レプリケーションインスタンス
使用するレプリケーションインスタンスを表示します。
移行タイプ
使用する移行方法を選択します。 既存のデータのみをター
ゲットデータベースへ移行するか、移行したデータに加え
て継続的な変更もターゲットデータベースに送信するかを
選択できます。
作成時にタスクを開始
このオプションが選択されていると、タスクは作成直後に
始まります。
次に示すように、[Task Settings] タブを選択して、ターゲットテーブルの値、LOB サポートを指定し
て、ログ作成を有効にします。 表示されるタスク設定は、選択した移行タイプの値によって異なりま
す。 たとえば、[既存のデータの移行] を選択すると、次のオプションが表示されます。
使用するオプション
操作
ターゲットテーブル作成モード
何もしない - ターゲットテーブルのデータとメタデータは
変更されません。
ターゲット上のテーブルを削除 - テーブルは削除され、代
わりに新しいテーブルが作成されます。
切り捨て - テーブルは、テーブルのメタデータに影響を与
えないで切り捨てられます。
レプリケーションに LOB 列を含める
LOB 列を含めない - LOB 列は移行対象から除外されま
す。
完全 LOB モード - サイズに関係なく LOB 全体を移行し
ます。 LOB は、LOB チャンクサイズによって制御され
るチャンクの単位で移行されます。 この方法は制限付き
LOB モードを使用するよりも低速です。
API Version API バージョン 2016-01-01
28
AWS Database Migration Service ユーザーガイド
ステップ 4: タスクを作成する
使用するオプション
操作
制限付き LOB モード - LOB を「最大 LOB サイズ」まで切
り詰めます。この方法は完全 LOB モードを使用するより
も高速です。
AWS DMS での LOB のサポートの詳細については、
「ソースデータベースでの LOB のサポート (p. 16)」を参
照してください。
最大 LOB サイズ (KB)
制限付き LOB モードでは、最大 LOB サイズの設定を超え
る LOB 列は指定した最大 LOB サイズまで切り捨てられま
す。
ログ作成の有効化
Amazon CloudWatch でログ作成を有効にします。
[既存のデータの移行とレプリケート] を [移行タイプ] で選択した場合、次のオプションが表示されま
す。
使用するオプション
操作
ターゲットテーブル作成モード
何もしない - ターゲットテーブルのデータとメタデータは
変更されません。
ターゲット上のテーブルを削除 - テーブルは削除され、代
わりに新しいテーブルが作成されます。
切り捨て - テーブルは、テーブルのメタデータに影響を与
えないで切り捨てられます。
全ロードの完了後にタスクを停止する
停止しない - タスクを停止しないで、キャッシュされた変
更をすぐに適用したら、そのまま続行します。
キャッシュされた変更を適用する前に停止する - キャッ
シュされた変更を適用する前に、タスクを停止します。 こ
れにより、変更の適用を高速化できるセカンダリインデッ
クスを追加できます。
キャッシュされた変更を適用した後に停止する - キャッ
シュされた変更を適用した後に、タスクを停止します。 こ
れにより、外部キーやトリガーなどを追加できますが、ト
ランザクショナルな適用を使用する場合のみです。
レプリケーションに LOB 列を含める
LOB 列を含めない - LOB 列は移行対象から除外されま
す。
完全 LOB モード - サイズに関係なく LOB 全体を移行し
ます。 LOB は、LOB チャンクサイズによって制御され
るチャンクの単位で移行されます。 この方法は制限付き
LOB モードを使用するよりも低速です。
制限付き LOB モード - LOB を「最大 LOB サイズ」まで切
り詰めます。この方法は完全 LOB モードを使用するより
も高速です。
API Version API バージョン 2016-01-01
29
AWS Database Migration Service ユーザーガイド
タスクをモニタリングする
使用するオプション
操作
最大 LOB サイズ (KB)
制限付き LOB モードでは、最大 LOB サイズの設定を超え
る LOB 列は指定した最大 LOB サイズまで切り捨てられま
す。
ログ作成の有効化
Amazon CloudWatch でログ作成を有効にします。
3.
次に示す通り、[テーブルマッピング] タブを選択して、スキーママッピングの値およびマッピング方
法を設定します。 [カスタム] を選択した場合、ターゲットスキーマとテーブル値を指定できます。
テーブルマッピングの詳細については、「AWS Database Migration Service タスクによるテーブル
マッピングの使用データの選択とフィルタ (p. 97)」を参照してください。
4.
タスクの設定を完了したら、[タスクの作成] を選択します。
タスクをモニタリングする
作成時に、[作成時にタスクを開始] を選択した場合、タスクは、[タスクの作成] を選択するとすぐにデー
タの移行を開始します。 AWS マネジメントコンソールから実行中のタスクを選択することにより、タス
クの統計とモニタリング情報を表示できます。 次のスクリーンショットはデータベースの移行のテーブル
の統計を表示します。 モニタリングの詳細については、「AWS Database Migration Service タスクのモニ
タリング (p. 108)」を参照してください。
API Version API バージョン 2016-01-01
30
AWS Database Migration Service ユーザーガイド
パフォーマンスの向上
ベストプラクティス
(AWS Database Migration Service) AWS DMS を最も効果的に使用するためには、データ移行の最も効率
的な方法に関するこのセクションの推奨事項を参照してください。
トピック
• AWS Database Migration Service 移行のパフォーマンスの向上 (p. 31)
• レプリケーションインスタンス用に最適なサイズを決定する (p. 32)
• ソースデータベースのロードを削減する (p. 33)
• タスクログを使用して、移行の問題のトラブルシューティングをする (p. 33)
• スキーマ変換 (p. 33)
• ラージバイナリオブジェクト (LOB) の移行 (p. 34)
• 継続的なレプリケーション (p. 34)
• Oracle ターゲットのユーザー/スキーマの変更 (p. 35)
AWS Database Migration Service 移行のパフォーマ
ンスの向上
いくつかの要因が AWS DMS 移行のパフォーマンスに影響を与えます。
• ソースのリソース可用性
• 利用可能なネットワークスループット
• レプリケーションサーバーのリソース容量
• ターゲットの変更取り込み機能
• ソースデータのタイプとディストリビューション
• 移行するオブジェクトの数
テストでは、最適な条件のもとで約 12 ~ 13 時間で、1 テラバイトのデータを移行しました。 これらの最
適な条件には、Amazon Elastic Compute Cloud (Amazon EC2) で実行される Amazon Relational Database
Service (Amazon RDS) のソースデータベース、および Amazon RDS のターゲットデータベースの使用が
含まれます。 ソースデータベースには、最大 250 GB のデータを含むいくつかの大きなテーブルに比較的
均等に分散されたデータの典型的な量が含まれます。
API Version API バージョン 2016-01-01
31
AWS Database Migration Service ユーザーガイド
レプリケーションインスタンスのサイズ設定
移行のパフォーマンスは、その途中で、1 つ以上のボトルネックによって制限される場合があります。 次
のリストは、パフォーマンスを高めるためにできることをいくつか示しています。
複数のテーブルを並列的にロードする
デフォルトでは AWS DMS は、一度に 8 つのテーブルをロードします。 dms.c4.xlarge またはより大
きなインスタンスなどの大量レプリケーションサーバーを使用する際、これを少し増やすことにより
パフォーマンスがある程度向上する場合があります。 ただし、ある時点で並列処理を増やすことによ
りパフォーマンスが低下します。 レプリケーションサーバーが、dms.t2.medium など、比較的小さい
場合は、この数を減らします。
ターゲットのボトルネックを削除する
移行中に、ターゲットデータベースの書き込みリソースに対して相互に競合する可能性があるプロセ
スの削除を試行します。 このプロセスの一環として、不要なトリガーと認証、セカンダリインデック
スを無効にします。 Amazon RDS データベースに移行する場合、カットオーバーの準備ができるまで
は、ターゲットのバックアップとマルチ AZ を無効にすることをお勧めします。 同様に、Amazon 以
外の RDS システムに移行する場合、カットオーバーまではターゲットのロギングを無効にすること
をお勧めします。
複数のタスクを使用する
時には、単一の移行のために複数のタスクを使用することでパフォーマンスが向上します。 共通のト
ランザクションに関与しないテーブルのセットがある場合、複数のタスクに移行を分割できる場合が
あります。 トランザクションの整合性はタスク内に維持されます。したがって、個別のタスクのテー
ブルが、共通のトランザクションに関与しないことが重要です。 また、各タスクはそれぞれ独立して
トランザクションのストリームを読み込みため、ソースシステムに過度のストレスをかけないよう注
意が必要です。
LOB パフォーマンスの向上
LOB の移行の改善については、「ラージバイナリオブジェクト (LOB) の移行 (p. 34)」を参照して
ください。
変更処理の最適化
デフォルトでは、AWS DMS は、トランザクションの完全性を維持する [トランザクションモード]
で、変更を処理します。 トランザクションの完全性を一時的に失効できる場合は、代わりに [最適化
バッチ] オプションを使用できます。 このオプションでは、効率的にトランザクションがグループ化
され、効率化のためにバッチに適用します。 [最適化バッチ] オプションを使用することは、ほぼ確実
に参照整合性制約に違反するため、移行プロセス中はこれらを無効にし、カットオーバープロセスの
一環として、再度有効にする必要があることに注意してください。
レプリケーションインスタンス用に最適なサイズを
決定する
レプリケーションインスタンスの正しいサイズの決定はいくつかの要因によって変わります。 以下の情報
は、移行プロセスおよびメモリやストレージがどのように使用されるかを理解するのに役立ちます。
テーブルは、個別にロードされます。デフォルトでは、一度に 8 つのテーブルがロードされます。 各テー
ブルのロード中、そのテーブルのトランザクションはメモリにキャッシュされます。 使用可能なメモリを
使用すると、トランザクションはディスクにキャッシュされます。 そのようなトランザクションのテーブ
ルをロードすると、そのテーブルのトランザクションとそれ以降のトランザクションはテーブルにすぐに
適用されます。
すべてのテーブルがロードされ、個々のテーブルの未処理のキャッシュされたトランザクションすべてが
AWS DMS によって適用される場合、ソーステーブルとターゲットテーブルが同期されます。 この時点で
は、AWS DMS は、トランザクションの整合性を維持する方法でトランザクションが適用されます。 (ご
API Version API バージョン 2016-01-01
32
AWS Database Migration Service ユーザーガイド
ソースデータベースのロードを削減する
覧のとおり、テーブル全ロード時、および個々のテーブルのキャッシュしたトランザクションが適用され
ている間は同期されていません。)
前の説明から、キャッシュされたトランザクションを保持するのに必要なのは、比較的小さいディスク領
域であることが分かります。 特定の移行に使用するディスク領域の量は以下の要因によって決まります。
• テーブルサイズ - 大きいテーブルでは、ロードに時間がかかり、そのため、テーブルがロードされるま
でこれらのテーブルのトランザクションはキャッシュされる必要があります。 テーブルにロードされた
ら、これらのキャッシュされたトランザクションが適用されて、ディスクでは保持されなくなります。
• データ操作言語 (DML) のアクティビティ - 使用中のデータベースはさらにトランザクションを生成しま
す。 これらのトランザクションはテーブルがロードされるまでキャッシュされる必要があります。 すべ
てのテーブルがロードされるまで、テーブルがロードされると直ちに個々のテーブルにトランザクショ
ンが適用されることに注意してください。 この時点で AWS DMS は、すべてのトランザクションを適用
します。
• トランザクションのサイズ - 大規模なトランザクションによって生成された–データはキャッシュされる
必要があります。 テーブルが全ロードプロセス中に 10 GB のトランザクションを蓄積する場合、それ
らのトランザクションは全ロードが完了するまでキャッシュされる必要があります。
• 移行の合計サイズ - –大きな移行には時間がかかり、生成されたログファイルは大きくなります。
• タスクの数 - さらに多くのタスクとキャッシュが必要となり、さらに多くのログファイルが生成されま
す。
事例証拠は、ログファイルが AWS DMS に必要な領域の大半を使用することを示しています。 デフォル
トのストレージ設定は、通常は十分です。 複数のタスクを実行するレプリケーションインスタンスには、
さらに多くのディスク容量が必要な場合があります。さらに、データベースに大きいアクティブなテーブ
ルが含まれる場合は、全ロード中にディスクにキャッシュされるトランザクションを考慮する必要があり
ます。たとえば、ロードに 24 時間かかり、1 時間あたり 2 GB のトランザクションが発生する場合は、
キャッシュされるトランザクションに対応するために 48 GB の空き領域があることを確認します。
ソースデータベースのロードを削減する
移行中、AWS DMS では、並行処理される各テーブルに対してソーステーブルのテーブル全体のスキャン
が実行されます。 また、各タスクは変更情報のためソースの定期的なクエリを実行します。 変更処理を実
行するにはデータベース変更ログに書き込まれたデータの量を増やすことが必要な場合もあります。 ソー
スデータベースに過度に負荷を負わせている場合は、移行のタスクの数または、タスクごとのテーブルの
数 (またはその両方) を減らすことができます。 ソースに負荷を追加しない場合は、ソースシステムの読み
込みコピーから移行を実行することをご検討ください。 ただし、読み込みコピーを使用するとレプリケー
ションの遅延が増加します。
タスクログを使用して、移行の問題のトラブル
シューティングをする
DMS で、現在タスクログでのみ表示可能な問題 (警告またはエラー) が発生する場合があります。 特に、
データ切り捨て問題または外部キー違反による行の拒否は、現在はタスクログを介してのみ表示されま
す。 そのため、データベースを移行するときは、タスクログを確認することが重要です。
スキーマ変換
AWS DMS は、スキーマまたはコード変換を実行しません。ソースとターゲットが同じデータベースエン
ジンの場合、Oracle SQL Developer、MySQL Workbench、または pgAdmin III などのツールを使用して、
API Version API バージョン 2016-01-01
33
AWS Database Migration Service ユーザーガイド
ラージバイナリオブジェクト (LOB) の移行
スキーマを起動できます。異なるデータベースエンジンに既存のスキーマを変換する場合、AWS スキーマ
変換ツールを使用できます。このツールは、ターゲットスキーマを作成でき、スキーマ全体 (テーブル、
インデックス、ビューなど) を生成および作成することもできます。このツールを使用して PL/SQL また
は TSQL を PgSQL や他の形式に変換することもできます。AWS スキーマ変換ツールの詳細については、
「AWS スキーマ変換ツール」を参照してください。
ラージバイナリオブジェクト (LOB) の移行
LOB データを移行することは、2 段階で行われます。 まず、LOB 列の行が LOB データなしでターゲッ
トテーブルに作成されます。 次に、ターゲットテーブルの行は LOB データで更新されます。 つまり、
移行中、テーブルの LOB 列はターゲットデータベースで NULLABLE になっている必要があることを意
味します。 AWS DMS がターゲットテーブルを作成する場合は、ソーステーブルで NULLABLE でなくて
も、LOB 列は NULLABLE に設定されます。 Import/Export などの他のメカニズムを使用してターゲット
テーブルを作成した場合、LOB 列が NULLABLE である必要があります。
デフォルトで、レプリケーションタスクは [Full LOB] サポートモードで実行するように設定されます。 こ
の設定がテーブルのすべての LOB を移動する場合、プロセスも遅くなります。 移行タスクの実行速度を
向上するには、新しいタスクを作成し、「制限付きサイズ LOB」 モードを使用するためにタスクを設定す
る必要があります。 このモードを選択した場合、MAX LOB パラメータの設定が正しいことを確認する必
要があります。 このパラメータは、すべてテーブルに対して最大の LOB サイズに設定する必要がありま
す。
可能であれば、最適なパフォーマンスのために、[limited LOB mode] パラメータを使用します。 いくつか
の大きな LOB と主に小さな LOB を含むテーブルがある場合は、移行する前にテーブルを分割し、移行の
一環としてテーブルのフラグメントを統合することを検討してください。
AWS Database Migration Service は、大きなオブジェクトのデータ型 (BLOB、CLOB、NCLOB) の使用を
完全にサポートするようになりました。 以下のソースエンドポイントは、完全に LOB サポートされてい
ます。
• Oracle
• Microsoft SQL Server
• ODBC
以下のターゲットエンドポイントは、完全に LOB サポートされています。
• Oracle
• Microsoft SQL Server
以下のターゲットエンドポイントは、制限付きの LOB サポートをされています。 これらのターゲットエ
ンドポイントに無制限の LOB サイズは使用できません。
• Amazon Redshift
完全な LOB サポートがあるエンドポイントについては、LOB データ型にサイズ制限を設定できます。
継続的なレプリケーション
AWS DMS は、制限されたデータ定義言語 (DDL) のみレプリケートしますが、包括的な継続的データレプ
リケーションを提供します。 AWS DMS は、インデックス、ユーザー、権限、ストアドプロシージャ、お
よびテーブルデータに直接関係しない他のデータベースの変更などの項目を反映しません。
API Version API バージョン 2016-01-01
34
AWS Database Migration Service ユーザーガイド
Oracle ターゲットのユーザー/スキーマの変更
継続的なレプリケーションを使用する場合は、レプリケーションインスタンスでマルチ AZ オプションを
有効にする必要があります。 マルチ AZ オプションは、レプリケーションインスタンスに対して高可用性
とフフェイルオーバーサポートを提供します。
Oracle ターゲットのユーザー/スキーマの変更
Oracle をターゲットとして使用するときは、ターゲット接続に使用されるスキーマ/ユーザーにデータを移
行することを前提とします。別のスキーマにデータを移行する場合は、スキーマ変換を使用する必要があ
ります。たとえば、ターゲットエンドポイントがユーザー RDSMASTER に接続し、ユーザー PERFDATA
から PERFDATA に移行する場合は、以下のように変換を作成する必要があります。
{
"rule-type": "transformation",
"rule-id": "2",
"rule-name": "2",
"rule-action": "rename",
"rule-target": "schema",
"object-locator": {
"schema-name": "PERFDATA"
},
"value": "PERFDATA"
}
変換の詳細については、「 JSON を使用した選択および変換テーブルマッピング (p. 98)」を参照して
ください。
API Version API バージョン 2016-01-01
35
AWS Database Migration Service ユーザーガイド
AWS DMS を使用するのに必要な IAM アクセス許可
セキュリティ
AWS Database Migration Service (AWS DMS) は、複数のプロセスを使用して移行中にデータを保護し
ます。このサービスは、AWS アカウントに固有の AWS Key Management Service (KMS) キーを使用し
て、レプリケーションインスタンスにより使用されるストレージとエンドポイント接続情報を暗号化しま
す。Secure Sockets Layer (SSL) がサポートされています。AWS Identity and Access Management (IAM)
ユーザーとしてサインインしている場合、AWS Database Migration Service を使用するには適切なアクセ
ス権限も必要です。
レプリケーションインスタンスで使用する Amazon Virtual Private Cloud (Amazon VPC) サービスをベース
とする VPC は、すべてのポートですべてのトラフィックが VPC を退出 (送信) するのを許可するルールを
持つセキュリティグループに関連付ける必要があります。このアプローチでは、ソースおよびターゲット
データベースエンドポイントで適切な受信が有効になっている限り、レプリケーションインスタンスから
それらのエンドポイントへの通信が許可されます。
データベース移行ログを表示する場合、使用している IAM ロールの適切な Amazon CloudWatch ログアク
セス許可が必要になります。
トピック
• AWS DMS を使用するのに必要な IAM アクセス許可 (p. 36)
• AWS CLI と AWS DMS API で使用する IAM ロールの作成 (p. 38)
• AWS Database Migration Service の暗号化キーの設定 (p. 41)
• AWS Database Migration Service のネットワークセキュリティ (p. 42)
• AWS Database Migration Service での SSL の使用 (p. 43)
• データベースのパスワードの変更 (p. 50)
AWS DMS を使用するのに必要な IAM アクセス許
可
AWS DMS を使用するには、特定の IAM アクセス許可と IAM ロールを使用する必要があります。IAM
ユーザーとしてサインインしており、AWS DMS を使用したい場合、アカウント管理者が、AWS DMS を
使用する IAM ユーザー、グループ、またはロールに次のポリシーをアタッチする必要があります。IAM ア
クセス許可の詳細については、『IAM ユーザーガイド』を参照してください。
以下のアクセス許可セットでは、AWS DMS へのアクセス権と、AWS KMS、IAM、Amazon Elastic
Compute Cloud (Amazon EC2)、Amazon CloudWatch などの他の Amazon サービスが必要とする特定の
API Version API バージョン 2016-01-01
36
AWS Database Migration Service ユーザーガイド
AWS DMS を使用するのに必要な IAM アクセス許可
アクションのアクセス許可も付与されます。CloudWatch は、AWS DMS の移行をリアルタイムでモニタ
リングし、移行の進行状況を示すメトリクスを収集および追跡します。CloudWatch ログを使用すると、
タスクの問題をデバッグできます。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "dms:*",
"Resource": "*"
},
{
"Effect": "Allow",
"Action": [
"kms:ListAliases",
"kms:DescribeKey"
],
"Resource": "*"
},
{
"Effect": "Allow",
"Action": [
"iam:GetRole",
"iam:PassRole",
"iam:CreateRole",
"iam:AttachRolePolicy"
],
"Resource": "*"
},
{
"Effect": "Allow",
"Action": [
"ec2:DescribeVpcs",
"ec2:DescribeInternetGateways",
"ec2:DescribeAvailabilityZones",
"ec2:DescribeSubnets",
"ec2:DescribeSecurityGroups",
"ec2:ModifyNetworkInterfaceAttribute"
],
"Resource": "*"
},
{
"Effect": "Allow",
"Action": [
"cloudwatch:Get*",
"cloudwatch:List*"
],
"Resource": "*"
},
{
"Effect": "Allow",
"Action": [
"logs:DescribeLogGroups",
"logs:DescribeLogStreams",
"logs:FilterLogEvents",
"logs:GetLogEvents"
],
"Resource": "*"
},
{
"Effect": "Allow",
"Action": [
"redshift:Describe*",
API Version API バージョン 2016-01-01
37
AWS Database Migration Service ユーザーガイド
AWS CLI と AWS DMS API で使用する IAM ロールの作成
"redshift:ModifyClusterIamRoles"
],
"Resource": "*"
}
]
}
AWS DMS コンソールは、AWS DMS コンソールを使用する際に AWS アカウントに自動的にアタッチさ
れる複数のロールを作成します。AWS Command Line Interface (AWS CLI) または AWS DMS API を移行
に使用する場合、これらのロールをアカウントに追加する必要があります。これらのロールの追加の詳細
については、「AWS CLI と AWS DMS API で使用する IAM ロールの作成 (p. 38)」を参照してくださ
い。
AWS CLI と AWS DMS API で使用する IAM ロール
の作成
AWS CLI または AWS DMS API をデータベース移行に使用する場合、AWS DMS の機能を使用する前に 3
つの IAM ロールを AWS アカウントに追加する必要があります。これらのロールのうち 2 つは dms-vpcrole と dms-cloudwatch-logs-role です。Amazon Redshift をターゲットデータベースとして使用してい
る場合、IAM ロール dms-access-for-endpoint も AWS アカウントに追加する必要があります。
管理ポリシーの更新は自動です。IAM ロールでカスタムポリシーを使用する場合、このドキュメントで管
理ポリシーの更新事項がないか定期的に確認してください。管理ポリシーの詳細は、get-policy コマンド
と get-policy-version コマンドを組み合わせて使用して表示できます。
たとえば、次の get-policy コマンドはロールの情報を取得します。
$ aws iam get-policy --policy-arn arn:aws:iam::aws:policy/service-role/
AmazonDMSVPCManagementRole
コマンドから返される情報は、次のとおりです。
{
"Policy": {
"PolicyName": "AmazonDMSVPCManagementRole",
"Description": "Provides access to manage VPC settings for AWS managed customer
configurations",
"CreateDate": "2015-11-18T16:33:19Z",
"AttachmentCount": 1,
"IsAttachable": true,
"PolicyId": "ANPAJHKIGMBQI4AEFFSYO",
"DefaultVersionId": "v3",
"Path": "/service-role/",
"Arn": "arn:aws:iam::aws:policy/service-role/AmazonDMSVPCManagementRole",
"UpdateDate": "2016-05-23T16:29:57Z"
}
}
次の get-policy-version コマンドは、ポリシー情報を取得します。
API Version API バージョン 2016-01-01
38
AWS Database Migration Service ユーザーガイド
AWS CLI と AWS DMS API で使用する IAM ロールの作成
$ aws iam get-policy-version --policy-arn arn:aws:iam::aws:policy/service-role/
AmazonDMSVPCManagementRole --version-id v3
コマンドから返される情報は、次のとおりです。
{
"PolicyVersion": {
"CreateDate": "2016-05-23T16:29:57Z",
"VersionId": "v3",
"Document": {
"Version": "2012-10-17",
"Statement": [
{
"Action": [
"ec2:CreateNetworkInterface",
"ec2:DescribeAvailabilityZones",
"ec2:DescribeInternetGateways",
"ec2:DescribeSecurityGroups",
"ec2:DescribeSubnets",
"ec2:DescribeVpcs",
"ec2:DeleteNetworkInterface",
"ec2:ModifyNetworkInterfaceAttribute"
],
"Resource": "*",
"Effect": "Allow"
}
]
},
"IsDefaultVersion": true
}
}
AmazonDMSCloudWatchLogsRole および AmazonDMSRedshiftS3Role 管理ポリシーの情報を取得する場合も
同じコマンドを使用できます。
Note
データベースの移行に AWS DMS コンソールを使用する場合、これらのロールは自動的に AWS
アカウントに追加されます。
次の手順では、dms-vpc-role、dms-cloudwatch-logs-role、および dms-access-for-endpoint の各 IAM
ロールを作成します。
AWS CLI または AWS DMS API で使用する dms-vpc-role IAM ロールを作成するには
1.
次の IAM ポリシーを含む JSON ファイルを作成します。JSON ファイルに
dmsAssumeRolePolicyDocument.json という名前を付けます。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "dms.amazonaws.com"
},
"Action": "sts:AssumeRole"
API Version API バージョン 2016-01-01
39
AWS Database Migration Service ユーザーガイド
AWS CLI と AWS DMS API で使用する IAM ロールの作成
}
]
}
AWS CLI で次のコマンドを使用してロールを作成します。
aws iam create-role --role-name dms-vpc-role --assume-role-policy-document file://
dmsAssumeRolePolicyDocument.json’
2.
次のコマンドを使用して AmazonDMSVPCManagementRole ポリシーを dms-vpc-role にアタッチしま
す。
aws iam attach-role-policy --role-name dms-vpc-role --policy-arn
arn:aws:iam::aws:policy/service-role/AmazonDMSVPCManagementRole
AWS CLI または AWS DMS API で使用する dms-cloudwatch-logs-role IAM ロールを作成するには
1.
次の IAM ポリシーを含む JSON ファイルを作成します。JSON ファイルに
dmsAssumeRolePolicyDocument2.json という名前を付けます。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "dms.amazonaws.com"
},
"Action": "sts:AssumeRole"
}
]
}
AWS CLI で次のコマンドを使用してロールを作成します。
aws iam create-role --role-name dms-cloudwatch-logs-role --assume-role-policy-document
file://dmsAssumeRolePolicyDocument2.json’
2.
次のコマンドを使用して AmazonDMSCloudWatchLogsRole ポリシーを dms-cloudwatch-logs-role に
アタッチします。
aws iam attach-role-policy --role-name dms-cloudwatch-logs-role --policy-arn
arn:aws:iam::aws:policy/service-role/AmazonDMSCloudWatchLogsRole
Amazon Redshift をターゲットデータベースとして使用する場合、IAM ロール dms-access-for-endpoint
を作成して Amazon S3 (S3) へのアクセスを可能にする必要があります。
API Version API バージョン 2016-01-01
40
AWS Database Migration Service ユーザーガイド
暗号化キーの設定
ターゲットデータベースとしての Amazon Redshift で使用する dms-access-for-endpoint IAM
ロールを作成するには
1.
次の IAM ポリシーを含む JSON ファイルを作成します。JSON ファイルに
dmsAssumeRolePolicyDocument3.json という名前を付けます。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "1",
"Effect": "Allow",
"Principal": {
"Service": "dms.amazonaws.com"
},
"Action": "sts:AssumeRole"
},
{
"Sid": "2",
"Effect": "Allow",
"Principal": {
"Service": "redshift.amazonaws.com"
},
"Action": "sts:AssumeRole"
}
]
}
2.
AWS CLI で次のコマンドを使用してロールを作成します。
aws iam create-role --role-name dms-access-for-endpoint --assume-role-policy-document
file://dmsAssumeRolePolicyDocument3.json
3.
次のコマンドを使用して AmazonDMSRedshiftS3Role ポリシーを dms-access-for-endpoint ロールに
アタッチします。
aws iam attach-role-policy --role-name dms-access-for-endpoint --policy-arn
arn:aws:iam::aws:policy/service-role/AmazonDMSRedshiftS3Role
AWS CLI または AWS DMS API を使用するための IAM ポリシーが設定されている必要があります。
AWS Database Migration Service の暗号化キーの設
定
AWS DMS は、レプリケーションインスタンスにより使用されるストレージと、エンドポイント接続情報
を暗号化します。レプリケーションインスタンスにより使用されるストレージを暗号化するため、AWS
DMS は AWS アカウントに固有のマスターキーを使用します。このマスターキーは、AWS KMS で表示
し、管理できます。ご使用のアカウント (aws/dms) のデフォルトのマスターキー を使用するか、ご自身で
作成するカスタムのマスターキーを使用することができます。既存の KMS 暗号化キーがある場合、暗号
化にそのキーを使用することもできます。
API Version API バージョン 2016-01-01
41
AWS Database Migration Service ユーザーガイド
AWS Database Migration Service
のネットワークセキュリティ
KMS キー識別子を指定して AWS DMS リソースを暗号化することにより、独自の暗号化キーを指定でき
ます。独自の暗号化キーを指定した場合、データベース移行の実行に使用されるユーザーアカウントが
そのキーにアクセスできる必要があります。独自の暗号化キーを作成して暗号化キーへのアクセスをユー
ザーに許可する方法の詳細については、『KMS 開発者ガイド』を参照してください。
カスタムキーを使用しており、かつ、AWS DMS に使用している IAM ユーザーアカウントがキー管理
者でない場合は、そのユーザーアカウントをそのキーの管理者にするか、CreateGrant アクセス権限
(kms:CreateGrant) を使用してそのユーザーアカウントにアクセス権限を付与する必要があります。キー
ユーザーへのアクセス権限の付与の詳細については、「キーユーザーに CMK の使用を許可する」を参照
してください。
KMS キー識別子を指定しない場合、AWS DMS はデフォルトの暗号化キーを使用します。KMS は、AWS
アカウント用に AWS DMS のデフォルトの暗号化キーを作成します。AWS アカウントには、AWS のリー
ジョンごとにデフォルトの暗号化キーがあります。
AWS DMS リソースの暗号化に使用されるキーを管理するには、KMS を使用します。KMS は、AWS マ
ネジメントコンソールのコンソールホームページで [Identity & Access Management] を選択し、ナビゲー
ションペインで [Encryption Keys] を選択することにより表示できます。KMS は、安全で可用性の高い
ハードウェアとソフトウェアを組み合わせて、クラウド向けに拡張されたキー管理システムを提供しま
す。KMS を使用して、暗号化キーを作成し、それらのキーの使用方法を制御するポリシーを定義できま
す。KMS は AWS CloudTrail をサポートしているため、キーの使用を監査して、キーが適切に使用されて
いることを確認できます。KMS キーは、AWS DMS や、Amazon RDS、Amazon Simple Storage Service
(Amazon S3)、Amazon Elastic Block Store (Amazon EBS) などのサポートされる AWS サービスと組み合
わせて使用できます。
特定の暗号化キーを使用して AWS DMS リソースを作成すると、それらのリソースの暗号化キーを変更す
ることはできません。AWS DMS リソースを作成する前に、必ず暗号化キー要件を調べてください。
AWS Database Migration Service のネットワークセ
キュリティ
AWS Database Migration Service を使用するときに作成するネットワークのセキュリティ要件は、ネット
ワークの構成方法によって異なります。AWS DMS のネットワークセキュリティの一般的なルールは次の
とおりです。
• レプリケーションインスタンスは、ソースとターゲットのエンドポイントにアクセスできる必要があり
ます。レプリケーションインスタンスのセキュリティグループには、データベースポートでデータベー
スエンドポイントへの送信をインスタンスに許可するネットワーク ACL またはルールが必要です。
• データベースエンドポイントには、レプリケーションインスタンスからの受信アクセスを許可するネッ
トワーク ACL およびセキュリティグループルールを含める必要があります。これは、構成に応じて、レ
プリケーションインスタンスのセキュリティグループ、プライベート IP アドレス、パブリック IP アド
レス、または NAT ゲートウェイのパブリックアドレスを使用して実現できます。
• ネットワークで VPN トンネルが使用されている場合、NAT ゲートウェイとして機能する EC2 インスタ
ンスは、レプリケーションインスタンスにそのゲートウェイを通じたトラフィックの送信を許可するセ
キュリティグループを使用する必要があります。
デフォルトでは、AWS DMS レプリケーションインスタンスにより使用される VPC セキュリティグルー
プに、すべてのポートで 0.0.0.0/0 への送信を許可するルールがあります。このセキュリティグループを
変更するか、独自のセキュリティグループを使用する場合、少なくとも、対応するデータベースポートで
ソースおよびターゲットエンドポイントへの送信が許可される必要があります。
データベース移行に使用できるネットワーク構成には、それぞれ固有のセキュリティ上の考慮事項があり
ます。
API Version API バージョン 2016-01-01
42
AWS Database Migration Service ユーザーガイド
AWS Database Migration Service での SSL の使用
• すべてのデータベース移行コンポーネントが 1 つの VPC にある設定 (p. 9) — エンドポイントにより使
用されるセキュリティグループは、データベースポートでレプリケーションインスタンスからの送信を
許可する必要があります。レプリケーションインスタンスによって使用されるセキュリティグループで
エンドポイントへの受信が許可されることを確認してください。または、エンドポイントにより使用さ
れるセキュリティグループに、レプリケーションインスタンスのプライベート IP アドレスにアクセスを
許可するセキュリティルールを作成できます。
• 2 つの VPC がある設定 (p. 9) — レプリケーションインスタンスにより使用されるセキュリティグループ
には、VPC の範囲とデータベースの DB ポートに関するルールが必要です。
• AWS Direct Connect または VPN を使用した VPC へのネットワークの設定 (p. 9) — VPC からオンプレ
ミス VPN へのトンネルに向かうトラフィックを許可する VPN トンネル。この設定では、特定の IP ア
ドレスまたは範囲に向かうトラフィックを、VPC からオンプレミス VPN へのトラフィックをブリッジ
できるホストに送信するルーティングルールが VPC に含まれています。この場合、レプリケーション
インスタンスのプライベート IP アドレスまたはセキュリティグループから NAT インスタンスへのトラ
フィックを許可する必要がある独自のセキュリティグループ設定が NAT ホストに含まれています。
• インターネットを使用した VPC へのネットワークの設定 (p. 10) — VPC セキュリティグループに
は、VPC に向かわないトラフィックをインターネットゲートウェイに送信するルーティングルールが含
まれている必要があります。この設定では、エンドポイントへ接続が、レプリケーションインスタンス
上のパブリック IP アドレスから行われているように見ます。
• VPC 内にない Amazon RDS DB インスタンスから VPC 内の DB インスタンスに ClassicLink を使用し
た設定 (p. 10) — ソースまたはターゲット Amazon RDS DB インスタンスが VPC 内になく、レプリケー
ションインスタンスが存在する VPC とセキュリティグループを共有していない場合、プロキシサーバー
を設定し、ClassicLink を使用してソースおよびターゲットアドレスに接続することができます。
• ソースエンドポイントがレプリケーションインスタンスにより使用されている VPC の外にあり、NAT
のゲートウェイを使用している — NAT 識別子 (nat-#####) を受け取る 1 つの Elastic Network Interface
にバインドされた 1 つの Elastic IP アドレスを使用する、ネットワークアドレス変換 (NAT) ゲートウェ
イを設定できます。インターネットゲートウェイではなくその NAT ゲートウェイへのデフォルトルート
が VPC に含まれている場合、レプリケーションインスタンスはインターネットゲートウェイのパブリッ
ク IP アドレスを使用してデータベースエンドポイントに接続しているように見えます。この場合、VPC
外のデータベースエンドポイントへの進入は、レプリケーションインスタンスのパブリック IP アドレス
ではなく NAT アドレスからの進入を許可する必要があります。
AWS Database Migration Service での SSL の使用
Secure Sockets Layer (SSL) を使用することで、ソースおよびターゲットエンドポイントへの接続を暗号
化できます。これを行うには、AWS DMS マネジメントコンソールまたは AWS DMS API を使用してエ
ンドポイントに証明書を割り当てます。AWS DMS コンソールを使用して証明書を管理することもできま
す。
Note
すべてのデータベースでは同じ方法で SSL が使用されるわけではありません。Amazon Redshift
エンドポイントではすでに SSL 接続が使用されているため、AWS DMS によりセットアップされ
た SSL 接続は必要ありません。Oracle エンドポイントには追加の手順が必要です。詳細について
は、「Oracle エンドポイントでの SSL のサポート (p. 46)」を参照してください。
トピック
• AWS Database Migration Service で SSL を使用する場合の制限 (p. 44)
• 証明書の管理 (p. 45)
• MySQL 互換、PostgreSQL、または SQL Server のエンドポイントでの SSL の有効化 (p. 45)
• Oracle エンドポイントでの SSL のサポート (p. 46)
エンドポイントに証明書を割り当てるには、ルート証明書を指定するか、エンドポイントにデプロイされ
るサーバー SSL 証明書の署名に使用された、ルートに導く (証明書バンドルとして) 中間 CA 証明書チェー
API Version API バージョン 2016-01-01
43
AWS Database Migration Service ユーザーガイド
AWS Database Migration Service
で SSL を使用する場合の制限
ンを指定します。証明書は、PEM 形式の X509 ファイルとしてのみ受け入れられます。証明書をインポー
トすると、エンドポイントにその証明書を指定するために使用できる Amazon リソースネーム (ARN) を受
け取ります。Amazon RDS を使用している場合、Amazon RDS によって提供されたルート CA と証明書
バンドルを https://s3.amazonaws.com/rds-downloads/rds-combined-ca-bundle.pem でダウンロードできま
す。
SSL 証明書認証に使用する SSL モードは、複数の中から選択できます。
• none – 接続は暗号化されません。このオプションは安全ではありませんが、必要なオーバーヘッドが小
さくなります。
• require – 接続は暗号化されます。このオプションは安全性が高まりますが、必要なオーバーヘッドが増
えます。
• verify-ca – 接続は暗号化されます。このオプションは安全性が高まりますが、必要なオーバーヘッドが
増えます。このオプションでは、サーバー証明書が認証されます。
• verify-full – 接続は暗号化されます。このオプションは安全性が高まりますが、必要なオーバーヘッドが
増えます。このオプションでは、サーバー証明書が認証され、サーバーのホスト名が証明書のホスト名
属性と一致することが確認されます。
すべての SSL モードがすべてのデータベースエンドポイントで機能するわけではありません。次の表は、
各データベースエンジンでサポートされている SSL モードを示しています。
SSL モー
ド
MySQL/MariaDB/
Amazon Aurora
Microsoft
SQL
Server
PostgreSQL Amazon
Redshift
Oracle
SAP ASE
none
デフォルト値
デフォルト
値
デフォルト
値
デフォル
ト値
デフォルト
値
デフォルト
値
require
サポート外
サポート対
象
サポート対
象
SSL が有
効でない
サポート外
SSL が有
効でない
verify-ca
サポート対象
サポート外
サポート外
SSL が有
効でない
サポート対
象
SSL が有
効でない
verify-full
サポート対象
サポート対
象
サポート外
SSL が有
効でない
サポート外
SSL が有
効でない
AWS Database Migration Service で SSL を使用する
場合の制限
• SSL 接続は現在、SAP ASE エンドポイントではサポートされていません。
• Amazon Redshift ターゲットエンドポイントへの SSL 接続はサポートされていません。AWS DMS は
S3 バケットを使用してデータを Redshift データベースに転送します。この転送は、Amazon Redshift に
よってデフォルトで暗号化されます。
• SSL が有効な Oracle エンドポイントで CDC タスクを実行すると、SQL タイムアウトが発生すること
があります。この問題がある場合、CDC カウンターは想定どおりの数字にならないため、タスク設定の
ChangeProcessingTuning セクションの MinimumTransactionSize パラメーターを 100 からより小さい
値に変更します。MinimumTransactionSize パラメーターの詳細については、「変更処理のチューニン
グ設定 (p. 92)」を参照してください。
• 証明書は .PEM および .SSO (Oracle ウォレット) 形式でのみインポートできます。
• サーバー SSL 証明書が中間 CA によって署名されている場合、中間 CA からルート CA に向かう証明書
チェーン全体が単一の .PEM ファイルとしてインポートされることを確認してください。
API Version API バージョン 2016-01-01
44
AWS Database Migration Service ユーザーガイド
証明書の管理
• サーバーで自己署名証明書を使用している場合、SSL モードとして [require] を選択します。require
SSL モードは、サーバーの SSL 証明書を暗黙的に信頼し、証明書が CA により署名されたことの検証を
試みません。
証明書の管理
DMS コンソールを使用すると、SSL 証明書を表示および管理できます。DMS コンソールを使用して証明
書をインポートすることもできます。
MySQL 互換、PostgreSQL、または SQL Server のエ
ンドポイントでの SSL の有効化
新しく作成したエンドポイントまたは既存のエンドポイントに SSL 接続を追加できます。
SSL を使用する AWS DMS エンドポイントを作成するには
1.
AWS マネジメントコンソールにサインインし、AWS Database Migration Service を選択します。
Note
2.
AWS Identity and Access Management (IAM) ユーザーとしてサインインしている場合、AWS
DMS にアクセスするための適切なアクセス許可が必要です。データベース移行に必要
なアクセス許可の詳細については、「AWS DMS を使用するのに必要な IAM アクセス許
可 (p. 36)」を参照してください。
ナビゲーションペインで [Certificates] を選択します。
3.
4.
[Import Certificate] を選択します。
エンドポイントへの接続の暗号化に使用する証明書をアップロードします。
Note
エンドポイントを作成または変更するときに、[Create database endpoint] ページで [Add
new CA certificate] を選択することにより、AWS DMS コンソールを使用して証明書をアップ
ロードすることもできます。
5.
「ステップ 3: データベースエンドポイントを指定 (p. 26)」での説明に従って、エンドポイントを作成
します。
SSL を使用するように既存の AWS DMS エンドポイントを変更するには
1.
AWS マネジメントコンソールにサインインし、AWS Database Migration Service を選択します。
Note
2.
3.
AWS Identity and Access Management (IAM) ユーザーとしてサインインしている場合、AWS
DMS にアクセスするための適切なアクセス許可が必要です。データベース移行に必要
なアクセス許可の詳細については、「AWS DMS を使用するのに必要な IAM アクセス許
可 (p. 36)」を参照してください。
ナビゲーションペインで [Certificates] を選択します。
[Import Certificate] を選択します。
4.
エンドポイントへの接続の暗号化に使用する証明書をアップロードします。
Note
エンドポイントを作成または変更するときに、[Create database endpoint] ページで [Add
new CA certificate] を選択することにより、AWS DMS コンソールを使用して証明書をアップ
ロードすることもできます。
API Version API バージョン 2016-01-01
45
AWS Database Migration Service ユーザーガイド
Oracle エンドポイントでの SSL のサポート
5.
ナビゲーションペインで、[Endpoints] を選択し、変更するエンドポイントを選択して [Modify] を選択
します。
6.
[SSL mode] を選択します。
[verify-ca] モードまたは [verify-full] モードを選択した場合、次に示すように使用する CA 証明書を指
定する必要があります。
7.
[Modify] を選択します。
8.
エンドポイントが変更されている場合、エンドポイントを選択して [Test connection] を選択し、SSL
接続が機能しているかどうかを調べます。
ソースおよびターゲットエンドポイントを作成したら、これらのエンドポイントを使用するタスクを作成
します。タスクの作成の詳細については、「ステップ 4: タスクを作成する (p. 27)」を参照してください。
Oracle エンドポイントでの SSL のサポート
AWS DMS の Oracle エンドポイントでは、none および verify-ca SSL モードがサポートされていま
す。Oracle エンドポイントで SSL を使用するには、.pem 証明書ファイルの代わりにエンドポイント用の
Oracle ウォレットをアップロードする必要があります。
トピック
• Oracle SSL への既存の証明書の使用 (p. 46)
• Oracle SSL への自己署名証明書の使用 (p. 47)
Oracle SSL への既存の証明書の使用
既存の Oracle クライアントインストールを使用して CA 証明書ファイルから Oracle ウォレットファイル
を作成するには、以下の手順を実行します。
AWS DMS で Oracle SSL に既存の Oracle クライアントインストールを使用するには
1.
以下のコマンドを実行して、ORACLE_HOME システム変数を dbhome_1 ディレクトリの場所に設定
します。
prompt>export ORACLE_HOME=/home/user/app/user/product/12.1.0/dbhome_1
2.
LD_LIBRARY_PATH システム変数に $ORACLE_HOME/lib を追加します。
prompt>export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib
3.
$ORACLE_HOME/ssl_wallet に Oracle Wallet 用のディレクトリを作成します。
prompt>mkdir $ORACLE_HOME/ssl_wallet
4.
CA 証明書 .pem ファイルを ssl_wallet ディレクトリに配置します。Amazon RDS のお客様は、https://
s3.amazonaws.com/rds-downloads/rds-ca-2015-root.pem から RDS CA 証明書ファイルをダウンロー
ドできます。
5.
以下のコマンドを実行して Oracle Wallet を作成します。
API Version API バージョン 2016-01-01
46
AWS Database Migration Service ユーザーガイド
Oracle エンドポイントでの SSL のサポート
prompt>orapki wallet create -wallet $ORACLE_HOME/ssl_wallet -auto_login_only
prompt>orapki wallet add -wallet $ORACLE_HOME/ssl_wallet -trusted_cert –cert
$ORACLE_HOME/ssl_wallet/ca-cert.pem -auto_login_only
ここまでの手順を完了したら、ImportCertificate API で certificate-wallet パラメーターを指定してウォ
レットファイルをインポートできます。Oracle エンドポイントの作成または変更時に SSL モードとして
verify-ca を選択すると、インポートされたウォレット証明書を使用できます。
Note
Oracle ウォレットはバイナリファイルです。AWS DMS ではこれらのファイルがそのまま使用さ
れます。
Oracle SSL への自己署名証明書の使用
Oracle SSL に自己署名証明書を使用するには、以下の手順を実行します。
AWS DMS で Oracle SSL に自己署名証明書を使用するには
1.
自己署名証明書で使用するディレクトリを作成します。
mkdir <SELF_SIGNED_CERT_DIRECTORY>
2.
前の手順で作成したディレクトリに移動します。
cd <SELF_SIGNED_CERT_DIRECTORY>
3.
ルートキーを作成します。
openssl genrsa -out self-rootCA.key 2048
4.
前の手順で作成したルートキーを使用して、ルート証明書に自己署名します。
openssl req -x509 -new -nodes -key self-rootCA.key
-sha256 -days 1024 -out self-rootCA.pem
5.
Oracle データベース用の Oracle ウォレットディレクトリを作成します。
mkdir $ORACLE_HOME/self_signed_ssl_wallet
6.
新しい Oracle ウォレットを作成します。
orapki wallet create -wallet $ORACLE_HOME/self_signed_ssl_wallet
-pwd <password> -auto_login_local
7.
Oracle ウォレットにルート証明書を追加します。
orapki wallet add -wallet $ORACLE_HOME/self_signed_ssl_wallet
-trusted_cert -cert self-rootCA.pem -pwd <password>
8.
Oracle ウォレットの内容のリストを表示します。リストにはルート証明書が含まれます。
orapki wallet display -wallet $ORACLE_HOME/self_signed_ssl_wallet
API Version API バージョン 2016-01-01
47
AWS Database Migration Service ユーザーガイド
Oracle エンドポイントでの SSL のサポート
9.
ORAPKI ユーティリティを使用して証明書署名リクエスト (CSR) を生成します。
orapki wallet add -wallet $ORACLE_HOME/self_signed_ssl_wallet
-dn "CN=`hostname`, OU=Sample Department, O=Sample Company,
L=NYC, ST=NY, C=US" -keysize 1024 -pwd <password>
10. Oracle ウォレットの内容のリストを表示します。リストには CSR が含まれます。
orapki wallet display -wallet $ORACLE_HOME/self_signed_ssl_wallet
11. Oracle ウォレットから CSR をエクスポートします。
orapki wallet export -wallet $ORACLE_HOME/self_signed_ssl_wallet
-dn "CN=`hostname`, OU=Sample Department, O=Sample Company,
L=NYC, ST=NY, C=US" -request self-signed-oracle.csr -pwd <password>
12. ルート証明書を使用して CSR に署名します。
openssl x509 -req -in self-signed-oracle.csr -CA self-rootCA.pem
-CAkey self-rootCA.key -CAcreateserial -out self-signed-oracle.crt
-days 365 -sha256
13. サーバーウォレットにクライアント証明書を追加します。
orapki wallet add -wallet $ORACLE_HOME/self_signed_ssl_wallet
-user_cert -cert self-signed-oracle.crt -pwd <password>
14. Oracle ウォレットの内容のリストを表示します。
orapki wallet display -wallet $ORACLE_HOME/self_signed_ssl_wallet
15. sqlnet.ora ファイル ($ORACLE_HOME/network/admin/sqlnet.ora) を設定します。
WALLET_LOCATION =
(SOURCE =
(METHOD = FILE)
(METHOD_DATA =
(DIRECTORY = <ORACLE_HOME>/self_signed_ssl_wallet)
)
)
SQLNET.AUTHENTICATION_SERVICES = (NONE)
SSL_VERSION = 1.0
SSL_CLIENT_AUTHENTICATION = FALSE
SSL_CIPHER_SUITES = (SSL_RSA_WITH_AES_256_CBC_SHA)
16. Oracle リスナーを停止します。
lsnrctl stop
17. listener.ora ファイル ($ORACLE_HOME/network/admin/listener.ora) に SSL のエントリを追加しま
す。
SSL_CLIENT_AUTHENTICATION = FALSE
WALLET_LOCATION =
(SOURCE =
(METHOD = FILE)
(METHOD_DATA =
(DIRECTORY = <ORACLE_HOME>/self_signed_ssl_wallet)
)
API Version API バージョン 2016-01-01
48
AWS Database Migration Service ユーザーガイド
Oracle エンドポイントでの SSL のサポート
)
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = <SID>)
(ORACLE_HOME = <ORACLE_HOME>)
(SID_NAME = <SID>)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost.localdomain)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCPS)(HOST = localhost.localdomain)(PORT = 1522))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
)
18. tnsnames.ora ファイル ($ORACLE_HOME/network/admin/tnsnames.ora) を設定します。
<SID>=
(DESCRIPTION=
(ADDRESS_LIST =
(ADDRESS=(PROTOCOL = TCP)(HOST = localhost.localdomain)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = <SID>)
)
)
<SID>_ssl=
(DESCRIPTION=
(ADDRESS_LIST =
(ADDRESS=(PROTOCOL = TCPS)(HOST = localhost.localdomain)(PORT = 1522))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = <SID>)
)
)
19. Oracle リスナーを再起動します。
lsnrctl start
20. Oracle リスナーの状態を表示します。
lsnrctl status
21. sqlplus と SSL tnsnames エントリを使用して、localhost からデータベースへの SSL 接続をテストし
ます。
sqlplus -L <ORACLE_USER>@<SID>_ssl
22. SSL を使用して正常に接続したことを確認します。
SELECT SYS_CONTEXT('USERENV', 'network_protocol') FROM DUAL;
SYS_CONTEXT('USERENV','NETWORK_PROTOCOL')
API Version API バージョン 2016-01-01
49
AWS Database Migration Service ユーザーガイド
データベースのパスワードの変更
-------------------------------------------------------------------------------tcps
23. 現在のディレクトリを自己署名証明書のあるディレクトリに変更します。
cd <SELF_SIGNED_CERT_DIRECTORY>
24. AWS DMS で使用される新しいクライアント Oracle ウォレットを作成します。
orapki wallet create -wallet ./ -auto_login_only
25. Oracle ウォレットに自己署名証明書を追加します。
orapki wallet add -wallet ./ -trusted_cert -cert rootCA.pem -auto_login_only
26. AWS DMS で使用される Oracle ウォレットの内容のリストを表示します。リストには自己署名証明書
が含まれます。
orapki wallet display -wallet ./
27. 作成した Oracle ウォレットを AWS DMS にアップロードします。
データベースのパスワードの変更
ほとんどの状況では、ソースまたはターゲットエンドポイント用のデータベースのパスワードを変更する
のは簡単です。移行またはレプリケーションタスクで現在使用しているエンドポイント用のデータベース
のパスワードを変更する必要がある場合、そのプロセスは少し複雑になります。以下の手順は、その方法
を示しています。
移行またはレプリケーションタスクでエンドポイント用のデータベースのパスワードを変更する
には
1.
2.
AWS マネジメントコンソールにサインインし、AWS DMS を選択します。 AWS Identity and Access
Management (IAM) ユーザーとしてサインインしている場合、AWS DMS にアクセスするための適切
なアクセス許可が必要である点に注意してください。必要なアクセス権限の詳細については、「AWS
DMS を使用するのに必要な IAM アクセス許可 (p. 36)」を参照してください。
ナビゲーションペインで、[Tasks] を選択します。
3.
データベースのパスワードを変更するエンドポイントを使用するタスクを選択してから、[Stop] を選
択します。
4.
タスクが停止されている間、データベースの操作に使用するネイティブツールを使用して、エンドポ
イント用のデータベースのパスワードを変更できます。
DMS マネジメントコンソールに戻り、ナビゲーションペインから [Endpoints] を選択します。
パスワードを変更したデータベースのエンドポイントを選択してから、[Modify] を選択します。
5.
6.
7.
8.
9.
10.
[Password] ボックスに新しいパスワードを入力し、[Modify] を選択します。
ナビゲーションペインから [Tasks] を選択します。
先ほど停止したタスクを選択してから、[Start/Resume] を選択します。
タスクを続行する方法に応じて、[Start] または [Resume] のいずれかを選択してから、[Start task] を
選択します。
API Version API バージョン 2016-01-01
50
AWS Database Migration Service ユーザーガイド
AWS Database Migration Service の制限
AWS Database Migration Service の
制限
このトピックでは、AWS Database Migration Service (AWS DMS) でのリソース制限と命名に関する制約
について説明します。
AWS DMS が移行できるデータベースの最大サイズは、ソース環境、ソースデータベースのデータのディ
ストリビューション、ソースシステムの使用頻度によって異なります。ご利用のシステムが AWS DMS
の候補となるかどうかを調べる最善の方法は、テストすることです。設定を実行するため徐々に開始しま
す。次にいくらか複雑なオブジェクトを追加し、最後にテストとして全ロードをお試しください。
AWS Database Migration Service の制限
各 AWS アカウントでは、リージョンごとに、作成できる AWS DMS リソースの数に対して制限がありま
す。リソースの制限に達すると、リソースを作成するための追加の呼び出しは、例外が発生して失敗しま
す。
ストレージの 6 TB の制限は DMS レプリケーションインスタンスに適用されます。ターゲットとソース
の同期が間に合わない場合に変更をキャッシュするためや、ログ情報を保存するために、このストレージ
は使用されます。この制限はターゲットサイズには適用されないため、ターゲットエンドポイントは 6 TB
よりも大きくなることがあります。
次の表に、AWS DMS リソースとリージョンごとの制限を示します。
リソース
デフォルトの制限
レプリケーションインスタンス
20
ストレージの合計金額
6 TB
レプリケーションサブネットグループ
20
レプリケーションサブネットグループあたりのサブネット
20
エンドポイント
100
タスク
200
API Version API バージョン 2016-01-01
51
AWS Database Migration Service ユーザーガイド
AWS Database Migration Service の制限
リソース
デフォルトの制限
インスタンスごとのエンドポイント
20
API Version API バージョン 2016-01-01
52
AWS Database Migration Service ユーザーガイド
データ移行のソース
AWS Database Migration Service (AWS DMS) では、最もよく利用されているデータベースの多くをデー
タレプリケーションのソースとして使用できます。ソースには、Amazon Elastic Compute Cloud (Amazon
EC2) インスタンス、Amazon Relational Database Service (Amazon RDS) インスタンス、またはオンプレ
ミスデータベースを使用できます。ソースデータベースには次のものが含まれます。
オンプレミスおよび Amazon EC2 インスタンスデータベース
• Enterprise、Standard、Standard One、および Standard Two エディションの Oracle バージョン 10.2 以
降、11g、12c
• Enterprise、Standard、Workgroup、および Developer エディションの Microsoft SQL Server バージョ
ン 2005、2008、2008R2、2012、2014. Web および Express エディションはサポートされていませ
ん。
• MySQL バージョン 5.5、5.6、5.7
• MariaDB (MySQL 互換データソースとしてサポートされています)
• PostgreSQL 9.3 以降
• SAP Adaptive Server Enterprise (ASE) 15.7 以降
Amazon RDS インスタンスデータベース
• Oracle バージョン 11g (バージョン 11.2.0.3.v1 以降)、および 12c (Enterprise、Standard、Standard
One、Standard Two エディション)
• Enterprise および Standard エディションの Microsoft SQL Server バージョン 2008 R2、2012、2014
変更データキャプチャ (CDC) オペレーションはサポートされていない点に注意してくださ
い。Web、Workgroup、Developer、Express エディションはサポートされていません。
• MySQL バージョン 5.5、5.6、5.7
• PostgreSQL 9.4
• MariaDB (MySQL 互換データソースとしてサポートされています)
• Amazon Aurora (MySQL 互換データソースとしてサポートされています)
トピック
• AWS Database Migration Service のソースとしての Oracle データベースの使用 (p. 54)
• Microsoft SQL Server データベースの AWS Database Migration Service のソースとしての使
用 (p. 62)
• PostgreSQL データベースの AWS Database Migration Service のソースとしての使用 (p. 66)
• MySQL 互換データベースの AWS Database Migration Service のソースとしての使用 (p. 71)
API Version API バージョン 2016-01-01
53
AWS Database Migration Service ユーザーガイド
ソースとしての Oracle の使用
• SAP ASE データベースの AWS Database Migration Service のソースとしての使用 (p. 74)
AWS Database Migration Service のソースとしての
Oracle データベースの使用
AWS Database Migration Service (AWS DMS) を使用して、1 つ以上の Oracle データベースからデータを
移行できます。1 つの Oracle データベースをソースとして使用すると、別の Oracle データベースまたは
サポートされている他のデータベースのいずれかにデータを移行できます。
AWS DMS では、オンプレミスまたは EC2 インスタンス上にあるバージョン 10.2 以降、11g、12c のす
べての Oracle データベースエディション、Amazon RDS DB インスタンスの場合はバージョン 11g (バー
ジョン 11.2.0.3.v1 以降) および 12c のすべての Oracle データベースエディションが移行ソースとしてサ
ポートされています。一定のアクセス権限を持つ Oracle アカウントが必要です。
SSL を使用して、Oracle エンドポイントとレプリケーションインスタンスとの接続を暗号化できま
す。Oracle エンドポイントで SSL を使用する方法の詳細については、「AWS Database Migration Service
での SSL の使用 (p. 43)」を参照してください。
Oracle データベースから変更データキャプチャ (CDC) を使用する予定の場合、サプリメンタルロギングを
セットアップする必要があります。サプリメンタルロギングのセットアップについては、「ソースとして
の Oracle の設定 (p. 58)」を参照してください。
Oracle データベースと AWS DMS の使用の詳細については、以下のセクションを参照してください。
トピック
• 変更データキャプチャ (CDC) での Oracle LogMiner または Oracle Binary Reader の使用 (p. 54)
• Oracle を AWS Database Migration Service のソースとして使用する場合の制限 (p. 57)
• サポートされている圧縮方法 (p. 57)
• Oracle を AWS Database Migration Service のソースとして使用するために必要なユーザーアカウント
権限 (p. 57)
• ソースとしての Oracle の設定 (p. 58)
• Amazon RDS DB インスタンス上の Oracle のソースとしての設定 (p. 60)
変更データキャプチャ (CDC) での Oracle LogMiner ま
たは Oracle Binary Reader の使用
Oracle には、変更処理を行う際にログを読み取りための方法として Oracle LogMiner と Oracle Binary
Reader の 2 つが用意されています。
デフォルトでは、AWS DMS は変更データキャプチャ (CDC) に Oracle LogMiner を使用します。また
は、Oracle Binary Reader の使用を選択することもできます。Oracle Binary Reader は、LogMiner をバイ
パスし、ログを直接読み取ります。Binary Reader を有効にするには、以下の追加の接続パラメーターを
含むようにソース接続を変更する必要があります。
useLogminerReader=N; useBfile=Y
Logminer を有効にするには、以下の追加の接続パラメーターを含むようにソース接続を変更するか、
[Extra Connection Attribute] を空白のままにする必要があります (デフォルトで Logminer になります)。
useLogminerReader=Y
API Version API バージョン 2016-01-01
54
AWS Database Migration Service ユーザーガイド
変更データキャプチャ (CDC) での Oracle
LogMiner または Oracle Binary Reader の使用
LogMiner または Binary Reader を使用するには、正しいアクセス権限を設定する必要があります。これ
らのアクセス権限の設定については、以下のセクション「Oracle ソースデータベースにおける変更データ
キャプチャ (CDC) に必要なアクセス権 (p. 55)」を参照してください。
AWS DMS で Binary Reader の代わりに LogMiner を使用することのメリットは次のとおりです。
• LogMiner では、暗号化オプションや圧縮オプションなど、ほとんどの Oracle オプションがサポートさ
れています。Binary Reader では、すべての Oracle オプションがサポートされているわけではありませ
ん (特に暗号化と圧縮のオプション)。
• LogMiner には、特に Oracle Binary Reader の直接アクセスセットアップと比較したり、REDO ログが
Automatic Storage Management (ASM) 上にある場合と比較して、シンプルな設定になっています。
• LogMiner は、Oracle の透過的なデータ暗号化 (TDE) を使用する Oracle ソースと使用できます。
AWS DMS で LogMiner の代わりに Binary Reader を使用することのメリットは次のとおりです。
• 大量の変更を含む移行の場合、LogMiner は Oracle ソースデータベースをホストするコンピュータの I/O
や CPU にある程度の影響を及ぼすことがあります。Binary Reader の方が I/O や CPU に影響を及ぼす
可能性が低くなります。
• 大量の変更を含む移行の場合、Oracle LogMiner を使用するより Binary Reader を使用した方が CDC の
パフォーマンスが通常はかなり高くなります。
• Binary Reader では、Oracle バージョン 12c における LOBS の CDC がサポートされていま
す。LogMiner ではサポートされていません。
通常、次のいずれかの状況に該当しない限り、Oracle データベースの移行には Oracle LogMiner を使用し
ます。
• ソース Oracle データベースで複数の移行タスクを実行する必要がある。
• ソース Oracle データベース上の変更の量または REDO ログの量が多い。
• 変更を Oracle 12c の LOB に反映する必要がある。
Oracle ソースデータベースにおける変更データキャプチャ
(CDC) に必要なアクセス権
必要なアクセス権は、CDC に Oracle LogMiner と Oracle Binary Reader のどちらを使用しているかによっ
て異なります。
Oracle ソースデータベースで変更データキャプチャ (CDC) に Oracle LogMiner を使用するときは、データ
移行に使用するユーザーアカウントに次の権限を付与する必要があります。
Oracle バージョン 12c より前の場合は、次のものを付与します。
• CREATE SESSION
• DBMS_LOGMNR での EXECUTE
• V_$LOGMNR_LOGS での SELECT
• V_$LOGMNR_CONTENTS での SELECT
Oracle バージョン 12c 以降の場合、次のものを付与します。
•
•
•
•
LOGMINING (GRANT LOGMINING TO <#########> など)
CREATE SESSION
DBMS_LOGMNR での EXECUTE
V_$LOGMNR_LOGS での SELECT
API Version API バージョン 2016-01-01
55
AWS Database Migration Service ユーザーガイド
変更データキャプチャ (CDC) での Oracle
LogMiner または Oracle Binary Reader の使用
• V_$LOGMNR_CONTENTS での SELECT
Oracle ソースデータベースで変更データキャプチャ (CDC) に Oracle Binary Reader を使用するときは、
データ移行に使用するユーザーアカウントに次の権限を付与する必要があります。
• v_$transportable_platform での SELECT
REDO ログが Automatic Storage Management (ASM) に保存されており、ASM から AWS DMS がアク
セスする場合、v_$transportable_platform での SELECT 権限を付与します。
• BFILE 読み取り - AWS DMS に REDO ログへのファイルレベルのアクセス権がなく、ASM から REDO
ログにアクセスしない場合に使用されます。
• DBMS_FILE_TRANSFER パッケージ - REDO ログを一時フォルダにコピーするために使用されます (こ
の場合、EXECUTE ON DBMS_FILE_TRANSFER 権限も付与する必要があります)。
• DBMS_FILE_GROUP パッケージ - 一時/代替フォルダから REDO ログファイルを削除するために使用さ
れます (この場合、EXECUTE ON DBMS_FILE_ GROUP 権限も付与する必要があります)。
• CREATE ANY DIRECTORY
Oracle ファイル機能は、Oracle ディレクトリと連動します。各 Oracle ディレクトリオブジェクトには、
処理が必要なファイルを含むフォルダの名前が含まれています。
AWS DMS が Oracle ディレクトリを作成および管理するようにする場合、上で指定した CREATE ANY
DIRECTORY 権限を付与する必要があります。ディレクトリ名の先頭には amazon_ が付く点に注意して
ください。この権限を付与しない場合、対応するディレクトリを手動で作成する必要があります。ディレ
クトリを手動で作成し、Oracle ソースエンドポイントで指定された Oracle ユーザーが Oracle ディレクト
リで作成されたユーザーではない場合、DIRECTORY での READ 権限も付与します。
Oracle ソースエンドポイントが REDO ログファイルを一時フォルダにコピーするように設定されてお
り、Oracle ソースエンドポイントで指定された Oracle ユーザーが Oracle ディレクトリで作成されたユー
ザーではない場合、次の追加の権限が必要です。
• ソースディレクトリとして指定された Oracle ディレクトリオブジェクトでの READ
• コピー処理で宛先ディレクトリとして指定されたディレクトリオブジェクトでの WRITE
Oracle ソースデータベースでの変更データキャプチャ (CDC) に
関する制限
Oracle データベースを AWS Database Migration Service (AWS DMS) 変更データキャプチャのソースとし
て使用する場合は、以下の制限が適用されます。
• AWS DMS が変更データキャプチャ (CDC) に使用する Oracle LogMiner では、UPDATE ステートメン
トによって LOB 列のみ更新される場合、ラージバイナリオブジェクト (LOB) の更新がサポートされま
せん。
• Oracle 11 では、XMLTYPE および LOB 列の UPDATE ステートメントが Oracle LogMiner によりサ
ポートされません。
• Oracle 12c では、LogMiner により LOB 列がサポートされません。
• AWS DMS は、テーブルメタデータや OBJECT_ID 値の変更など Oracle DBMS_REDEFINITION パッ
ケージにより生じた変更をキャプチャしません。
• AWS DMS では、BFILE を使用する際、オーバーフローセグメントを含み、インデックスで整理される
テーブルが、変更データキャプチャ (CDC) モードでサポートされていません。たとえば、LogMiner を
使用しないで REDO ログにアクセスする場合などです。
• AWS DMS では、Oracle Binary Reader を使用する場合にテーブルクラスターがサポートされていませ
ん。
• AWS DMS は、4 GB より大きい REDO ログから変更をキャプチャすることができません。
API Version API バージョン 2016-01-01
56
AWS Database Migration Service ユーザーガイド
ソースとしての Oracle の制限
Oracle を AWS Database Migration Service のソース
として使用する場合の制限
Oracle データベースを AWS Database Migration Service (AWS DMS) のソースとして使用する場合は、以
下の制限が適用されます。変更データキャプチャ (CDC) に Oracle LogMiner または Oracle Binary Reader
を使用する場合、追加の制限については、「 Oracle ソースデータベースでの変更データキャプチャ (CDC)
に関する制限 (p. 56)」を参照してください。
• Oracle LogMiner と一緒に使用する場合、AWS DMS では、Oracle の透過的なデータ暗号化 (TDE) テー
ブルスペース暗号化と AWS Key Management Service (AWS KMS) 暗号化がサポートされます。他の暗
号化形式はどれもサポートされていません。
• AWS DMS では、Oracle バージョン 11 以上の rename table <table name> to <new table name> 構
文がサポートされています。
• 明示的な CHAR セマンティクスを使用して作成された Oracle ソースデータベース列は、BYTE セマ
ンティクスを使用してターゲット Oracle データベースに転送されます。移行前に、ターゲット Oracle
データベースでこのタイプの列を含むテーブルを作成する必要があります。
• AWS DMS は、パーティションまたはサブパーティションオペレーション
(ADD、DROP、EXCHANGE、TRUNCATE) によって生じたデータ変更をレプリケートしません。この
ような変更をレプリケートするには、レプリケートするテーブルを再ロードする必要があります。AWS
DMS は、その後のデータ変更を新たに追加されたパーティションにレプリケートします。テーブルを
もう一度再ロードする必要はありません。ただし、これらのパーティション内の古いデータレコードで
UPDATE オペレーションを実行すると失敗し、0 rows affected 警告が生成されます。
• データ定義言語 (DDL) ステートメント ALTER TABLE ADD <column> <data_type> DEFAULT <> は、デ
フォルト値をターゲットにレプリケートせず、ターゲットの新しい列が NULL に設定されます。新し
い列で NULL が許容される場合、Oracle は DDL 自体を記録する前にすべてのテーブル行を更新しま
す。その結果、AWS DMS は列の変更をキャプチャしますが、ターゲットは更新しません。新しい列
は NULL に設定されるため、ターゲットテーブルにプライマリキーまたは一意のインデックスがない場
合、その後の更新により 0 rows affected 警告が生成されます。
• CREATE TABLE AS ステートメントの結果生じたデータ変更はサポートされていません。ただし、新しい
テーブルがターゲットで作成されます。
• サイズ制限のある LOB モードが有効な場合、AWS DMS は Oracle ソース上の空の LOB をターゲット
では NULL 値としてレプリケートします。
• AWS DMS によって CDC が開始されると、タイムスタンプが Oracle システム変更番号 (SCN) にマッピ
ングされます。Oracle ではデフォルトで、タイムスタンプと SCN のマッピングは 5 日間、保持されま
す。指定したタイムスタンプが古すぎる (保持期間が 5 日間より長い) 場合、Oracle ではエラーが生成さ
れます。詳細については、Oracle のドキュメントを参照してください。
サポートされている圧縮方法
AWS Database Migration Service では、LogMiner によりサポートされているすべての圧縮方法がサポート
されます。
Oracle を AWS Database Migration Service のソース
として使用するために必要なユーザーアカウント権限
Oracle データベースを AWS DMS タスクでソースとして使用するには、AWS DMS Oracle データ
ベース定義で指定されたユーザーに Oracle データベースにおける次の権限が付与されている必要があ
ります。Amazon RDS で Oracle データベースにおける権限を付与するには、ストアドプロシージャ
rdsadmin.rdsadmin_util.grant_sys_object を使用します。詳細については、「SYS オブジェクトへの
SELECT または EXECUTE 権限の付与」を参照してください。
API Version API バージョン 2016-01-01
57
AWS Database Migration Service ユーザーガイド
ソースとしての Oracle の設定
Note
権限を付与するときは、オブジェクトのシノニム (V$OBJECT など。アンダースコアなし) ではな
く、オブジェクトの実際の名前 (V_$OBJECT など。アンダースコアを含む) を使用してください。
• SELECT ANY TRANSACTION
• V_$ARCHIVED_LOG での SELECT
• V_$LOG での SELECT
• V_$LOGFILE での SELECT
• V_$DATABASE での SELECT
• V_$THREAD での SELECT
• V_$PARAMETER での SELECT
• V_$NLS_PARAMETERS での SELECT
• V_$TIMEZONE_NAMES での SELECT
• V_$TRANSACTION での SELECT
• ALL_INDEXES での SELECT
• ALL_OBJECTS での SELECT
• DBA_OBJECTS での SELECT (Oracle バージョンが 11.2.0.3 より前の場合に必須)
• ALL_TABLES での SELECT
• ALL_USERS での SELECT
• ALL_CATALOG での SELECT
• ALL_CONSTRAINTS での SELECT
• ALL_CONS_COLUMNS での SELECT
• ALL_TAB_COLS での SELECT
• ALL_IND_COLUMNS での SELECT
• ALL_LOG_GROUPS での SELECT
• SYS.DBA_REGISTRY での SELECT
• SYS.OBJ$ での SELECT
• DBA_TABLESPACES での SELECT
• ALL_TAB_PARTITIONS での SELECT
• ALL_ENCRYPTED_COLUMNS での SELECT
上記の権限は、以下に指定された要件のために付与します。
• ビューが公開されている場合、ALL_VIEWS で SELECT を付与します。
• 特定のテーブルリストを使用する場合、レプリケートされたテーブルごとに SELECT を付与します。
• 特定のテーブルリストのパターンを使用する場合、SELECT ANY TABLE を付与します。
• サプリメンタルロギングを追加する場合、ALTER ANY TABLE を付与します。
• サプリメンタルロギングを追加し、特定のテーブルリストを使用する場合、レプリケートされたテーブ
ルごとに ALTER を付与します。
• Oracle RAC から移行するときは、プレフィックス g_ $ と v_ $ を使用してマテリアライズドビューに対
するアクセス権限を付与します。
ソースとしての Oracle の設定
Oracle データベースをデータ移行ソースとして使用する前に、いくつかのタスクを実行する必要がありま
す。Amazon RDS 上の Oracle データベースの場合、次のセクションを参照してください。オンプレミス
または Amazon EC2 インスタンス上の Oracle データベースの場合、次の操作を行う必要があります。
API Version API バージョン 2016-01-01
58
AWS Database Migration Service ユーザーガイド
ソースとしての Oracle の設定
• Oracle アカウントアクセスを提供する – AWS Database Migration Service に Oracle ユーザーアカ
ウントを指定する必要があります。ユーザーアカウントには、「Oracle を AWS Database Migration
Service のソースとして使用するために必要なユーザーアカウント権限 (p. 57)」で指定されているよ
うに、Oracle データベースでの読み取り/書き込み権限が必要です。
• ARCHIVELOG モードがオンであることを確認する – Oracle は、ARCHIVELOG モードと
NOARCHIVELOG モードの 2 つのモードで実行できます。AWS Database Migration Service で Oracle
を使用するには、対象のデータベースが ARCHIVELOG モードになっている必要があります。
• サプリメンタルロギングをセットアップする – 以下のステップは、変更データキャプチャ (CDC) を
使用する場合にのみ必要です。Oracle データベースでサプリメンタルロギングをセットアップする
方法を示しています。Amazon RDS DB インスタンス上のデータベースでサプリメンタルロギングを
セットアップする方法については、「Amazon RDS DB インスタンス上の Oracle のソースとしての設
定 (p. 60)」を参照してください。
Oracle データベースでサプリメンタルロギングをセットアップするには
1.
データベースでサプリメンタルロギングが有効かどうかを調べます。
• 次のクエリを実行します。
SELECT name, value, description FROM v$parameter WHERE
name = 'compatible';
返される結果は、GE to 9.0.0 です。
• 次のクエリを実行します。
SELECT supplemental_log_data_min FROM v$database;
返される結果は、YES または IMPLICIT です。
• 次のクエリを実行することで、サプリメンタルロギングを有効にします。
ALTER DATABASE ADD SUPPLEMENTAL LOG DATA
2.
各テーブルに必要なサプリメンタルロギングが追加されていることを確認します。
• プライマリキーが存在する場合、サプリメンタルロギングをプライマリキーに追加する形式を使
用するか、サプリメンタルロギングをプライマリキー列に追加することにより、プライマリキー
にサプリメンタルロギングを追加する必要があります。
• プライマリキーが存在せず、テーブルに一意のインデックスが 1 つある場合、一意のインデッ
クスのすべての列をサプリメンタルログに追加する必要があります。SUPPLEMENTAL LOG DATA
(UNIQUE INDEX) COLUMNS を使用しても、一意のインデックス列はログに追加されません。
• プライマリキーが存在せず、テーブルに一意のインデックスが複数ある場合、AWS DMS は最
初の一意のインデックスを選択します。AWS DMS は、この場合アルファベット順に並べられ
た昇順のリストにおける最初のリストを使用します。サプリメンタルロギングは、選択された
インデックスの列に追加する必要があります。SUPPLEMENTAL LOG DATA (UNIQUE INDEX)
COLUMNS を使用しても、一意のインデックス列はログに追加されません。
• プライマリキーも一意のインデックスも存在しない場合、サプリメンタルロギングをすべての列
に追加する必要があります。
ターゲットテーブルのプライマリキーまたは一意のテーブルがソーステーブルのプライマリキー
または一意のインデックスと異なる場合、ターゲットテーブルのプライマリキーまたは一意のイ
API Version API バージョン 2016-01-01
59
AWS Database Migration Service ユーザーガイド
RDS Oracle DB インスタンスのソースとしての設定
ンデックスを構成するソーステーブル列でサプリメンタルロギングを手動で追加する必要があり
ます。
• ターゲットテーブルのプライマリキーを変更する場合、元のプライマリキーまたは一意のイン
デックスではなく、選択したインデックスの列にサプリメンタルロギングを追加する必要があり
ます。
3.
フィルタがテーブルに定義されている場合など、必要に応じて追加のロギングを実行します。
テーブルに一意のインデックスやプライマリキーがある場合、フィルタに関係する列がプライマリ
キーまたは一意のインデックスの列とは異なるときは、それらあの各列にサプリメンタルロギング
を追加する必要があります。ただし、ALL COLUMNS サプリメンタルロギングがテーブルに追加さ
れている場合、追加のロギングを追加する必要はありません。
ALTER TABLE EXAMPLE.TABLE ADD SUPPLEMENTAL LOG GROUP example_log_group (ID,NAME)
ALWAYS;
Note
接続属性を使用してサプリメンタルロギングを有効にすることもできます。このオプショ
ンを使用する場合でも、次のステートメントを使用してデータベースレベルサプリメンタ
ルロギングを有効にする必要があります。
ALTER DATABASE ADD SUPPLEMENTAL LOG DATA
接続属性の設定の詳細については、「Oracle (p. 154)」を参照してください。
Amazon RDS DB インスタンス上の Oracle のソース
としての設定
Amazon RDS DB インスタンス上の Oracle データベースをデータ移行ソースとして使用するには、DB イ
ンスタンスで次のようないくつかの設定が必要です。
• サプリメンタルロギングをセットアップする – AWS DMS では、データベースレベルのサプリメンタル
ロギングを有効にする必要があります。データベースレベルのサプリメンタルロギングを有効にするに
は、次のコマンドを実行します。
exec rdsadmin.rdsadmin_util.alter_supplemental_logging('ADD');
Note
接続属性を使用してサプリメンタルロギングを有効にすることもできます。このオプションを
使用する場合でも、次のステートメントを使用してデータベースレベルサプリメンタルロギン
グを有効にする必要があります。
exec rdsadmin.rdsadmin_util.alter_supplemental_logging('ADD');
API Version API バージョン 2016-01-01
60
AWS Database Migration Service ユーザーガイド
RDS Oracle DB インスタンスのソースとしての設定
接続属性の設定の詳細については、「Oracle (p. 154)」を参照してください。
このコマンドの実行に加え、データベースレベルで PRIMARY KEY ロギングを有効にして、プライマリ
キーを持つテーブルの変更をキャプチャできるようにすることをお勧めします。PRIMARY KEY ロギン
グを有効にするには、次のコマンドを実行します。
exec rdsadmin.rdsadmin_util.alter_supplemental_logging('ADD','PRIMARY KEY');
プライマリキーがないテーブルの変更をキャプチャする場合、テーブルを変更し、次のコマンドを使用
してサプリメンタルロギングを追加してください。
alter table table_name add supplemental log data (ALL) columns;
さらに、プライマリキーを指定しないで新しいテーブルを作成する場合、create ステートメントにサプ
リメンタルロギング句を含めるか、テーブルを変更してサプリメンタルロギングを追加する必要があり
ます。次のコマンドは、テーブルを作成し、サプリメンタルロギングを追加します。
create table table_name(column data type, supplemental log data(ALL) columns);
テーブルを作成し、後でプライマリキーを追加した場合、テーブルにサプリメンタルロギングを追加す
る必要があります。次のコマンドは、テーブルを変更してサプリメンタルロギングを追加します。
alter table table_name add supplemental log data (PRIMARY KEY) columns;
• 自動バックアップを有効にする – 自動バックアップのセットアップについては、『Amazon RDS ユー
ザーガイド』を参照してください。
• アーカイブをセットアップする – Oracle データベースインスタンスのアーカイブされた REDO ログを
保持するには (AWS DMS が LogMiner を使用してログ情報を取得できます)、次のコマンドを実行しま
す。この例では、ログは 24 時間保持されます。
exec rdsadmin.rdsadmin_util.set_configuration('archivelog retention hours',24);
指定された期間中、アーカイブされた REDO ログのための十分な容量がストレージにあることを確認し
ます。
API Version API バージョン 2016-01-01
61
AWS Database Migration Service ユーザーガイド
SQL Server のソースとしての使用
Microsoft SQL Server データベースの AWS
Database Migration Service のソースとしての使用
AWS Database Migration Service (AWS DMS) を使用して、1 つ以上の Microsoft SQL Server データベー
スからデータを移行できます。SQL Server データベースをソースとして使用すると、別の SQL Server
データベースまたはサポートされている他のデータベースのいずれかにデータを移行できます。
AWS DMS では、ソースとして、Microsoft SQL Server バージョン 2005、2008、2008R2、2012、2014
のオンプレミスおよび Amazon EC2 インスタンスデータベースがサポートされま
す。Enterprise、Standard、Workgroup、および Developer エディションがサポートされます。Web およ
び Express エディションはサポートされていません。
AWS DMS では、ソースとして、SQL Server バージョン 2008R2、2012、2014 の Amazon RDS DB イン
スタンスデータベースがサポートされます。Enterprise および Standard エディションがサポートされて
います。Amazon RDS 上のソースデータベースでは、変更データキャプチャ (CDC) はサポートされませ
ん。Web、Workgroup、Developer、Express エディションはサポートされていません。
SQL Server データベースは、ネットワーク内のどのコンピュータにもインストールできます。選択した
タスクのタイプに応じてソースデータベースに対する適切なアクセス権限のある SQL Server アカウント
も、そのデータベースを AWS DMS で使用するためには必要です。
SSL を使用して、SQL Server エンドポイントとレプリケーションインスタンスとの接続を暗号化できま
す。SQL Server エンドポイントで SSL を使用する方法の詳細については、「AWS Database Migration
Service での SSL の使用 (p. 43)」を参照してください。
ソースとして使用する SQL Server データベースから変更をキャプチャするには、データベースは完全
バックアップ用に設定され、Enterprise、Developer、Standard のいずれかのエディションであることが必
要です。SQL Server で CDC を使用する場合の要件と制限のリストについては、「SQL Server ソースか
ら変更データキャプチャ (CDC) を行うときの特別な制限事項 (p. 63)」を参照してください。
SQL Server ソースデータベースと AWS DMS を使用する方法の詳細については、以下を参照してくださ
い。
トピック
• SQL Server を AWS Database Migration Service のソースとして使用する場合の一般的な制
限 (p. 62)
• SQL Server ソースから変更データキャプチャ (CDC) を行うときの特別な制限事項 (p. 63)
• サポートされている圧縮方法 (p. 64)
• Microsoft SQL Server AlwaysOn 可用性グループの使用 (p. 64)
• Microsoft SQL Server データベースの AWS Database Migration Service のレプリケーションソースと
しての設定 (p. 65)
• Microsoft SQL Server での MS-Replication を使用した変更データキャプチャ (p. 65)
• Microsoft SQL Server での MS-CDC を使用した変更データキャプチャ (p. 65)
• MS-Replication または MS-CDC を使用できない場合 (p. 66)
SQL Server を AWS Database Migration Service の
ソースとして使用する場合の一般的な制限
SQL Server データベースを AWS DMS のソースとして使用する場合、以下の制限が適用されます。
• 列の ID プロパティは、ターゲットデータベース列に移行されません。
API Version API バージョン 2016-01-01
62
AWS Database Migration Service ユーザーガイド
SQL Server CDC の制限
• 情報が 8000 バイトを超える (ヘッダーおよびマッピング情報を含む) 行は、SQL Server TLOG バッ
ファーサイズの制限のため適切に処理されません。
• Microsoft SQL Server エンドポイントでは、スパーステーブルの使用はサポートされていません。
• Windows 認証はサポートされていません。
• Microsoft SQL Server の計算済みフィールドの変更はレプリケーションされていません。
• Microsoft SQL Server パーティション切り替えはサポートされていません。
• ソースでクラスター化されたインデックスは、ターゲットでクラスター化されていないインデックスと
して作成されます。
• WRITETEXT ユーティリティと UPDATETEXT ユーティリティを使用している場合、AWS DMS はソー
スデータベースに適用されたイベントをキャプチャしません。
• 次のデータ操作言語 (DML) パターンはサポートされていません。
SELECT <*> INTO <new_table> FROM <existing_table>
• Microsoft SQL Server をソースとして使用している場合、列レベルの暗号化はサポートされていませ
ん。
• Microsoft SQL Server 2008 と Microsoft SQL Server 2008 R2 の既知の問題のため、AWS Database
Migration Service では、ソースエンドポイントとして使用している Microsoft SQL Server 2008 と
Microsoft SQL Server 2008 R2 でのサーバーレベルの監査はサポートされていません。
たとえば、次のコマンドを実行すると AWS Database Migration Service でエラーが発生します。
USE [master]
GO
ALTER SERVER AUDIT [my_audit_test-20140710] WITH (STATE=on)
GO
SQL Server ソースから変更データキャプチャ (CDC)
を行うときの特別な制限事項
AWS DMS のソースとして使用する SQL Server データベースから変更をキャプチャしようとするとき
は、以下の制限事項が特に適用されます。
• Enterprise、Standard、Developer のいずれかのエディションを使用する必要があります。
• SQL Server を完全バックアップ用に設定し、データのレプリケートの開始前にバックアップする必要が
あります。
• 復旧モデルを [Bulk logged] または [Full] に設定する必要があります。
• 複数のディスクへの Microsoft SQL Server のバックアップはサポートされていません。データベース
バックアップを異なるディスク上の複数のファイルに書き込むようにバックアップを定義している場
合、AWS DMS ではそのデータを読み取ることができず、バックアップは失敗します。
• DMS CDC タスクで使用されたソースデータベースの Microsoft SQL Server Replication Publisher 定義
は、そのタスクを削除しても削除されません。Microsoft SQL Server システム管理者がそれらの定義を
Microsoft SQL Server から削除する必要があります。
• CDC 中に、AWS DMS は SQL Server トランザクションログのバックアップを検索して、変更を読み取
る必要があります。AWS DMS では、サードパーティーのバックアップソフトウェアを使用して作成さ
れた SQL Server トランザクションログのバックアップの使用はサポートされていません。
API Version API バージョン 2016-01-01
63
AWS Database Migration Service ユーザーガイド
サポートされている圧縮方法
• SQL Server は、新たに作成されたテーブルの変更は、そのテーブルが公開されるまでキャプチャしませ
ん。テーブルが SQL Server ソースに追加されると、AWS DMS は公開の作成を管理します。ただし、
この処理には数分かかることがあります。この遅延中に新たに作成されたテーブルに行われたオペレー
ションは、ターゲットにキャプチャまたはレプリケーションされません。
• AWS DMS ユーザーアカウントには、接続先の Microsoft SQL Server データベースにおける sysAdmin
固定サーバーロールが必要です。
• AWS DMS の変更データキャプチャでは、SQL Server で FULLOGGING を有効にする必要がありま
す。SQL Server で FULLLOGGING を有効にする唯一の方法は、MS-REPLICATION または CHANGE
DATA CAPTURE (CDC) を有効にすることです。
• SQL Server の tlog は、変更が処理されるまで再利用できません。
• CDC オペレーションはメモリ最適化テーブルに対してはサポートされていません。この制限は、この機
能が初めて導入された Microsoft SQL Server 2014 とそれ以上のバージョンに適用されます。
サポートされている圧縮方法
次の表は、Microsoft SQL Server バージョンごとに AWS DMS によりサポートされている圧縮方法を示し
ています。
Microsoft SQL Server バージョン
行/ページの圧縮 (パーティション Vardecimal ストレージ形式
レベル)
2005
いいえ
いいえ
2008
はい
いいえ
2012
はい
いいえ
2014
はい
いいえ
Note
スパース列とカラム構造圧縮はサポートされていません。
Microsoft SQL Server AlwaysOn 可用性グループの使
用
Microsoft SQL Server AlwaysOn 可用性グループ機能は、データベースミラーリングにエンタープライズレ
ベルの代替方法を提供する高可用性および災害復旧ソリューションです。
AlwaysOn 可用性グループを AWS DMS でソースとして使用するには、以下の操作を実行します。
• 可用性レプリカ内のすべての Microsoft SQL Server インスタンスでディストリビューションオプション
を有効にします。
• AWS DMS コンソールで、Microsoft SQL Server ソースデータベース設定を開きます。[Server Name]
で、可用性グループリスナーにせていされたドメインネームサービス (DNS) 名または IP アドレスを指
定します。
AWS Database Migration Service タスクを初めて開始した場合、テーブル記事の作成が可用性グループ
サーバーにより複製されるため開始に通常より時間がかかることがあります。
API Version API バージョン 2016-01-01
64
AWS Database Migration Service ユーザーガイド
Microsoft SQL Server データベースの AWS Database
Migration Service のレプリケーションソースとしての設定
Microsoft SQL Server データベースの AWS Database
Migration Service のレプリケーションソースとしての
設定
変更を完全にレプリケートするには、Microsoft SQL Server の Enterprise、Standard、Developer のい
ずれかのエディションを使用する必要があります。これらのバージョンが必要なのは、MS-Replication
(EE、SE) または MS-CDC (EE、DEV) を含む唯一のバージョンであるためです。ソース SQL Server を完
全バックアップ用に設定する必要もあります。さらに、AWS DMS には、接続先の Microsoft SQL Server
データベースに対して sysAdmin 固定サーバーロールのあるユーザー (SQL Server インスタンスログイン)
で接続する必要があります。以下に、SQL Server を AWS DMS のレプリケーションソースとして設定す
る方法に関する情報を示します。
Microsoft SQL Server での MS-Replication を使用した
変更データキャプチャ
MS-REPLICATION を使用して変更をレプリケートするには、各ソーステーブルにプライマリキーが
必要です。ソーステーブルにプライマリキーがない場合は、MS-CDC を使用して変更をキャプチャ
できます。以前に MS-REPLICATION を有効にしていない場合は、SQL Server データベースで MSREPLICATION を使用できるようにする必要があります。MS-REPLICATION を有効にするには、以下の
手順に従うか、Microsoft SQL Server のドキュメントを参照してください。MS_REPLICATION を設定す
ると、Distribution という名前の新しい SYSTEM データベースがソース SQL Server データベースに追加
されます。
Microsoft SQL Server から [Configure Distribution] ウィザードを開くには
1.
Microsoft SQL Server Management Studio で、[Replication] フォルダーのコンテキスト (右クリック)
メニューを開き、[Configure Distribution] を選択します。
2.
[Distributor] ステップで、[<Microsoft SQL Server Name> will act as its own distributor] を選択しま
す。SQL Server により、ディストリビューションデータベースとログが作成されます。
Microsoft SQL Server での MS-CDC を使用した変更
データキャプチャ
プライマリキーのないテーブルをレプリケートする必要がある場合、以下で説明するように [Use MSCDC] オプションと [Do Not Use MS-Replication or MS-CDC] オプションを使用できます。
Important
プライマリキーまたは一意のインデックスを持たないテーブルをレプリケートすると、変更の
キャプチャに追加のデータベースリソースが必要になるため、パフォーマンスに悪影響が及ぶ可
能性があります。ただし、ターゲットテーブルに手動でインデックスを追加することで、プライ
マリキーと一意のインデックスがないことに関連するパフォーマンス上の問題を回避することが
できます。
Note
SQL Server によって tlog エントリが削除されないことがあります。ログエントリは、レプリケー
トされてバックアップされない限り再利用されません。
MS-CDC のセットアップ
MS-CDC をセットアップするには、まず次のコマンドを実行してデータベースで MS-CDC を有効にする
必要があります。
API Version API バージョン 2016-01-01
65
AWS Database Migration Service ユーザーガイド
MS-Replication または MS-CDC を使用できない場合
use [DBname]
EXEC sys.sp_cdc_enable_db
次に、以下のコマンドを実行して各ソーステーブルで MS-CDC を有効にする必要があります。
EXECUTE sys.sp_cdc_enable_table @source_schema = N'MySchema', @source_name =
N'MyTable', @role_name = NULL;
特定のテーブルの MS-CDC をセットアップする方法の詳細については、Microsoft SQL Server のドキュメ
ントを参照してください。
MS-Replication または MS-CDC を使用できない場合
データベースが MS-REPLICATION または MS-CDC 用に設定されていなくても、CDC のサポートされて
いる設定としてリストに表示されていれば (このセクションの冒頭を参照)、テーブルに対する変更をキャ
プチャできます。ただし、このような設定では、INSERT および DELETE DML イベントのみがキャプ
チャされます。UPDATE および TRUNCATE TABLE イベントは無視されます。実行されるオペレーショ
ンによっては、この設定が原因で、ターゲットデータベースとソースとで一貫性がなくなることがありま
す。
また、ソースでは変更されているがターゲットでは変更されていない行 (以前の無視された UPDATE イベ
ントがある行) には、DELETE イベントは適用されません。
PostgreSQL データベースの AWS Database
Migration Service のソースとしての使用
AWS Database Migration Service (AWS DMS) を使用して、1 つ以上の PostgreSQL データベースから
データを移行できます。PostgreSQL データベースをソースとして使用すると、別の PostgreSQL データ
ベースまたはサポートされている他のデータベースのいずれかにデータを移行できます。AWS DMS で
は、オンプレミスデータベース、EC2 インスタンス上のデータベース、Amazon RDS DB インスタンス上
のデータベースのソースとして、PostgreSQL バージョン 9.4 データベースがサポートされています。
SSL を使用して、PostgreSQL エンドポイントとレプリケーションインスタンスとの接続を暗号化できま
す。PostgreSQL エンドポイントで SSL を使用する方法の詳細については、「AWS Database Migration
Service での SSL の使用 (p. 43)」を参照してください。
AWS DMS では、プライマリキーを持つ PostgreSQL テーブルの変更データキャプチャ (CDC) がサポート
されています。テーブルにプライマリキーがない場合、WAL ログにはデータベース行の前イメージが含ま
れていないため、AWS DMS がテーブルを更新できません。
DB インスタンスが論理レプリケーションを使用するように設定されている場合、AWS DMS で
は Amazon RDS PostgreSQL データベースでの CDC がサポートされています。Amazon RDS
は、PostgreSQL DB インスタンスバージョン 9.4.9 以降および 9.5.4 以降の論理レプリケーションをサ
ポートしています。
PostgreSQL データベースと AWS DMS の使用の詳細については、以下のセクションを参照してくださ
い。
トピック
• PostgreSQL データベースを AWS Database Migration Service のソースとして使用する場合の前提条
件 (p. 67)
• PostgreSQL データベースを AWS Database Migration Service のソースとして使用する場合のセキュ
リティ要件 (p. 67)
API Version API バージョン 2016-01-01
66
AWS Database Migration Service ユーザーガイド
ソースとしての PostgreSQL の前提条件
• PostgreSQL データベースを AWS Database Migration Service のソースとして使用する場合の制
限 (p. 67)
• ソースとしての Amazon RDS PostgreSQL DB インスタンスの設定 (p. 68)
• PostgreSQL ソースデータベースからの AWS Database Migration Service アーティファクトの削
除 (p. 70)
• PostgreSQL データベースを AWS Database Migration Service のソースとして使用する場合の追加設
定 (p. 71)
PostgreSQL データベースを AWS Database Migration
Service のソースとして使用する場合の前提条件
PostgreSQL データベースを AWS DMS のソースにする場合、以下の操作を実行する必要があります。
• バージョン 9.4.x 以降の PostgreSQL データベースを使用します。
• PostgreSQL ソースデータベースに指定されたユーザーアカウントにスーパーユーザーアクセス許可を
付与します。
• AWS DMS レプリケーションサーバーの IP アドレスを pg_hba.conf 設定ファイルに追加します。
• postgresql.conf 設定ファイルで次のパラメーターと値を設定します。
• 設定 wal_level = logical
• 設定 max_replication_slots >=1
max_replication_slots 値は、実行するタスクの数に従って設定してください。たとえば、5 つのタ
スクを実行するには、少なくとも 5 つのスロットを設定する必要があります。スロットは、タスクが
開始するとすぐに自動的に開き、タスクが実行されなくなった場合でも開いたままです。開いている
スロットは手動で削除する必要があります。
• 設定 max_wal_senders >=1
max_wal_senders パラメーターは、実行可能な同時タスクの数を設定します。
• 設定 wal_sender_timeout =0
wal_sender_timeout パラメーターは、指定されたミリ秒数が過ぎても非アクティブなレプリケー
ション接続を終了します。デフォルトは 60 秒ですが、このパラメーターは 0 に設定することをお勧
めします (タイムアウトメカニズムが無効になります)。
PostgreSQL データベースを AWS Database Migration
Service のソースとして使用する場合のセキュリティ
要件
PostgreSQL をソースとして使用する場合の唯一のセキュリティ要件として、指定されるユーザーアカウ
ントは PostgreSQL データベースの登録済みユーザーでなければなりません。
PostgreSQL データベースを AWS Database Migration
Service のソースとして使用する場合の制限
PostgreSQL を AWS DMS のソースとして使用する場合、変更データキャプチャ (CDC) の以下の制限が適
用されます。
• キャプチャされたテーブルにはプライマリキーが必要です。テーブルにプライマリキーがない場
合、AWS DMS はそのテーブルの DELETE および UPDATE レコードオペレーションを無視します。
API Version API バージョン 2016-01-01
67
AWS Database Migration Service ユーザーガイド
ソースとしての Amazon RDS
PostgreSQL DB インスタンスの設定
• AWS DMS は、プライマリキーセグメントの更新の試みを無視します。このような場合、ターゲットは
その更新によってどの行も更新されないと識別しますが、PostgreSQL でのプライマリキーの更新結果
は予測できないため、どのレコードも例外テーブルには書き込まれません。
.
• AWS DMS では、[Start Process Changes from Timestamp] 実行オプションがサポートされていませ
ん。
• AWS DMS では、Amazon RDS for PostgreSQL での全ロードと変更処理がサポートされていま
す。PostgreSQL DB インスタンスを準備する方法と、CDC を使用するようにそのインスタンスを設定
する方法については、「ソースとしての Amazon RDS PostgreSQL DB インスタンスの設定 (p. 68)」
を参照してください。
• AWS DMS は、JSON データ型など、一部の PostgreSQL データ型をマッピングしません。JSON は
CLOB に変換されません。
• 大文字と小文字の組み合わせが異なる同じ名前 (table1、TABLE1、Table1) を持つ複数のテーブルをレ
プリケートすると、予測できない動作が生じるため、AWS DMS ではサポートされていません。
• テーブルが内部関数またはプロシージャ本文ブロックに保持されているか、ネストしている他の構造に
保持されている限り、AWS DMS ではテーブルに対する CREATE、ALTER、DROP DDL ステートメン
トの変更処理がサポートされています。
たとえば、以下の変更はキャプチャされません。
CREATE OR REPLACE FUNCTION attu.create_distributors1() RETURNS void
LANGUAGE plpgsql
AS $$
BEGIN
create table attu.distributors1(did serial PRIMARY KEY,name
varchar(40) NOT NULL);
END;
$$;
• AWS DMS では、TRUNCATE オペレーションの変更処理はサポートされていません。
• AWS DMS では、パーティション分割されたテーブルのレプリケーションはサポートされていません。
パーティション分割されたテーブルが検出された場合、以下の状況が発生します。
• エンドポイントは、親テーブルと子テーブルのリストを報告します。
• AWS DMS は、ターゲットのテーブルを、選択したテーブルと同じプロパティを持つ通常のテーブル
として作成します。
• ソースデータベースの親テーブルに子テーブルと同じプライマリキー値がある場合、「重複する
キー」エラーが生成されます。
Note
パーティション分割されたテーブルを PostgreSQL ソースから PostgreSQL ターゲットにレプリ
ケートする場合、まずターゲットで親テーブルと子テーブルを手動で作成する必要があります。
次に、それらのテーブルにレプリケートする別個のタスクを定義します。その場合、タスク設定
を [Truncate before loading] に設定します。
ソースとしての Amazon RDS PostgreSQL DB インス
タンスの設定
PostgreSQL DB インスタンス用の AWS マスターユーザーアカウントを AWS DMS の PostgreSQL ソー
スエンドポイント用のユーザーアカウントとして使用できます。マスターユーザーアカウントには、変
更データキャプチャ (CDC) を設定するために必要なロールがあります。マスターユーザーアカウント以
外のアカウントを使用する場合、アカウントには rds_superuser ロールと rds_replication ロールが必要で
API Version API バージョン 2016-01-01
68
AWS Database Migration Service ユーザーガイド
ソースとしての Amazon RDS
PostgreSQL DB インスタンスの設定
す。rds_replication ロールは、論理スロットを管理し、論理スロットを使用してデータをストリーミング
するアクセス権限を付与します。
DB インスタンスのマスターユーザーアカウントを使用しない場合は、使用するアカウントのマスター
ユーザーアカウントから複数のオブジェクトを作成する必要があります。必要なオブジェクトの作成につ
いては、「マスターユーザーアカウントの使用なしでの Amazon RDS for PostgreSQL データベースの移
行 (p. 69)」を参照してください。
Amazon RDS for PostgreSQL DB インスタンス での CDC の使用
PostgreSQL のネイティブ論理レプリケーション機能を使用して、Amazon RDS PostgreSQL DB インスタ
ンスのデータベースの移行中に CDC を有効にすることができます。このアプローチにより、ダウンタイ
ムが短くなり、確実にターゲットデータベースがソース PostgreSQL データベースと同期されるようにな
ります。Amazon RDS は、PostgreSQL DB インスタンスバージョン 9.4.9 以降および 9.5.4 以降の論理レ
プリケーションをサポートしています。
RDS PostgreSQL DB インスタンスに対して論理レプリケーションを有効にするには、以下の手順を実行
します。
• 一般的に、PostgreSQL DB インスタンス用の AWS マスターユーザーアカウントを PostgreSQL ソース
エンドポイント用のユーザーアカウントとして使用します。マスターユーザーアカウントには、CDC を
設定するために必要なロールがあります。マスターユーザーアカウント以外のアカウントを使用する場
合は、使用するアカウントのマスターユーザーアカウントから複数のオブジェクトを作成する必要があ
ります。詳細については、「マスターユーザーアカウントの使用なしでの Amazon RDS for PostgreSQL
データベースの移行 (p. 69)」を参照してください。
• DB パラメータグループの rds.logical_replication パラメーターを 1 に設定します。これは静的パ
ラメーターであり、有効にするには DB インスタンスの再起動が必要です。このパラメーターの適用時
に、AWS DMS によって wal_level、max_wal_senders、max_replication_slots、max_connections
のパラメーターが設定されます。これらのパラメーターの変更により、生成される WAL が増えること
があるため、論理スロットを使用している場合にのみ、rds.logical_replication パラメーターを設定
してください。
マスターユーザーアカウントの使用なしでの Amazon RDS for
PostgreSQL データベースの移行
Amazon RDS PostgreSQL DB インスタンス用のマスターユーザーアカウントをソースとして使用しない
場合は、データ定義言語 (DDL) イベントをキャプチャするために複数のオブジェクトを作成する必要があ
ります。マスターアカウント以外のアカウントでこれらのオブジェクトを作成し、マスターユーザーアカ
ウントでトリガーを作成します。
これらのオブジェクトを作成するには、以下の手順を実行します。マスターアカウント以外のユーザーア
カウントをこの手順では NoPriv アカウントと呼んでいます。
1.
オブジェクトが作成されるスキーマを選択します。デフォルトのスキーマは public です。スキーマ
が存在し、NoPriv アカウントからアクセス可能であることを確認します。
2.
3.
NoPriv アカウントを使用して PostgreSQL DB インスタンスにログインします。
以下のコマンドを実行して awsdms_ddl_audit テーブルを作成します。コード内の <objects_schema>
は、使用するスキーマの名前に置き換えてください。
create table <objects_schema>.awsdms_ddl_audit
(
c_key
bigserial primary key,
c_time
timestamp,
-- Informational
c_user
varchar(64), -- Informational: current_user
c_txn
varchar(16), -- Informational: current transaction
API Version API バージョン 2016-01-01
69
AWS Database Migration Service ユーザーガイド
PostgreSQL ソースからのアーティファクトの削除
c_tag
varchar(24),
c_oid
integer,
c_name
varchar(64),
c_schema varchar(64),
current_schema
c_ddlqry text
-----
Either 'CREATE
For future use
For future use
For future use
TABLE' or 'ALTER TABLE' or 'DROP TABLE'
- TG_OBJECTID
- TG_OBJECTNAME
- TG_SCHEMANAME. For now - holds
-- The DDL query associated with the current DDL event
)
4.
以下のコマンドを実行して awsdms_intercept_ddl 関数を作成します。コード内の <objects_schema>
は、使用するスキーマの名前に置き換えてください。
CREATE OR REPLACE FUNCTION <objects_schema>.awsdms_intercept_ddl()
RETURNS event_trigger
LANGUAGE plpgsql
AS $$
declare _qry text;
BEGIN
if (tg_tag='CREATE TABLE' or tg_tag='ALTER TABLE' or tg_tag='DROP TABLE') then
SELECT current_query() into _qry;
insert into <objects_schema>.awsdms_ddl_audit
values
(
default,current_timestamp,current_user,cast(TXID_CURRENT()as
varchar(16)),tg_tag,0,'',current_schema,_qry
);
delete from <objects_schema>.awsdms_ddl_audit;
end if;
END;
$$;
5.
6.
NoPriv アカウントからログアウトし、rds_superuser ロールが割り当てられたアカウントを使用して
ログインします。
以下のコマンドを実行してイベントトリガー awsdms_intercept_ddl を作成します。
CREATE EVENT TRIGGER awsdms_intercept_ddl ON ddl_command_end
EXECUTE PROCEDURE <objects_schema>.awsdms_intercept_ddl();
前の手順を完了したら、NoPriv アカウントを使用して AWS DMS ソースエンドポイントを作成できます。
PostgreSQL ソースデータベースからの AWS
Database Migration Service アーティファクトの削除
DDL イベントをキャプチャするため、移行タスクの開始時に AWS DMS によりさまざまなアーティファ
クトが PostgreSQL データベースに作成されます。タスクが完了したら、これらのアーティファクトを削
除できます。アーティファクトを削除するには、以下のステートメントを発行します (示されている順序
で)。{AmazonRDSMigration} は、アーティファクトが作成されたスキーマです。
drop event trigger awsdms_intercept_ddl;
イベントトリガーは特定のスキーマに属していない点に注意してください。
drop function {AmazonRDSMigration}.awsdms_intercept_ddl()
API Version API バージョン 2016-01-01
70
AWS Database Migration Service ユーザーガイド
PostgreSQL の詳細設定
drop table {AmazonRDSMigration}.awsdms_ddl_audit
drop schema {AmazonRDSMigration}
Note
スキーマを削除する場合でも、細心の注意を払ってください。運用中のスキーマ (特に公開スキー
マ) は絶対に削除しないでください。
PostgreSQL データベースを AWS Database Migration
Service のソースとして使用する場合の追加設定
PostgreSQL データベースからデータを移行するときは、2 つの方法で詳細設定を追加できます。
• 追加接続属性に値を追加して、DDL イベントをキャプチャし、運用中の DDL データベースアーティ
ファクトが作成されたスキーマを指定します。詳細については、「PostgreSQL (p. 153)」を参照して
ください。
• 接続文字列パラメーターを上書きできます。以下のいずれかを行う必要がある場合は、このオプション
を選択します。
• 内部 AWS DMS パラメーターを指定します。このようなパラメーターが必要になることはめったにな
いため、ユーザーインターフェイスには表示されません。
• 特定のデータベースクライアントのパススルー (passthru) 値を指定します。AWS DMS では、データ
ベースクライアントに渡される接続文字列にパススルーパラメーターが含まれています。
MySQL 互換データベースの AWS Database
Migration Service のソースとしての使用
AWS Database Migration Service を使用すると、1 つ以上の MySQL、MariaDB、または Amazon Aurora
データベースからデータを移行できます。MySQL 互換データベースをソースとして使用すると、別の
MySQL 互換データベースまたはサポートされている他のデータベースのいずれかにデータを移行できま
す。MySQL バージョン 5.5、5.6、5.7 と MariaDB および Amazon Auroraは、オンプレミス、Amazon
RDS、および Amazon EC2 インスタンスデータベースでサポートされています。Amazon RDS MySQL を
使用した変更データキャプチャ (CDC) を有効にするには、Amazon RDS MySQL バージョン 5.6 以上を使
用する必要があります。
Note
ソースストレージエンジン (MyISAM、MEMORY など) にかかわらず、AWS DMS によってデ
フォルトで InnoDB テーブルとして MySQL 互換のターゲットテーブルが作成されます。InnoDB
以外のストレージエンジンを使用するテーブルが必要な場合は、手動でテーブルを MySQL 互換
のターゲットで作成し、"Do Nothing" モードで移行できます。"Do Nothing" モードの詳細につい
ては、「全ロードタスク設定 (p. 89)」を参照してください。
SSL を使用して、MySQL 互換のエンドポイントとレプリケーションインスタンスとの接続を暗号化で
きます。MySQL 互換のエンドポイントで SSL を使用する方法の詳細については、「AWS Database
Migration Service での SSL の使用 (p. 43)」を参照してください。
MySQL 互換データベースと AWS Database Migration Service の使用方法の詳細については、以下のセク
ションを参照してください。
トピック
• MySQL データベースを AWS Database Migration Service のソースとして使用する場合の前提条
件 (p. 72)
• MySQL データベースを AWS Database Migration Service のソースとして使用する場合の制
限 (p. 73)
API Version API バージョン 2016-01-01
71
AWS Database Migration Service ユーザーガイド
MySQL をソースとして使用する場合の前提条件
• MySQL データベースを AWS Database Migration Service のソースとして使用する場合のセキュリ
ティ要件 (p. 73)
MySQL データベースを AWS Database Migration
Service のソースとして使用する場合の前提条件
MySQL データベースを AWS DMS のソースとして使用し始める前に、次の前提条件を満たしていること
を確認してください。
• 必要なセキュリティ設定が加えられた MySQL アカウント。詳細については、「MySQL データベースを
AWS Database Migration Service のソースとして使用する場合のセキュリティ要件 (p. 73)」を参照
してください。
• ネットワーク内でアクセス可能なレプリケート対象テーブルを格納する MySQL 互換データベース。
• MySQL Community Edition
• MySQL Standard Edition
• MySQL Enterprise Edition
• MySQL Cluster Carrier Grade Edition
• MariaDB
• Amazon Aurora
• ソースが Amazon RDS MySQL または MariaDB DB インスタンスか Amazon Aurora クラスターである
場合、自動バックアップを有効にする必要があります。自動バックアップのセットアップの詳細につい
ては、『Amazon RDS ユーザーガイド』を参照してください。
• 変更データキャプチャ (CDC) を使用する場合、バイナリロギングを有効にして設定する必要がありま
す。バイナリロギングを有効にするには、MySQL の my.ini (Windows) または my.cnf (UNIX) ファイル
で以下のパラメーターを設定する必要があります。
パラメーター
値
server_id
このパラメーターは、1 以上の値に設定します。
log-bin
パスをバイナリログファイル (log-bin=E:\MySql_Logs\BinLog) に設定しま
す。ファイル拡張子を含めないでください。
binlog_format
このパラメーターは row に設定します。
expire_logs_days
このパラメーターは、1 以上の値に設定します。ディスク容量の使いすぎを
防ぐため、デフォルト値の 0 は使用しないことをお勧めします。
binlog_checksum
このパラメーターは none に設定します。
binlog_row_image
このパラメーターは full に設定します。
• Amazon RDS MySQL DB インスタンスをソースとして使用して変更データキャプチャ (CDC) を使用す
るには、AWS DMS がバイナリログにアクセスできる必要があります。Amazon RDS は、DB インス
タンスからかなり積極的にバイナリログを消去します。Amazon RDS 上の MySQL DB インスタンスで
CDC を使用するには、バイナリログが MySQL DB インスタンスに残る時間を長くしてください。たと
えば、ログ保持を 24 時間に伸ばすには、次のコマンドを実行します。
call mysql.rds_set_configuration('binlog retention hours', 24);
• AWS Database Migration Service を使用してクラスター化された (NDB) テーブルをレプリケートするに
は、MySQL の my.ini (Windows) または my.cnf (UNIX) ファイルで以下のパラメーターを設定する必要
API Version API バージョン 2016-01-01
72
AWS Database Migration Service ユーザーガイド
MySQL をソースとして使用する場合の制限
があります。クラスター化された (NDB) テーブルのレプリケートは、CDC を使用する場合のみ必要で
す。
パラメーター
値
ndb_log_bin
このパラメーターは on に設定します。この値により、クラスター化された
テーブルでの変更が確実にバイナリログに記録されます。
ndb_log_update_as_writeこのパラメーターは OFF に設定します。この値に設定すると、UPDATE ス
テートメントが INSERT ステートメントとしてバイナリログに書き込まれ
なくなります。
ndb_log_updated_only
このパラメーターは OFF に設定します。この値に設定すると、バイナリロ
グに変更された列だけでなく行全体が含められます。
MySQL データベースを AWS Database Migration
Service のソースとして使用する場合の制限
MySQL データベースをソースとして使用する場合、AWS DMS では以下のものがサポートされません。
• DDL ステートメント Truncate Partition、Drop Table、Rename Table。
• ALTER TABLE <table_name> ADD COLUMN <column_name> ステートメントを使用して、テーブルの先頭
または中間に列を追加します。
• 名前に大文字と小文字の両方が含まれるテーブルから変更をキャプチャします。
• AR_H_USER ヘッダー列。
• 列の AUTO_INCREMENT 属性は、ターゲットデータベース列に移行されません。
• バイナリログが標準のブロックストレージに保存されていると、変更をキャプチャします。たとえば、
バイナリログが Amazon S3 に保存されていると、CDC は機能しません。
MySQL データベースを AWS Database Migration
Service のソースとして使用する場合のセキュリティ
要件
セキュリティ要件として、AWS DMS ユーザーには次の権限を持つ ReplicationAdmin ロールが必要です。
• REPLICATION CLIENT – この権限は、変更データキャプチャ (CDC) タスクにのみ必要です。つまり、
全ロードのみのタスクにはこの権限は必要ありません。
• REPLICATION SLAVE – この権限は、変更データキャプチャ (CDC) タスクにのみ必要です。つまり、全
ロードのみのタスクにはこの権限は必要ありません。
• SUPER – この権限は、バージョン 5.6.6 より前の MySQL でのみ必要です。
AWS DMS ユーザーには、レプリケーション対象に指定されたソーステーブルに対する SELECT 権限も必
要です。
API Version API バージョン 2016-01-01
73
AWS Database Migration Service ユーザーガイド
SAP ASE のソースとしての使用
SAP ASE データベースの AWS Database Migration
Service のソースとしての使用
AWS Database Migration Service を使用すると、SAP Adaptive Server Enterprise (ASE) データベース (旧
Sybase) からデータを移行できます。SAP ASE データベースをソースとして使用すると、サポートされて
いる他のいずれかの AWS DMS ターゲットデータベースにデータを移行できます。
SAP ASE データベースと AWS Database Migration Service を使用する方法の詳細については、以下のセ
クションを参照してください。
トピック
• SAP ASE データベースを AWS Database Migration Service のソースとして使用する場合の前提条
件 (p. 74)
• SAP ASE を AWS Database Migration Service のソースとして使用する場合の制限 (p. 74)
• SAP ASE を AWS Database Migration Service のソースとして使用する場合に必要なユーザーアカウ
ントアクセス許可 (p. 75)
• 切り捨てポイントの削除 (p. 75)
SAP ASE データベースを AWS Database Migration
Service のソースとして使用する場合の前提条件
SAP ASE データベースを AWS DMS のソースにする場合、以下の操作を実行する必要があります。
• sp_setreptable コマンドを使用して、テーブルで SAP ASE レプリケーションを有効にする必要があり
ます。
• SAP ASE データベースで RepAgent を無効にする必要があります。
• 非ラテン言語 (中国語など) で構成された Windows EC2 インスタンスにインストールされた SAP ASE
バージョン15.7 にレプリケートする場合、AWS DMS を使用するには SAP ASE 15.7 SP121 をターゲッ
ト SAP ASE マシンにインストールする必要があります。
SAP ASE を AWS Database Migration Service のソー
スとして使用する場合の制限
SAP ASE データベースを AWS Database Migration Service (AWS DMS) のソースとして使用する場合
は、次の制限が適用されます。
• SAP ASE データベースごとに AWS DMS タスクを 1 つのみ実行できます。
• テーブルの名前変更はサポートされていません。例: sp_rename 'Sales.SalesRegion', 'SalesReg;
• 列の名前変更はサポートされていません。例: sp_rename 'Sales.Sales.Region', 'RegID',
'COLUMN';
• バイナリデータ型文字列の末尾にあるゼロ値は、ターゲットデータベースにレプリケートされるときに
切り捨てられます。たとえば、ソーステーブル内の 0x0000000000000000000000000100000100000000 は
ターゲットテーブルでは 0x00000000000000000000000001000001 になります。
• データベースのデフォルトで NULL 値が許容されない場合、NULL 値が許容されない列を持つターゲッ
トテーブルが AWS DMS により作成されます。そのため、全ロード CDC レプリケーションタスクに空
の値が含まれる場合は、エラーが発生します。
以下のコマンドを使用してソースデータベースで NULL を許容することにより、これらのエラーの発生
を防ぐことができます。
API Version API バージョン 2016-01-01
74
AWS Database Migration Service ユーザーガイド
SAP ASE をソースとして使用する場
合のユーザーアカウントアクセス許可
sp_dboption <database name>, 'allow nulls by default', 'true'
go
use <database name>
CHECKPOINT
go
• reorg rebuild インデックスコマンドは現在サポートされていません。
SAP ASE を AWS Database Migration Service のソー
スとして使用する場合に必要なユーザーアカウントア
クセス許可
SAP ASE データベースを AWS DMS タスクでソースとして使用するには、AWS DMS SAP ASE データ
ベース定義で指定されたユーザーに SAP ASE データベースでの以下のアクセス許可を付与する必要があ
ります。
• sa_role
• replication_role
• sybase_ts_role
• enableReplication 接続プロパティを Y に設定した場合、sp_setreptable アクセス許可も付与されて
いる必要があります。接続プロパティの詳細については、「AWS Database Migration Service での追加
の接続属性の使用 (p. 152)」を参照してください。
切り捨てポイントの削除
タスクが開始すると、AWS DMS は、レプリケーションプロセスが進行中であることを示す
$replication_truncation_point エントリを syslogshold システムビューで確立します。AWS DMS が
動作している間、すでにターゲットにコピーされたデータの量に応じて、レプリケーション切り捨てポイ
ントが定期的に進められます。
$replication_truncation_point エントリが確立されたら、データベースログが大きくなりすぎるのを防
ぐため、AWS DMS タスクを常に実行したままにしておく必要があります。AWS DMS タスクを永続的に
停止する場合、次のコマンドを発行してレプリケーション切り捨てポイントを削除する必要があります。
dbcc settrunc('ltm','ignore')
切り捨てポイントが削除されると、AWS DMS タスクを再開することはできません。ログは、引き続き
チェックポイントで自動的に切り捨てられます (自動切り捨てが設定されている場合)。
API Version API バージョン 2016-01-01
75
AWS Database Migration Service ユーザーガイド
データ移行のターゲット
AWS Database Migration Service (AWS DMS) では、最もよく利用されているデータベースの多くをデー
タレプリケーションのターゲットとして使用できます。ターゲットには、Amazon Elastic Compute Cloud
(Amazon EC2) インスタンス、Amazon Relational Database Service (Amazon RDS) DB インスタンス、ま
たはオンプレミスデータベースを使用できます。
Note
ソースストレージエンジン (MyISAM、MEMORY など) にかかわらず、AWS DMS によってデ
フォルトで InnoDB テーブルとして MySQL 互換のターゲットテーブルが作成されます。InnoDB
以外のストレージエンジンを使用するテーブルが必要な場合は、手動でテーブルを MySQL 互換
のターゲットで作成し、"Do Nothing" モードで移行できます。"Do Nothing" モードの詳細につい
ては、「全ロードタスク設定 (p. 89)」を参照してください。
データベースには次のものが含まれます。
オンプレミスおよび EC2 インスタンスデータベース
• Enterprise、Standard、Standard One、および Standard Two エディションの Oracle バージョン
10g、11g、12c
• Enterprise、Standard、Workgroup、Developer エディションの Microsoft SQL Server バージョン
2005、2008、2008R2、2012、2014。Web および Express エディションはサポートされていません。
• MySQL バージョン 5.5、5.6、5.7
• MariaDB (MySQL 互換データターゲットとしてサポートされています)
• PostgreSQL バージョン 9.3 以降
• SAP Adaptive Server Enterprise (ASE) 15.7 以降
Amazon RDS インスタンスデータベース Amazon Redshift
• Oracle バージョン 11g (バージョン 11.2.0.3.v1 以降) および 12c (Enterprise、Standard、Standard
One、Standard Two エディション)
• Enterprise、Standard、Workgroup、および Developer エディションの Microsoft SQL Server バージョ
ン 2008R2、2012、2014。Web および Express エディションはサポートされていません。
• MySQL バージョン 5.5、5.6、5.7
• MariaDB (MySQL 互換データターゲットとしてサポートされています)
• PostgreSQL バージョン 9.3 以降
• Amazon Aurora
API Version API バージョン 2016-01-01
76
AWS Database Migration Service ユーザーガイド
Oracle のターゲットとしての使用
• Amazon Redshift
AWS Database Migration Service のターゲットとし
ての Oracle データベースの使用
AWS DMS を使用して別の Oracle データベースまたはサポートされている他のいずれかのデータベースか
ら、Oracle データベースターゲットにデータを移行できます。
SSL を使用して、Oracle エンドポイントとレプリケーションインスタンスとの接続を暗号化できま
す。Oracle エンドポイントで SSL を使用する方法の詳細については、「AWS Database Migration Service
での SSL の使用 (p. 43)」を参照してください。
AWS DMS では、オンプレミスおよび EC2 インスタンスにおいて、Enterprise、Standard、Standard
One、および Standard Two エディションの Oracle バージョン 10g、11g、および12c がターゲッ
トとしてサポートされています。AWS DMS では、Amazon RDS インスタンスデータベース用の
Enterprise、Standard、Standard One、および Standard Two エディションの Oracle バージョン 11g
(バージョン 11.2.0.3.v1 以降) および 12c がサポートされています。
Oracle をターゲットとして使用するときは、ターゲット接続に使用されるスキーマ/ユーザーにデータを移
行することを前提とします。別のスキーマにデータを移行する場合は、スキーマ変換を使用する必要があ
ります。たとえば、ターゲットエンドポイントがユーザー RDSMASTER に接続し、ユーザー PERFDATA
から PERFDATA に移行する場合は、以下のように変換を作成する必要があります。
{
"rule-type": "transformation",
"rule-id": "2",
"rule-name": "2",
"rule-action": "rename",
"rule-target": "schema",
"object-locator": {
"schema-name": "PERFDATA"
},
"value": "PERFDATA"
}
変換の詳細については、「 JSON を使用した選択および変換テーブルマッピング (p. 98)」を参照して
ください。
AWS Database Migration Service のターゲットとして
Oracle を使用する場合の制限
データ移行のターゲットとして Oracle を使用する場合の制限は、以下のとおりです。
• AWS DMS は、ターゲット Oracle データベースにスキーマを作成しません。必要なすべてのスキーマ
をターゲット Oracle データベースで作成する必要があります。Oracle ターゲットのスキーマ名がすで
に存在している必要があります。ソーススキーマのテーブルは、AWS DMS がターゲットインスタンス
への接続に使用するユーザー/スキーマにインポートされます。複数のスキーマに移行する必要がある場
合、複数のレプリケーションタスクを作成する必要があります。
• AWS DMS では、テーブルに INDEXTYPE CONTEXT を使用する場合に Use direct path full load
オプションがサポートされていません。回避策として、配列ロードを使用できます。
• 最適化バッチ適用モードでは、差分変更テーブルへのロードに、XMLType をサポートしない直接パスが
使用されます。回避策として、トランザクション適用モードを使用できます。
API Version API バージョン 2016-01-01
77
AWS Database Migration Service ユーザーガイド
ターゲットとして Oracle を使用す
る場合のユーザーアカウント権限
ターゲットとして Oracle を使用する場合に必要な
ユーザーアカウント権限
AWS Database Migration Service タスクで Oracle ターゲットを使用するには、AWS DMS Oracle データ
ベース定義で指定されているユーザーアカウントに、Oracle データベースにおける次の権限を付与する必
要があります。
• SELECT ANY TRANSACTION
• V$NLS_PARAMETERS での SELECT
• V$TIMEZONE_NAMES での SELECT
• ALL_INDEXES での SELECT
• ALL_OBJECTS での SELECT
• DBA_OBJECTS での SELECT
• ALL_TABLES での SELECT
• ALL_USERS での SELECT
• ALL_CATALOG での SELECT
• ALL_CONSTRAINTS での SELECT
• ALL_CONS_COLUMNS での SELECT
• ALL_TAB_COLS での SELECT
• ALL_IND_COLUMNS での SELECT
• DROP ANY TABLE
• SELECT ANY TABLE
• INSERT ANY TABLE
• UPDATE ANY TABLE
• CREATE ANY VIEW
• DROP ANY VIEW
• CREATE ANY PROCEDURE
• ALTER ANY PROCEDURE
• DROP ANY PROCEDURE
• CREATE ANY SEQUENCE
• ALTER ANY SEQUENCE
• DROP ANY SEQUENCE
上記の権限は、以下に指定された要件のために付与します。
• 特定のテーブルリストを使用するには、レプリケートされたすべてのテーブルに SELECT を付与
し、ALTER も付与します。
• ユーザーがデフォルトテーブルスペースにテーブルを作成できるようにするには、GRANT UNLIMITED
TABLESPACE 権限を付与します。
• ログオンのために、CREATE SESSION 権限を付与します。
• 直接パスを使用している場合、LOCK ANY TABLE 権限を付与します。
• 全ロード設定で [DROP and CREATE table] オプションまたは [TRUNCATE before loading] オプション
が選択されており、ターゲットテーブルスキーマが AWS DMS ユーザーのものと異なる場合、DROP
ANY TABLE 権限を付与します。
• ターゲットテーブルスキーマが AWS DMS ユーザーのものと異なる場合に変更を変更テーブルまたは監
査テーぶるに保存するには、CREATE ANY TABLE 権限と CREATE ANY INDEX 権限を付与します。
API Version API バージョン 2016-01-01
78
AWS Database Migration Service ユーザーガイド
ターゲットとしての Oracle の設定
ターゲットデータベース上の AWS Database Migration Service
に必要な読み取り権限
AWS DMS ユーザーアカウントには、以下の DBA テーブルの読み取り権限を付与する必要があります。
• DBA_USERS での SELECT
• DBA_TAB_PRIVS での SELECT
• DBA_OBJECTS での SELECT
• DBA_SYNONYMS での SELECT
• DBA_SEQUENCES での SELECT
• DBA_TYPES での SELECT
• DBA_INDEXES での SELECT
• DBA_TABLES での SELECT
• DBA_TRIGGERS での SELECT
必要な権限のいずれかを V$xxx に付与できない場合は、V_$xxx に付与します。
AWS Database Migration Service のターゲットとして
の Oracle データベースの設定
Oracle データベースをデータ移行ターゲットとして使用するには、AWS DMS に Oracle ユーザーアカウ
ントを提供する必要があります。ユーザーアカウントには、「ターゲットとして Oracle を使用する場合に
必要なユーザーアカウント権限 (p. 78)」で指定されているように、Oracle データベースでの読み取り/
書き込み権限が必要です。
Microsoft SQL Server データベースの AWS
Database Migration Service のターゲットとしての
使用
AWS DMS を使用して、Microsoft SQL Server データベースにデータを移行できます。SQL Server デー
タベースをターゲットとして使用すると、別の SQL Server データベースまたはサポートされている他の
データベースのいずれかからデータを移行できます。
オンプレミスおよび Amazon EC2 インスタンスデータベースでは、Enterprise、Standard、Workgroup、
および Developer エディションの SQL Server バージョン 2005、2008、2008R2、2012、および 2014 が
AWS DMS によりターゲットとしてサポートされています。Web および Express エディションはサポート
されていません。
Amazon RDS インスタンスデータベースでは、Enterprise、Standard、Workgroup、Developer エディ
ションの SQL Server バージョン 2008R2、2012、および 2014 が AWS DMS によりターゲットとしてサ
ポートされています。Web および Express エディションはサポートされていません。
AWS DMS および SQL Server ターゲットデータベースを使用する方法の詳細については、以下を参照し
てください。
トピック
• SQL Server を AWS Database Migration Service のターゲットとして使用する場合の制限 (p. 80)
• AWS Database Migration Service のターゲットとして SQL Server を使用する場合のセキュリティ要
件 (p. 80)
API Version API バージョン 2016-01-01
79
AWS Database Migration Service ユーザーガイド
SQL Server を AWS Database Migration Service
のターゲットとして使用する場合の制限
SQL Server を AWS Database Migration Service の
ターゲットとして使用する場合の制限
SQL Server データベースを AWS DMS のターゲットとして使用する場合、以下の制限が適用されます。
• 計算れた列を含む SQL Server ターゲットテーブルを手動で作成する場合、BCP 一括コピーユーティリ
ティを使用すると全ロードレプリケーションがサポートされません。全ロードレプリケーションを使用
するには、コンソールの [Advanced] タブで [Use BCP for loading tables] オプションを無効にします。
• SQL Server 空間データ型 (GEOMETRY と GEOGRAPHY) を持つテーブルをレプリケートすると、挿
入した空間参照識別子 (SRID) がすべて AWS DMS によりデフォルトの SRID に置き換えられます。デ
フォルトの SRID は、GEOMETRY は 0、GEOGRAPHY は 4326 です。
AWS Database Migration Service のターゲットとして
SQL Server を使用する場合のセキュリティ要件
以下では、Microsoft SQL Server ターゲットとともに AWS DMS を使用する場合のセキュリティ要件につ
いて説明します。
• AWS DMS ユーザーアカウントには、接続先の Microsoft SQL Server データベースにおける少なくとも
db_owner ユーザーロールが必要です。
• Microsoft SQL Server システム管理者は、すべての AWS DMS ユーザーアカウントにこのアクセス許可
を付与する必要があります。
PostgreSQL データベースの AWS Database
Migration Service のターゲットとしての使用
AWS DMS を使用して、別の PostgreSQL データベースまたはサポートされている他のいずれかのデータ
ベースから PostgreSQL データベースにデータを移行できます。
オンプレミス、Amazon RDS、および EC2 インスタンスデータベースでは、PostgreSQL バージョン 9.3
以降がサポートされています。
AWS Database Migration Service のターゲットとして
PostgreSQL を使用する場合の制限
PostgreSQL データベースを AWS DMS のターゲットとして使用する場合、以下の制限が適用されます。
• JSON データ型はネイティブ CLOB データ型に変換されます。
PostgreSQL データベースを AWS Database Migration
Service のターゲットとして使用する場合のセキュリ
ティ要件
セキュリティ上の観点から、データ移行に使用されるユーザーアカウントは、ターゲットとして使用する
PostgreSQL データベースにおける登録済みユーザーにする必要があります。
API Version API バージョン 2016-01-01
80
AWS Database Migration Service ユーザーガイド
ターゲットとしての MySQL の使用
MySQL 互換データベースの AWS Database
Migration Service のターゲットとしての使用
AWS DMS を使用して、別の MySQL データベースまたはサポートされている他のいずれかのデータベー
スから MySQL データベースにデータを移行できます。
MySQL バージョン 5.5、5.6、および 5.7 と MariaDB および Amazon Aurora がサポートされています。
AWS Database Migration Service のターゲットして
MySQL 互換データベースを使用する場合の前提条件
MySQL データベースを AWS DMS のターゲットとして使用し始める前に、次の前提条件を満たしている
ことを確認してください。
• 必要なセキュリティ設定が加えられた MySQL アカウント。詳細については、「AWS Database
Migration Service のターゲットとして MySQL を使用する場合のセキュリティ要件 (p. 82)」を参照し
てください。
• ネットワーク内でアクセス可能なレプリケート対象テーブルを格納する MySQL データベース。AWS
DMS では、以下の MySQL エディションがサポートされています。
• MySQL Community Edition
• MySQL Standard Edition
• MySQL Enterprise Edition
• MySQL Cluster Carrier Grade Edition
• MariaDB
• Amazon Aurora
• ロード中は、外部キーを無効にすることを検討してください。ロード中に MySQL 互換データベースで
外部キーチェックを無効にするには、ターゲット MySQL、Aurora、MariaDB エンドポイント接続情報
の [Advanced] セクションで [Extra Connection Attributes] に次のコマンドを追加します。
initstmt=SET FOREIGN_KEY_CHECKS=0
AWS Database Migration Service のターゲットとして
MySQL を使用する場合の制限
MySQL データベースをソースとして使用する場合、AWS DMS では以下のものがサポートされません。
• DDL ステートメント Truncate Partition、Drop Table、Rename Table。
• ALTER TABLE <table_name> ADD COLUMN <column_name> ステートメントを使用して、テーブルの先頭
または中間に列を追加します。
さらに、列の値を既存の値に更新すると、MySQL により 0 rows affected 警告が返されます。一
方、Oracle ではこの場合 1 行の更新が実行されます。MySQL の結果により、awsdms_apply_exceptions
制御テーブルにエントリが生成され、以下の警告が生成されます。
Some changes from the source database had no impact when applied to
API Version API バージョン 2016-01-01
81
AWS Database Migration Service ユーザーガイド
MySQL をターゲットとして使
用する場合のセキュリティ要件
the target database. See awsdms_apply_exceptions table for details.
AWS Database Migration Service のターゲットとして
MySQL を使用する場合のセキュリティ要件
MySQL をデータ移行のターゲットとして使用する場合、AWS DMS ユーザーアカウントに MySQL アカウ
ントアクセスを提供する必要があります。このユーザーには、MySQL データベースでの読み取り/書き込
み権限が必要です。
必要なアクセス権限を作成するには、以下のコマンドを実行します。
CREATE USER '<user acct>'@'%' IDENTIFIED BY <user password>';
GRANT ALTER, CREATE, DROP, INDEX, INSERT, UPDATE, DELETE, SELECT ON myschema.* TO '<user
acct>'@'%';
GRANT ALL PRIVILEGES ON awsdms_control.* TO '<user acct>'@'%';
AWS Database Migration Service のターゲットとし
ての Amazon Redshift データベースの使用
AWS Database Migration Service を使用して Amazon Redshift データベースにデータを移行できま
す。Amazon Redshift は、クラウド内での完全マネージド型、ペタバイトスケールのデータウェアハウス
サービスです。Amazon Redshift データベースをターゲットとして使用すると、サポートされている他の
すべてのソースデータベースからデータを移行できます。
Amazon Redshift クラスターは、レプリケーションインスタンスと同じ AWS アカウントと同じ AWS リー
ジョンに存在している必要があります。
Amazon Redshift へのデータベース移行中、AWS DMS はまずデータを S3 バケットに移動します。ファ
イルが S3 バケットに移動すると、AWS DMS はファイルを Amazon Redshift データウェアハウス内の適
切なテーブルに転送します。AWS DMS は、S3 バケットを Amazon Redshift データベースと同じ AWS
リージョンに作成します。AWS DMS レプリケーションインスタンスは、それと同じリージョンに存在し
ている必要があります。
AWS Command Line Interface (AWS CLI) または AWS DMS API を使用してデータを Amazon Redshift に
移行する場合、AWS Identity and Access Management (IAM) ロールをセットアップして S3 アクセスを許
可する必要があります。この IAM ロールの作成に関する詳細については、「AWS CLI と AWS DMS API
で使用する IAM ロールの作成 (p. 38)」を参照してください。
Amazon Redshift エンドポイントは、以下の完全な自動化を行います。
• スキーマ生成およびデータ型マッピング
• ソースデータベーステーブルの全ロード
• ソーステーブルに加えられた変更の増分ロード
• ソーステーブルに加えられたスキーマ変更のデータ定義言語 (DDL) での適用
• 全ロードプロセスと変更データキャプチャ (CDC) プロセスの間の同期
AWS Database Migration Service では、全ロードオペレーションと変更処理オペレーションの両方がサ
ポートされています。AWS DMS は、ソースデータベースからデータを読み取り、一連のカンマ区切り値
(CSV) ファイルを作成します。全ロードオペレーションの場合、AWS DMS はテーブルごとにファイルを
作成します。次に、AWS DMS は各テーブルのテーブルファイルを Amazon S3 内の別個のフォルダにコ
API Version API バージョン 2016-01-01
82
AWS Database Migration Service ユーザーガイド
AWS Database Migration Service のターゲットとして
Amazon Redshift データベースを使用する場合の前提条件
ピーします。ファイルが Amazon S3 にアップロードされると、AWS DMS がコピーコマンドを送信し、
ファイル内のデータが Amazon Redshift にコピーされます。変更処理オペレーションの場合、AWS DMS
は差分変更を CSV ファイルにコピーします。その後、AWS DMS は差分変更ファイルを Amazon S3 に
アップロードし、データを Amazon Redshift にコピーします。
トピック
• AWS Database Migration Service のターゲットとして Amazon Redshift データベースを使用する場合
の前提条件 (p. 83)
• AWS Database Migration Service のターゲットとして Redshift を使用する場合の制限 (p. 83)
• AWS Database Migration Service のターゲットとしての Amazon Redshift データベースの設
定 (p. 84)
• Amazon Redshift で拡張された VPC ルーティングを AWS Database Migration Service のターゲット
として使用する (p. 84)
AWS Database Migration Service のターゲットとして
Amazon Redshift データベースを使用する場合の前提
条件
次のリストでは、データ移行のターゲットとして Amazon Redshift を使用する場合に必要な前提条件につ
いて説明します。
• Amazon Redshift クラスターを起動するには、AWS マネジメントコンソールを使用します。AWS アカ
ウントと Amazon Redshift クラスターに関する基本的な情報 (パスワード、ユーザー名、データベース
名など) を書き留めてください。これらの値は、Amazon Redshift ターゲットエンドポイントを作成する
ときに必要になります。
• Amazon Redshift クラスターは、レプリケーションインスタンスと同じ AWS アカウントと同じ AWS
リージョンに存在している必要があります。
• AWS DMS レプリケーションインスタンスには、クラスターで使用される Redshift エンドポイント (ホ
スト名とポート) へのネットワーク接続が必要です。
• AWS DMS は、Amazon S3 バケットを使用してデータを Redshift データベースに転送します。AWS
DMS がバケットを作成できるようにするため、DMS コンソールは Amazon IAM ロール dms-accessfor-endpoint を使用します。AWS CLI または DMS API を使用して、ターゲットデータベースとして
Amazon Redshift を使用したデータベース移行を作成する場合、この IAM ロールを作成する必要があり
ます。このロールの作成に関する詳細については、「AWS CLI と AWS DMS API で使用する IAM ロー
ルの作成 (p. 38)」を参照してください。
AWS Database Migration Service のターゲットとして
Redshift を使用する場合の制限
Redshift データベースをターゲットとして使用する場合、AWS DMS では以下のものがサポートされませ
ん。
• MySQL/Aurora から Redshift に移行する際、DDL を使って BLOB データタイプから NVARCHAR デー
タタイプに列を変えることはできません。
たとえば、次の DDL はサポートされていません。
ALTER TABLE table_name MODIFY column_name NVARCHAR(n);
API Version API バージョン 2016-01-01
83
AWS Database Migration Service ユーザーガイド
AWS Database Migration Service のターゲット
としての Amazon Redshift データベースの設定
AWS Database Migration Service のターゲットとして
の Amazon Redshift データベースの設定
Amazon Redshift インスタンスを使用できるように AWS Database Migration Service を設定する必要があ
ります。以下の表では、Amazon Redshift エンドポイントに使用できる設定プロパティについて説明しま
す。
プロパティ
説明
server
使用する Amazon Redshift クラスターの名前。
port
Amazon Redshift のポート番号。デフォルト値は 5439 です。
username
登録済みユーザーの Amazon Redshift ユーザー名。
password
username プロパティで指定されたユーザーのパスワード。
database
使用する Amazon Redshift データウェアハウス (サービス)。
Amazon Redshift エンドポイントに追加の接続文字列属性を追加する場合、maxFileSize 属性と
fileTransferUploadStreams 属性を指定できます。これらの属性の詳細については、「Amazon
Redshift (p. 158)」を参照してください。
Amazon Redshift で拡張された VPC ルーティングを
AWS Database Migration Service のターゲットとして
使用する
Amazon Redshift ターゲットで拡張された VPC ルーティング機能を使用する場合、Redshift クラスターと
データリポジトリとの間のすべての COPY トラフィックが Amazon VPC を経由するようになります。拡
張された VPC ルーティングは、他のリソースに Amazon Redshift がアクセスする方法に影響を与えるた
め、VPC を正しく設定していないと、COPY コマンドが失敗することがあります。
AWS DMS がこの動作の影響を受けることがあるのは、COPY コマンドを使用して S3 内のデータを
Redshift クラスターに移動するためです。
以下に示しているのは、AWS DMS が Amazon Redshift ターゲットにデータをロードする手順です。
1. AWS DMS がソースからレプリケーションサーバー上の CSV ファイルにデータをコピーします。
2. AWS DMS が AWS SDK を使用してアカウントの S3 バケットに CSV ファイルをコピーします。
3. AWS DMS がその後、Redshift で COPY コマンドを使用して、S3 内の CSV ファイルから Redshift 内
の該当するテーブルにデータをコピーします。
拡張された VPC ルーティングが有効でない場合、Amazon Redshift は AWS ネットワーク内の他のサー
ビスへのトラフィックを含むトラフィックをインターネット経由でルーティングします。この機能が有効
でない場合は、ネットワークパスを設定する必要はありません。この機能が有効な場合は、クラスターの
VPC とデータリソースとの間のネットワークパスを別に作成する必要があります。必要な設定の詳細につ
いては、Amazon Redshift のドキュメントの「 拡張された VPC ルーティング」を参照してください。
API Version API バージョン 2016-01-01
84
AWS Database Migration Service ユーザーガイド
ターゲットとしての SAP ASE の使用
SAP ASE データベースの AWS Database Migration
Service のターゲットとしての使用
AWS DMS, を使用して、サポートされているいずれかのデータベースソースから SAP Adaptive Server
Enterprise (ASE) (旧 Sybase) データベースにデータを移行できます。
SAP ASE バージョン 15.7 以降がサポートされています。
SAP ASE データベースを AWS Database Migration
Service のターゲットとして使用する場合の前提条件
SAP ASE データベースを AWS DMS のターゲットとして使用し始める前に、次の前提条件を満たしてい
ることを確認してください。
• AWS DMS ユーザーに SAP ASE アカウントアクセスを提供する必要があります。このユーザーに
は、SAP ASE データベースでの読み取り/書き込み権限が必要です。
• 非ラテン言語 (中国語など) で構成された Windows EC2 インスタンスにインストールされた SAP ASE
バージョン15.7 にレプリケートする場合、AWS DMS を使用するには SAP ASE 15.7 SP121 をターゲッ
ト SAP ASE マシンにインストールする必要があります。
API Version API バージョン 2016-01-01
85
AWS Database Migration Service ユーザーガイド
移行タスクの使用
AWS Database Migration Service (AWS DMS) レプリケーションタスクは、すべての処理が行われる場
所です。レプリケーションタスクで、移行に使用するテーブルとスキーマを指定したり、特定のレプリ
ケーションの要件をデータベースの移行に適用したりします。さらに、変換をデータに適用することも、
既存のデータをレプリケートするかどうかや、変更データキャプチャ (CDC) を使用するかどうかを指
定することもできます。変換の詳細については、「 JSON を使用した選択および変換テーブルマッピン
グ (p. 98)」を参照してください。
レプリケーションタスクを作成するには、1 つ以上のソースデータベースとターゲットデータベースが
AWS DMS で動作する必要があります。さらに、レプリケーションインスタンスもセットアップする必
要があります。その後、タスク設定を使用してタスクを定義し、レプリケートするテーブルを指定できま
す。タスク設定の詳細については、「AWS Database Migration Service タスクのタスク設定 (p. 88)」
を参照してください。
ターゲットデータベースで新しいテーブルまたは列を作成するか、レプリケートするテーブルの各列から
一部のデータのみ選択することで、タスクをカスタマイズすることもできます。これを行うには、フィル
タを使用します。フィルタについての詳細は、「選択ルールでのソースフィルタの使用 (p. 105)」を参照
してください。
タスクを作成するときに、移行方法 (既存のデータの全ロードを含める、データと継続的な変更の全ロー
ドを含める、または継続的な変更のレプリケーションだけ) を指定します。移行方法の詳細については、
「AWS Database Migration Service の移行方法 (p. 88)」を参照してください。
タスクは、作成したらすぐに実行できます。必要なメタデータ定義を含むターゲットテーブルが自動的に
作成されてロードされ、開始する CDC レプリケーションプロセスを指定できます。AWS DMS コンソー
ル、AWS CLI、または AWS DMS API を使用して、レプリケーションタスクをモニタリング、停止、再開
できます。
タスクのステータスバーで、タスクの進捗状況を予測できます。この予測の正確さはソースデータベース
のテーブル統計の正確さによって異なります。テーブル統計が正確であればあるほど、正確に予測できま
す。予測された列の統計がないテーブルが 1 つだけのタスクでは、どのような種類であっても完了率の予
測を提供できません。この場合、タスクのステータスと、ロードされた列の表示を使って、タスクが実際
に実行されて進行していることを確認できます。
詳細については、以下のトピックを参照してください。
トピック
• タスクの変更 (p. 87)
• タスクのステータス (p. 87)
• 複数のタスクの作成 (p. 87)
• AWS Database Migration Service の移行方法 (p. 88)
• AWS Database Migration Service タスクのタスク設定 (p. 88)
API Version API バージョン 2016-01-01
86
AWS Database Migration Service ユーザーガイド
タスクの変更
• タスク実行中のテーブルの状態 (p. 97)
• AWS Database Migration Service タスクによるテーブルマッピングの使用データの選択とフィル
タ (p. 97)
タスクの変更
タスクの設定、テーブルのマッピング、その他の設定を変更する必要がある場合、タスクを変更できま
す。DMS コンソールでタスクを選択し、[Modify] を選択して、タスクを変更できます。AWS CLI や AWS
DMS API コマンド ModifyReplicationTask を使うこともできます。
タスクの変更には、いくつかの制限があります。具体的には次のとおりです。
• タスクのソースまたはターゲットエンドポイントは変更できません。
• 移行タイプを CDC からFull_Load または Full_Load_and_CDC には変更できません。
• 実行されたタスクを変更する場合、タスクのステータスは [Stopped] または [Failed] である必要があり
ます。
タスクのステータス
タスクのステータスはタスクの状態を表します。以下の表では、タスクがなる得るステータスを示してい
ます。
タスクのステータス
説明
作成
AWS DMS がタスクを作成中です。
実行中
タスクが指定された移行処理を実行中です。
停止
タスクが停止されました。
停止中
タスクが停止中です。これは通常、タスクでのユーザーによ
る介入を示します。
削除
タスクが (通常はユーザーによる介入のためリクエストから)
削除中です。
Failed
タスクが失敗しました。詳細については、タスクのログファ
イルを参照してください。
Starting
タスクがレプリケーションインスタンスに、さらにソースお
よびターゲットエンドポイントに接続中です。フィルタと変
換を適用中です。
準備完了
タスクの実行準備ができました。このステータスになるのは
通常、"creating" 状態の後です。
変更中
タスクが (通常はユーザーによるタスク設定の変更アクショ
ンのため) 変更中です。
複数のタスクの作成
移行シナリオによっては、複数の移行タスクを作成する必要があります。タスクは個別に動作し、同時に
実行できる点に注意してください。タスクごとに独自の初期ロード、CDC、およびログ読み取りプロセス
API Version API バージョン 2016-01-01
87
AWS Database Migration Service ユーザーガイド
移行方法
があります。データ操作言語 (DML) を通じて関連付けられたテーブルは、同じタスクの一部である必要が
あります。
移行のために複数のタスクを作成する理由として、以下の理由が挙げられます。
• タスクのターゲットテーブルが異なるデータベースに存在している (分散していたり、システムを複数
のシステムに分割している場合など)。
• フィルタリングを使用して、大きいテーブルの移行を複数のタスクに分割したい。
Note
タスクごとに独自の変更キャプチャおよびログ読み取りプロセスがあるため、タスク間で変更は
調整されません。したがって、複数のタスクを使用して移行を実行する場合は、ソーストランザ
クションが 1 つのタスク内に完全に含まれていることを確認してください。
AWS Database Migration Service の移行方法
AWS Database Migration Service は、データを複数の方法で移行できます。
• データをターゲットデータベースに移行する – このプロセスでは、ターゲットデータベースにファイル
またはテーブルを作成し、ターゲットで必要なメタデータを自動的に定義して、ソースのデータをテー
ブルに入力します。テーブルのデータは、効率を高めるために並列でロードされます。このプロセス
は、AWS コンソールでは [Migrate existing data] オプションとなっており、API では Full Load と呼ば
れています。
• 移行中に変更をキャプチャする – このプロセスでは、データがソースからターゲットに移行されている
ときに発生した変更をソースデータベースにキャプチャします。最初にリクエストされたデータの移行
が完了すると、変更データキャプチャ (CDC) プロセスがキャプチャした変更をターゲットデータベー
スに適用します。変更は、1 つのコミットされたトランザクションユニットとしてキャプチャおよび適
用され、複数の異なるターゲットテーブルを 1 つのソースコミットとして更新できます。このアプロー
チでは、ターゲットデータベースにおけるトランザクションの完全性が保証されます。このプロセス
は、AWS コンソールでは [Migrate existing data and replicate ongoing changes] オプションとなってお
り、API では full-load-and-cdc と呼ばれています。
• データ変更のみソースデータベースにレプリケートする – このプロセスでは、ソースデータベース管理
システム (DBMS) の復旧ログファイルを読み取り、各トランザクションのエントリをまとめます。AWS
DMS が妥当な時間内にターゲットに変更を適用できない場合 (たとえば、ターゲットにアクセスで
きない場合など)、AWS DMS は必要な限りレプリケーションサーバーにおける変更をバッファしま
す。DBMS ログを再読み取りしないため、長時間かかる可能性があります。このプロセスでは、AWS
DMS コンソールでは [Replicate data changes only] オプションになっています。
Note
タスクを再開した場合、初回ロードを完了していないすべてのテーブルが再開されます。
AWS Database Migration Service タスクのタスク設
定
各タスクには、データベース移行の必要に応じて設定できる設定があります。これらの設定は JSON ファ
イルで作成します。その一部の設定は DMS コンソールで指定できます。
タスク設定には、いくつかの主要なタイプがあります。
• ターゲットメタデータのタスク設定 (p. 89)
API Version API バージョン 2016-01-01
88
AWS Database Migration Service ユーザーガイド
ターゲットメタデータのタスク設定
• 全ロードタスク設定 (p. 89)
• ロギングタスク設定 (p. 90)
• 制御テーブルタスク設定 (p. 91)
• 変更処理のチューニング設定 (p. 92)
• ストリームバッファタスク設定 (p. 92)
• 変更処理の DDL 処理ポリシータスク設定 (p. 93)
• エラー処理タスクの設定 (p. 94)
サンプルタスク設定を含むサンプル JSON ファイルを確認するには、「タスク設定の保存 (p. 96)」を
参照してください。
ターゲットメタデータのタスク設定
ターゲットメタデータ設定には、以下のものが含まれます。
• TargetSchema – ターゲットテーブルスキーマ名。このメタデータオプションが空の場合、ソーステー
ブルのスキーマが使用されます。AWS DMS は、ソーススキーマが定義されていない場合、ターゲッ
トデータベースの所有者プレフィックスをすべてのテーブルに自動的に追加します。このオプション
は、MySQL 型のターゲットエンドポイントでは空のままにする必要があります。
• LOB settings – ラージオブジェクト (LOB) の管理方法を決定する設定。SupportLobs=true と設定した
場合、次のいずれかを true に設定する必要があります。
• FullLobMode – このオプションを true に設定した場合、LobChunkSize オプションの値を入力する必
要があります。ターゲットにデータをレプリケートするときに使用する LOB チャンクサイズをキロバ
イト単位で入力します。FullLobMode オプションは、LOB のサイズが大きい場合に最適ですが、ロー
ドが遅くなる傾向になります。
• LimitedSizeLobMode – このオプションを true に設定した場合、LobMaxSize オプションの値を入力す
る必要があります。個々の LOB の最大サイズをキロバイト単位で入力します。サイズを無制限にする
場合は 0 と入力します。
• LoadMaxFileSize – 保存されたアンロードデータ (.csv ファイルなど) のディスクにおける最大サイズを
定義する PostgreSQL および MySQL ターゲットエンドポイントのオプション。このオプションは、接
続属性を上書きします。0 (このオプションが接続属性を上書きしないことを示します) から 100,000 KB
までの値を指定できます。
• BatchApplyEnabled – 各トランザクションを個別に適用するか、変更をバッチでコミットするかを決定
します。デフォルト値は false です。
true に設定した場合、AWS DMS は効率性に基づいてトランザクションをバッチにグループ分け
する前処理を実行してから、変更をバッチでコミットします。この値を true に設定するとトラ
ンザクションの整合性に影響を与えることがあるため、ChangeProcessingTuning セクションで
BatchApplyPreserveTransaction を選択して、参照整合性の問題がシステムによって処理される方法を
指定する必要があります。
false に設定した場合、AWS DMS は各トランザクションをコミットされた順に個別に適用します。こ
の場合、すべてのテーブルに対して厳密な参照整合性が保持されます。
LOB 列がレプリケーションに含まれる場合、BatchApplyEnabled は [Limited-size LOB mode] でのみ使
用できます。
全ロードタスク設定
全ロード設定には、以下のものが含まれます。
• 全ロードおよび変更データキャプチャ (CDC) を有効または無効にするには、以下のように設定します。
API Version API バージョン 2016-01-01
89
AWS Database Migration Service ユーザーガイド
ロギングタスク設定
• FullLoadEnabled – タスクがターゲットテーブルで全ロードを実行する必要がある場合、このオプ
ションを true に設定します。
• ApplyChangesEnabled – タスクが CDC を使用して変更を適用することによりターゲットテーブルを
最新の状態に保つ必要がある場合、このオプションを true に設定します。
FullLoadEnabled=true と ApplyChangesEnabled=true の両方が設定されている場合、タスクはまず
テーブルをロードした後、受け取った変更を適用し続けます。タスクを更新するときは、これらの設
定のみを使用して、全ロードまたは CDC、あるいは両方のオンとオフを切り替えることができます。
• 全ロードセットアップ時にターゲットのロードを処理する方法を指定するには、TargetTablePrepMode
オプションに次のいずれかの値を指定します。
• DO_NOTHING – 既存のターゲットテーブルのデータとメタデータには影響を与えません。
• DROP_AND_CREATE – 既存のテーブルが削除され、新しいテーブルがその場所に作成されます。
• TRUNCATE_BEFORE_LOAD – テーブルメタデータに影響を与えずにデータが切り捨てられます。
• 全ロードが完了するまでプライマリキーや一意のインデックスの作成を遅らせるに
は、CreatePkAfterFullLoad オプションを設定します。このオプションが選択されると、完了していな
い全ロードタスクを再開することはできません。
• 全ロードタスクと CDC が有効なタスクの場合、次の Stop task after full load completes オプショ
ンを設定できます。
• StopTaskCachedChangesApplied – このオプションを true に設定し、全ロードが完了してキャッシュ
された変更が適用された後にタスクを停止します。
• StopTaskCachedChangesNotApplied – このオプションを true に設定し、キャッシュされた変更が適
用される前にタスクを停止します。
• 全ロード中にテーブルが中断ポイントから処理を再開できるようにするには、ResumeEnabled オプショ
ンを true に設定します。それ以外の場合、テーブルのロードは最初から再開されます。
テーブルのロードを中断ポイントから再開できるようにすると、全ロード処理の速度が低下する場合が
あります。ただし、非常に大きなテーブルを最初から開始すると、全ロードの完了がかなり遅れる可
能性があります。さらに、テーブルロードを中断ポイントから再開する場合、テーブルには一意のイン
デックスが必要です。またクラスター化されたプライマリキーも設定することをお勧めします。また、
ResumeEnabled が true に設定されている場合、以下のオプションを設定する必要があります。
• ResumeMinTableSize – 全ロードオペレーションが再開されたときに、ロードを再開する必要がある
テーブルを指定します。このオプションに設定された数よりも行が少ないテーブルは、全ロードを再
開します。デフォルト値は 1,000,000 です。
• ResumeOnlyClusteredPKTables – クラスター化されたプライマリキーを持つテーブルのロードのみ再
開するかどうかを指定します。
• 並行してロードするテーブルの最大数を指定するには、MaxFullLoadSubTasks オプションを設定しま
す。
• タスクの開始時にトランザクションが開いている場合、全ロードオペレーションを開始する前にトラン
ザクションが閉じるのを AWS DMS が待機する秒数を設定するには、TransactionConsistencyTimeout
オプションを設定します。デフォルト値は 600 (10 分) です。AWS DMS は、開いているトランザクショ
ンがある場合でも、タイムアウト値に到達した後に全ロードを開始します。
• まとめて転送可能なイベントの最大数を指定するには、CommitRate オプションを設定します。
ロギングタスク設定
ロギングタスク設定は JSON ファイルに書き込まれます。それらの設定で、ログに記録されるコンポーネ
ントのアクティビティと、ログに書き込まれる情報の量を指定できます。ロギング機能は、移行プロセス
中に Amazon CloudWatch を使用して情報を記録します。
Amazon CloudWatch ロギングを有効にする方法はいくつかあります。移行タスクを作成するときに AWS
マネジメントコンソールで EnableLogging オプションを選択するか、AWS DMS API を使用してタスクを
API Version API バージョン 2016-01-01
90
AWS Database Migration Service ユーザーガイド
制御テーブルタスク設定
作成するときに EnableLogging オプションを true に設定できます。さらに、タスク設定のロギングセク
ションの JSON で "EnableLogging": true を指定することもできます。
以下のコンポーネントアクティビティにロギングを指定できます。
• SOURCE_UNLOAD — データがソースデータベースからアンロードされます。
• SOURCE_CAPTURE — データがソースデータベースからキャプチャされます。
• TARGET_LOAD — データがターゲットデータベースにロードされます。
• TARGET_APPLY — データおよび DDL がターゲットデータベースに適用されます。
• TASK_MANAGER — タスクマネージャーによってイベントがトリガーされます。
コンポーネントアクティビティを指定したら、記録される情報の量を指定できます。次のリストは、低い
情報レベルから高い情報レベルの順序になっています。高いレベルには、必ず低いレベルの情報が含まれ
ています。指定できる重大度の値の例は以下のとおりです。
• LOGGER_SEVERITY_ERROR — エラーメッセージがログに書き込まれます。
• LOGGER_SEVERITY_WARNING — 警告とエラーメッセージがログに書き込まれます。
• LOGGER_SEVERITY_INFO — 情報メッセージ、警告、エラーメッセージがログに書き込まれます。
• LOGGER_SEVERITY_DEFAULT — デバッグメッセージ、情報メッセージ、警告、エラーメッセージが
ログに書き込まれます。
• LOGGER_SEVERITY_DEBUG — デバッグメッセージ、情報メッセージ、警告、エラーメッセージがロ
グに書き込まれます。
• LOGGER_SEVERITY_DETAILED_DEBUG — すべての情報がログに書き込まれます。
たとえば、次の JSON セクションは、すべてのコンポーネントアクティビティを記録するタスク設定を行
います。
…
"Logging": {
"EnableLogging": true,
"LogComponents": [{
"Id": "SOURCE_UNLOAD",
"Severity": "LOGGER_SEVERITY_DEFAULT"
},{
"Id": "SOURCE_CAPTURE",
"Severity": "LOGGER_SEVERITY_DEFAULT"
},{
"Id": "TARGET_LOAD",
"Severity": "LOGGER_SEVERITY_DEFAULT"
},{
"Id": "TARGET_APPLY",
"Severity": "LOGGER_SEVERITY_INFO"
},{
"Id": "TASK_MANAGER",
"Severity": "LOGGER_SEVERITY_DEBUG"
}]
},
…
制御テーブルタスク設定
制御テーブルは、移行タスクに関する情報に加えて、現在の移行タスクおよび今後の移行タスクの両方を
計画および管理するのに使用できる有用な統計情報を提供します。これらのタスク設定は JSON ファイル
で適用するか、AWS DMS コンソールで [Create task] ページの [Advanced Settings] リンクを使用して適
API Version API バージョン 2016-01-01
91
AWS Database Migration Service ユーザーガイド
ストリームバッファタスク設定
用できます。常に作成される例外適用テーブルに加えて、以下のような追加テーブルの作成を選択できま
す。
• レプリケーションステータス – このテーブルは、タスクステータス、タスクにより消費されたメモリの
量、まだターゲットに適用されていない変更の数、AWS DMS が現在読み取っているソースデータベー
ス内の位置など、現在のタスクに関する詳細を提供します。
• 停止済みテーブル – このテーブルは、停止済みテーブルのリストと、停止された理由を提供します。
• レプリケーション履歴 – このテーブルは、移行タスク中に処理されたレコードの数とボリューム、CDC
タスク終了時のレイテンシー、他の統計情報など、レプリケーション履歴に関する情報を提供します。
制御テーブル設定には、以下のものが含まれます。
• ControlSchema – AWS DMS ターゲット制御テーブルのデータベーススキーマ名を指定するには、この
オプションを使用します。このフィールドに情報を入力しない場合、テーブルはデータベースのデフォ
ルトの場所にコピーされます。
• HistoryTimeslotInMinutes – レプリケーション履歴テーブルにおける各タイムスロットの長さを指定す
るには、このオプションを使用します。デフォルトは 5 分です。
• HistoryTableEnabled – レプリケーション履歴テーブルの作成を有効にするには、このオプションを使
用します。このテーブルは、レプリケーションタスク中に処理されたレコードの数とボリューム、CDC
タスク終了時のレイテンシー、他の統計情報など、レプリケーション履歴に関する情報を提供します。
• SuspendedTablesTableEnabled – 停止済みレプリケーションテーブルリストの作成を有効にするに
は、このオプションを使用します。このテーブルは、停止済みテーブルのリストとテーブルが停止され
た理由を提供します。
• StatusTableEnabled – レプリケーションステータステーブルの作成を有効にするには、このオプショ
ンを使用します。このテーブルは、タスクステータス、タスクにより消費されたメモリの量、まだター
ゲットに適用されていない変更の数、AWS DMS が現在読み取っているソースデータベース内の位置な
ど、現在のタスクに関する詳細を提供します。
ストリームバッファタスク設定
AWS CLI を使用して、次のようなストリームバッファを設定できます。
• StreamBufferCount – 移行タスクのデータストリームバッファの数を指定するには、このオプションを
指定します。デフォルトストリームバッファの数は 3 です。この設定の値を大きくすると、データ抽出
速度が上昇する可能性があります。ただし、このパフォーマンス向上は、レプリケーションサーバーの
ソースシステムやインスタンスクラスなど、移行環境に大きく依存します。ほとんどの場合はデフォル
トで十分です。
• StreamBufferSizeInMB – 各データストリームバッファの最大サイズを指定するには、このオプション
を使用します。デフォルトサイズは 8 MB です。非常に大きい LOB を使用する場合や、ストリームバッ
ファサイズが不十分であることを示すメッセージがログファイルに記録されている場合、状況によって
はこのオプションの値を大きくする必要があります。このオプションのサイズを計算するときは、[最大
LOB サイズ (または LOB チャンクサイズ)]*[LOB 列の数]*[ストリームバッファの数]*[タスクあたりの同
時ロードテーブルの数 (MaxFullLoadSubTasks)]*3 という式を使用できます。
• CtrlStreamBufferSizeInMB – 制御ストリームバッファのサイズを設定するには、このオプションを使用
します。値は 1 ~ 8 (MB 単位) です。デフォルト値は 5 です。かなり多くのテーブル (数万のテーブル
など) を使用している場合、状況によってはこの値を大きくする必要があります。
変更処理のチューニング設定
以下の設定により、AWS DMS が変更データキャプチャ (CDC) 中にターゲットテーブルの変更を処理する
方法が決まります。これらの設定のいくつかは、ターゲットメタデータパラメーター BatchApplyEnabled
API Version API バージョン 2016-01-01
92
AWS Database Migration Service ユーザーガイド
変更処理の DDL 処理ポリシータスク設定
の値によって異なります。BatchApplyEnabled パラメーターの詳細については、「ターゲットメタデータ
のタスク設定 (p. 89)」を参照してください。
変更処理のチューニング設定には、以下のものが含まれます。
以下の設定は、ターゲットメタデータパラメーター BatchApplyEnabled を true に設定している場合にの
み適用されます。
• BatchApplyPreserveTransaction – true に設定すると、トランザクションの整合性が保持され、バッチ
にはソースからのトランザクション内のすべての変更が含まれます。デフォルト値は true です。
false に設定すると、パフォーマンスを向上させるためにトランザクションの整合性が一時的に失われ
ることがあります。ソースからのトランザクション内のすべての変更が 1 バッチでターゲットに適用さ
れるとは限りません。
• BatchApplyTimeoutMin – バッチ変更の各適用間で AWS DMS が待機する最短時間 (秒) を設定します。
デフォルト値は 1 です。
• BatchApplyTimeoutMax – バッチ変更の各適用間でタイムアウトになるまでに AWS DMS が待機する最
長時間 (秒) を設定します。デフォルト値は 30 です。
• BatchApplyMemoryLimit – 最適化バッチ適用モードでの前処理に使用されるメモリの最大量 (MB) を設
定します。デフォルト値は 500 です。
• BatchSplitSize – 1 つの変更処理ステートメントに適用される変更の数を設定します。チェックボック
スをオンにして、必要に応じてデフォルト値を変更します。デフォルト値は 10,000 です。値 0 は、適
用される制限がないことを意味します。
以下の設定は、ターゲットメタデータパラメーター BatchApplyEnabled が false に設定されている場合に
のみ適用されます。
• MinTransactionSize – 各トランザクションに含める変更の最小数を設定します。デフォルト値は 1000
です。
• CommitTimeout – AWS DMS がタイムアウトを宣言するまでにトランザクションをバッチで収集する最
長時間 (秒) を設定します。デフォルト値は 1 です。
• HandleSourceTableAltered – ソーステーブルが変更されたときにターゲットテーブルを変更するには、
このオプションを true に設定します。
AWS DMS は、トランザクションがソース/ターゲットに完全にコミットされるまで、トランザクション
データをメモリに保持しようとします。ただし、割り当てたメモリより大きいトランザクションや、指定
した制限時間内にコミットされないトランザクションは、ディスクに書き込まれます。
以下の設定は、変更処理のモードに関係なく、変更処理のチューニングに適用されます。
• MemoryLimitTotal – すべてのトランザクションがディスクに書き込まれるまでにメモリ内で占有できる
最大サイズ (MB) を設定します。デフォルト値は 1024 です。
• MemoryKeepTime – 各トランザクションがディスクに書き込まれるまでにメモリ内で保持できる最長時間
(秒) を設定します。この期間は、AWS DMS がトランザクションのキャプチャを開始した時間から計算
されます。デフォルト値は 60 です。
• StatementCacheSize – ターゲットに変更を適用するときに、後で実行するためにサーバーに保存するプ
リペアドステートメントの最大数を設定します。デフォルト値は 50 です。最大の値は 200 です。
変更処理の DDL 処理ポリシータスク設定
以下の設定は、AWS DMS がデータ変更キャプチャ (CDC) 中にターゲットテーブルの DDL 変更を処理す
る方法を決定します。変更処理の DDL 処理ポリシー設定には、以下のものが含まれています。
API Version API バージョン 2016-01-01
93
AWS Database Migration Service ユーザーガイド
エラー処理タスクの設定
• HandleSourceTableDropped – ソーステーブルが削除されたときにターゲットテーブルを削除するに
は、このオプションを true に設定します。
• HandleSourceTableTruncated – ソーステーブルが切り捨てられたときにターゲットテーブルを切り捨
てるには、このオプションを true に設定します。
• HandleSourceTableAltered – ソーステーブルが変更されたときにターゲットテーブルを変更するには、
このオプションを true に設定します。
エラー処理タスクの設定
次の設定を使用して、レプリケーションタスクのエラー処理動作を設定できます。
• DataErrorPolicy – エラーが発生したときに AWS DMS が実行するアクションを決定します。デフォル
ト: LOG_ERROR。
• IGNORE_RECORD – タスクは続行され、該当するデータのレコードは無視されま
す。DataErrorEscalationCount プロパティのエラーカウンターが増分され、テーブルにエラーの制
限数が設定されていると、このエラーは制限に達するまでカウントされます。
• LOG_ERROR – タスクは続行され、エラーはタスクログに書き込まれます。
• SUSPEND_TABLE – タスクは続行されますが、エラーレコードのあるテーブルのデータはエラー状態に
なり、データはレプリケートされません。
• STOP_TASK – タスクは停止され、手動での介入が必要になります。
• DataTruncationErrorPolicy – データが切り捨てられたときに AWS DMS が実行するアクションを決定
します。デフォルト: LOG_ERROR。
• IGNORE_RECORD – タスクは続行され、該当するデータのレコードは無視されま
す。DataErrorEscalationCount プロパティのエラーカウンターが増分され、テーブルにエラーの制
限数が設定されていると、このエラーは制限に達するまでカウントされます。
• LOG_ERROR – タスクは続行され、エラーはタスクログに書き込まれます。
• SUSPEND_TABLE – タスクは続行されますが、エラーレコードのあるテーブルのデータはエラー状態に
なり、データはレプリケートされません。
• STOP_TASK – タスクは停止され、手動での介入が必要になります。
• DataErrorEscalationPolicy – エラーが最大数に達したときに AWS DMS が実行するアクションを決定
します。エラーの最大数は、DataErrorsEscalationCount パラメーターで設定されます。デフォルト:
SUSPEND_TABLE。
• LOG_ERROR – タスクは続行され、エラーはタスクログに書き込まれます。
• SUSPEND_TABLE – タスクは続行されますが、エラーレコードのあるテーブルのデータはエラー状態に
なり、データはレプリケートされません。
• STOP_TASK – タスクは停止され、手動での介入が必要になります。
• DataErrorEscalationCount – 特定のレコードで、データに許可されるエラーの最大数を設定します。こ
の数に到達すると、エラーレコードがあるテーブルのデータは、DataErrorEscalationCount で設定さ
れているポリシーに従って処理されます。デフォルトは 50 です。
• TableErrorPolicy – 一般テーブルデータがレプリケートされているときにエラーが発生した場合に
AWS DMS が実行するアクションを決定します。デフォルト: SUSPEND_TABLE。
• SUSPEND_TABLE – タスクは続行されますが、エラーレコードのあるテーブルのデータはエラー状態に
なり、データはレプリケートされません。
• STOP_TASK – タスクは停止され、手動での介入が必要になります。
• TableErrorEscalationPolicy – エラーが最大数に達したときに AWS DMS が実行するアクションを決
定します。エラーの最大数は、TableErrorEscalationCount パラメーターを使用して設定します。デ
フォルトで、唯一のユーザー設定は STOP_TASK です。この設定では、タスクが停止し手動での介入が必
要になります。
• TableErrorEscalationCount – 特定のテーブルで、一般データまたはメタデータに許可されるエラーの
最大数。この数に到達すると、このテーブルのデータは、TableErrorEscalationPolicy で設定された
ポリシーに従って処理されます。デフォルトは 50 です。
API Version API バージョン 2016-01-01
94
AWS Database Migration Service ユーザーガイド
エラー処理タスクの設定
• RecoverableErrorCount – 環境エラーが発生したときに、タスクの再開を試みる最大回数。システムが
再起動を試みる回数が指定の回数に達すると、タスクが停止し、手動での介入が必要になります。タス
クの再開を 6 回試みる場合は、この値を -1 に設定します。タスクの再開を試行しない場合には、この値
を 0 に設定します。デフォルトは 0 です。
• RecoverableErrorInterval – 試行後、AWS DMS が待機する、次の試行までの時間 (秒)。デフォルトは
5 です。
• RecoverableErrorThrottling – 有効にすると、再開を試行するたびに、次の試行との間隔が長くなっ
ていきます。デフォルト: true。
• RecoverableErrorThrottlingMax – RecoverableErrorThrottling が有効になっている場合に、AWS
DMS が待機する、次に再開を試行するまでの最大時間数 (秒)。デフォルトは 1800 です。
• ApplyErrorDeletePolicy – DELETE 操作との競合がある場合に、AWS DMS が実行するアクションを
決定します。デフォルト: IGNORE_RECORD。
• IGNORE_RECORD – タスクは続行され、該当するデータのレコードは無視されま
す。ApplyErrorEscalationCount プロパティのエラーカウンターが増分され、テーブルにエラーの制
限数が設定されていると、このエラーは制限に達するまでカウントされます。
• LOG_ERROR – タスクは続行され、エラーはタスクログに書き込まれます。
• SUSPEND_TABLE – タスクは続行されますが、エラーレコードのあるテーブルのデータはエラー状態に
なり、データはレプリケートされません。
• STOP_TASK – タスクは停止され、手動での介入が必要になります。
• ApplyErrorInsertPolicy – INSERT 操作との競合がある場合に、AWS DMS が実行するアクションを決
定します。デフォルト: LOG_ERROR。
• IGNORE_RECORD – タスクは続行され、該当するデータのレコードは無視されま
す。ApplyErrorEscalationCount プロパティのエラーカウンターが増分され、テーブルにエラーの制
限数が設定されていると、このエラーは制限に達するまでカウントされます。
• LOG_ERROR – タスクは続行され、エラーはタスクログに書き込まれます。
• SUSPEND_TABLE – タスクは続行されますが、エラーレコードのあるテーブルのデータはエラー状態に
なり、データはレプリケートされません。
• STOP_TASK – タスクは停止され、手動での介入が必要になります。
• UPDATE_RECORD – 挿入されたソースレコードと同じプライマリキーを持つ既存のターゲットレコード
がある場合、ターゲットレコードは更新されます。
• ApplyErrorUpdatePolicy – UPDATE 操作との競合がある場合に、AWS DMS が実行するアクションを
決定します。デフォルト: LOG_ERROR。
• IGNORE_RECORD – タスクは続行され、該当するデータのレコードは無視されま
す。ApplyErrorEscalationCount プロパティのエラーカウンターが増分され、テーブルにエラーの制
限数が設定されていると、このエラーは制限に達するまでカウントされます。
• LOG_ERROR – タスクは続行され、エラーはタスクログに書き込まれます。
• SUSPEND_TABLE – タスクは続行されますが、エラーレコードのあるテーブルのデータはエラー状態に
なり、データはレプリケートされません。
• STOP_TASK – タスクは停止され、手動での介入が必要になります。
• UPDATE_RECORD – ターゲットレコードがない場合、欠落しているターゲットレコードがターゲット
テーブルに挿入されます。このオプションを選択するには、Oracle がソースデータベースの場合、す
べてのソーステーブルの列に対し、完全なサプリメンタルロギングが有効である必要があります。
• ApplyErrorEscalationPolicy – エラーが最大数に達したときに AWS DMS が実行するアクションを決
定します。エラーの最大数は、ApplyErrorsEscalationCount パラメーターで設定されます。
• LOG_ERROR – タスクは続行され、エラーはタスクログに書き込まれます。
• SUSPEND_TABLE – タスクは続行されますが、エラーレコードのあるテーブルのデータはエラー状態に
なり、データはレプリケートされません。
• STOP_TASK – タスクは停止され、手動での介入が必要になります。
• ApplyErrorEscalationCount – 変更プロセス操作が実施されている間、特定のテーブルに許
API Version API バージョン 2016-01-01
可される APPLY 競合の最大数を設定します。この数に到達すると、このテーブルのデータ
95
AWS Database Migration Service ユーザーガイド
タスク設定の保存
は、ApplyErrorEscalationPolicy パラメーターで設定されたポリシーに従って処理されます。デフォ
ルトは 0 です。
• FulloadIgnoreConflicts – 変更プロセスが完了した後、全体のロード操作を実行するときに、AWS
DMS が競合データをロードするかどうかを決定します。
タスク設定の保存
別のタスクで設定を再利用する場合、タスクの設定を JSON ファイルして保存することができます。
たとえば、次の JSON ファイルにはタスクに保存された設定が含まれています。
{
"TargetMetadata": {
"TargetSchema": "",
"SupportLobs": true,
"FullLobMode": false,
"LobChunkSize": 64,
"LimitedSizeLobMode": true,
"LobMaxSize": 32,
"BatchApplyEnabled": true
},
"FullLoadSettings": {
"FullLoadEnabled": false,
"ApplyChangesEnabled": true,
"TargetTablePrepMode": "DO_NOTHING",
"CreatePkAfterFullLoad": false,
"StopTaskCachedChangesApplied": false,
"StopTaskCachedChangesNotApplied": false,
"ResumeEnabled": false,
"ResumeMinTableSize": 100000,
"ResumeOnlyClusteredPKTables": true,
"MaxFullLoadSubTasks": 8,
"TransactionConsistencyTimeout": 600,
"CommitRate": 10000
},
"Logging": {
"EnableLogging": false
},
"ControlTablesSettings": {
"ControlSchema":"",
"HistoryTimeslotInMinutes":5,
"HistoryTableEnabled": false,
"SuspendedTablesTableEnabled": false,
"StatusTableEnabled": false
},
"StreamBufferSettings": {
"StreamBufferCount": 3,
"StreamBufferSizeInMB": 8
},
"ChangeProcessingTuning": {
"BatchApplyPreserveTransaction": true,
"BatchApplyTimeoutMin": 1,
"BatchApplyTimeoutMax": 30,
"BatchApplyMemoryLimit": 500,
"BatchSplitSize": 0,
"MinTransactionSize": 1000,
"CommitTimeout": 1,
"MemoryLimitTotal": 1024,
"MemoryKeepTime": 60,
"StatementCacheSize": 50
},
API Version API バージョン 2016-01-01
96
AWS Database Migration Service ユーザーガイド
タスク実行中のテーブルの状態
"ChangeProcessingDdlHandlingPolicy": {
"HandleSourceTableDropped": true,
"HandleSourceTableTruncated": true,
"HandleSourceTableAltered": true
},
"ErrorBehavior": {
"DataErrorPolicy": "LOG_ERROR",
"DataTruncationErrorPolicy":"LOG_ERROR",
"DataErrorEscalationPolicy":"SUSPEND_TABLE",
"DataErrorEscalationCount": 50,
"TableErrorPolicy":"SUSPEND_TABLE",
"TableErrorEscalationPolicy":"STOP_TASK",
"TableErrorEscalationCount": 50,
"RecoverableErrorCount": 0,
"RecoverableErrorInterval": 5,
"RecoverableErrorThrottling": true,
"RecoverableErrorThrottlingMax": 1800,
"ApplyErrorDeletePolicy":"IGNORE_RECORD",
"ApplyErrorInsertPolicy":"LOG_ERROR",
"ApplyErrorUpdatePolicy":"LOG_ERROR",
"ApplyErrorEscalationPolicy":"LOG_ERROR",
"ApplyErrorEscalationCount": 0,
"FullLoadIgnoreConflicts": true
}
}
タスク実行中のテーブルの状態
AWS コンソールでは、移行中にテーブルの状態に関する最新の情報が表示されます。以下の表では、表示
される可能性のある状態値を示しています。
状態
説明
Table does not exist
AWS DMS によりソースエンドポイントでテーブルが見つか
りません。
Before load
全ロードプロセスが有効になっているが、まだ開始されてい
ません。
Full load
全ロードプロセスが進行中です。
Table completed
全ロードまたは CDC が完了しました。
Table cancelled
テーブルのロードがキャンセルされました。
Table error
テーブルのロード時にエラーが発生しました。
AWS Database Migration Service タスクによるテー
ブルマッピングの使用データの選択とフィルタ
テーブルマッピングは、ターゲットエンドポイントに移行する特定のソーススキーマからテーブルを指定
します。最もシンプルなマッピングは、ソーススキーマからターゲットデータベースにすべてのテーブ
ルを移行することです。テーブルマッピングを使用して、データベースで移行する個々のテーブルや、移
行に使用するスキーマを指定することもできます。また、フィルタを使用して、特定のテーブルの列から
ターゲットデータベースにレプリケートするデータを指定できます。
API Version API バージョン 2016-01-01
97
AWS Database Migration Service ユーザーガイド
AWS コンソールを使用した選択
および変換テーブルマッピング
AWS コンソールを使用するか、コンソール、AWS CLI、または AWS DMS API で使用できる JSON ファ
イルを使用して、オプションとフィルタを指定します。
AWS コンソールを使用した選択および変換テーブル
マッピング
AWS コンソールを使用して、テーブルの選択、変換の指定などのテーブルマッピングを実施できま
す。AWS コンソールユーザーインターフェイスでは、Where セクションを使用してスキーマ、テーブ
ル、およびアクションを含めるか除外するかを指定できます。Filter セクションを使用して、レプリケー
ションタスクに適用する、テーブルの列の名前と条件を指定します。これら 2 つのアクションを合わせ
て、選択ルールを作成します。
選択ルールを 1 つ以上指定した後に、変換をテーブルマッピングに含められます。変換を使用して、ス
キーマまたはテーブルの名前を変更したり、スキーマまたはテーブルにプレフィックスやサフィックスを
追加したり、テーブルの列を削除したりできます。
次の例は、「EntertainmentAgencySample」というスキーマの「Customers」テーブルの選択ルールを
設定する方法を示しています。スキーマとテーブル情報を含むソースエンドポイントがある場合にの
み、Guided タブが表示されます。このタブで選択ルールと変換を作成できます。
テーブルの選択を指定するには、AWS コンソールを使用して、条件と変換でフィルタリングしま
す。
1.
AWS マネジメントコンソールにサインインし、AWS DMS を選択します。 AWS Identity and Access
Management (IAM) ユーザーとしてサインインしている場合、AWS DMS にアクセスするための適切
なアクセス許可が必要である点に注意してください。必要なアクセス権限の詳細については、「AWS
DMS を使用するのに必要な IAM アクセス許可 (p. 36)」を参照してください。
2.
3.
[ダッシュボード] ページで、[タスク] を選択します。
[Create Task] を選択します。
4.
[タスク名]、[レプリケーションインスタンス]、[ソースエンドポイント]、[ターゲットエンドポイン
ト]、[移行タイプ] などのタスク情報を入力します。[テーブルマッピング] セクションから [Guided] を
選択します。
[テーブルマッピング] セクションで、スキーマ名とテーブル名を選択します。テーブル名を指定する
とき、「%」をワイルドカード値として使用できます。フィルタを使用して、定義されたデータを含
める、除外するかなど、実行するアクションを指定します。
[Add column filter] および [Add condition] リンクを使用して、フィルタ情報を指定します。まず、[Add
column filter] を選択して列と条件を指定します。条件を追加するには [Add condition] を選択します。
次の例は、01 から 85 の間に AgencyIDs を含む Customers テーブルのフィルタを示しています。
希望の選択を作成したら、[Add selection rule] を選択します。
5.
6.
7.
8.
選択ルールを 1 つ以上作成したら、タスクに変換を追加できます。[add transformation rule] を選択し
ます。
9.
変換を希望するターゲットを選択し、必要な追加情報を入力します。次の例は、[Customer] テーブル
から [AgencyStatus] 列を削除する変換を示しています。
10. [Add transformation rule] を選択します。
11. [add selection rule] または [add transformation rule] を選択して、他の選択ルールや変換ルールを追加
できます。完了したら、[Create task] を選択します。
JSON を使用した選択および変換テーブルマッピング
テーブルマッピングは JSON 形式で作成できます。AWS DMS マネジメントコンソールを使用して移行タ
スクを作成する場合、JSON を直接テーブルマッピングボックスに入力できます。AWS Command Line
Interface (AWS CLI) または AWS Database Migration Service API を使用して移行を実行する場合、JSON
ファイルを作成して移行中に行うテーブルマッピングを指定できます。
API Version API バージョン 2016-01-01
98
AWS Database Migration Service ユーザーガイド
JSON を使用した選択および変換テーブルマッピング
使用するテーブルやスキーマを指定し、スキーマおよびテーブル変換を実行することができま
す。selection ルールタイプと transformation ルールタイプを使用してテーブルマッピングルールを作
成します。
選択ルールと選択アクション
テーブルマッピングを使用すると、選択ルールと選択アクションを使用することで、使用するテーブルや
スキーマを指定できます。選択ルールタイプを使用するテーブルマッピングルールの場合、次の値を適用
できます。
パラメータ
使用できる値
説明
rule-type
selection
rule-id
数値。
ルールを識別する一意の数値。
rule-name
英数字値。
ルールを特定する一意な名前。
rule-action
include、exclude
ルールにより選択されるオブジェクトを
含めるか除外します。
テーブルマッピングを指定するときは、
少なくとも 1 つの選択ルールが必要で
す。
Example スキーマ内のすべてのテーブルの移行
次の例では、ソース内の Test という名前のスキーマからすべてのテーブルをターゲットエンドポイント
に移行します。
{
"rules": [
{
"rule-type": "selection",
"rule-id": "1",
"rule-name": "1",
"object-locator": {
"schema-name": "Test",
"table-name": "%"
},
"rule-action": "include"
}
]
}
Example スキーマの一部のテーブルの移行
次の例では、ソース内の Test という名前のスキーマから、先頭が DMS のテーブルを除くすべてのテーブ
ルをターゲットエンドポイントに移行します。
{
"rules": [
{
"rule-type": "selection",
"rule-id": "1",
"rule-name": "1",
"object-locator": {
"schema-name": "Test",
"table-name": "%"
},
"rule-action": "include"
},
API Version API バージョン 2016-01-01
99
AWS Database Migration Service ユーザーガイド
JSON を使用した選択および変換テーブルマッピング
{
"rule-type": "selection",
"rule-id": "2",
"rule-name": "2",
"object-locator": {
"schema-name": "Test",
"table-name": "DMS%"
},
"rule-action": "exclude"
}
]
}
変換ルールおよび変換アクション
選択したスキーマまたはテーブルに適用する変換を指定するには、変換アクションを使用します。変換
ルールはオプションです。
変換ルールタイプを使用するテーブルマッピングルールの場合、次の値を適用できます。
パラメータ
使用できる値
説明
rule-type
transformation
選択ルールにより指定されたオブジェク
トに適用されます。
rule-id
数値。
ルールを識別する一意の数値。
rule-name
英数字値。
ルールを特定する一意な名前。
object-locator
schema-name スキーマの名前。
ルールが適用されるスキーマとテーブ
ル。
table-name テーブルの名前。ワイルド
カードとして "%" (パーセント記号) を使
用できます。
rule-action
• rename
• remove-column
• convert-lowercase、convert-
オブジェクトに適用する変換。すべて変
換ルールアクションでは、大文字と小文
字が区別されます。
uppercase
• add-prefix、removeprefix、replace-prefix
• add-suffix、removesuffix、replace-suffix
rule-target
schema、table、column
変換するオブジェクトのタイプ。
value
ターゲットタイプの名前付けルールに
従った英数字値。
入力が必要なアクションの新しい値
(rename など)。
old-value
ターゲットタイプの名前付けルールに
従った英数字値。
置き換えが必要なアクションの古い値
(replace-prefix など)。
Example スキーマの名前変更
次の例では、スキーマの名前をソースでの Test からターゲットエンドポイントでの Test1 に変更しま
す。
{
API Version API バージョン 2016-01-01
100
AWS Database Migration Service ユーザーガイド
JSON を使用した選択および変換テーブルマッピング
"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": "Test1"
}
]
}
Example テーブル名の変更
次の例では、テーブルの名前をソースでの Actor からターゲットエンドポイント内での Actor1 に変更し
ます。
{
"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": "table",
"object-locator": {
"schema-name": "Test",
"table-name": "Actor"
},
"value": "Actor1"
}
]
}
Example 列名の変更
次の例では、テーブル Actor 内の列の名前をソースでの first_name からターゲットエンドポイントでの
fname に変更します。
{
API Version API バージョン 2016-01-01
101
AWS Database Migration Service ユーザーガイド
JSON を使用した選択および変換テーブルマッピング
"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": "4",
"rule-name": "4",
"rule-action": "rename",
"rule-target": "column",
"object-locator": {
"schema-name": "test",
"table-name": "Actor",
"column-name" : "first_name"
},
"value": "fname"
}
]
}
Example 列の削除
次の例では、ソース内の Actor というテーブルを変換し、先頭文字が col のすべての列をターゲットエン
ドポイントから削除します。
{
"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": "remove-column",
"rule-target": "column",
"object-locator": {
"schema-name": "test",
"table-name": "Actor",
"column-name": "col%"
}
}]
}
Example 小文字への変換
次の例では、テーブル名をソースでの ACTOR からターゲットエンドポイントでの actor に変換します。
{
"rules": [{
"rule-type": "selection",
API Version API バージョン 2016-01-01
102
AWS Database Migration Service ユーザーガイド
JSON を使用した選択および変換テーブルマッピング
"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": "convert-lowercase",
"rule-target": "table",
"object-locator": {
"schema-name": "test",
"table-name": "ACTOR"
}
}]
}
Example 大文字への変換
次の例では、すべてのテーブルおよびすべてのスキーマ内のすべての列を、ソースでの小文字からター
ゲットエンドポイントでの大文字に変換します。
{
"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": "convert-uppercase",
"rule-target": "column",
"object-locator": {
"schema-name": "%",
"table-name": "%",
"column-name": "%"
}
}
]
}
Example プレフィックスの追加
次の例では、ソース内のすべてのテーブルを変換し、ターゲットエンドポイントではそれらのテーブルに
プレフィックス DMS_ を追加します。
{
"rules": [{
"rule-type": "selection",
"rule-id": "1",
"rule-name": "1",
"object-locator": {
API Version API バージョン 2016-01-01
103
AWS Database Migration Service ユーザーガイド
JSON を使用した選択および変換テーブルマッピング
"schema-name": "test",
"table-name": "%"
},
"rule-action": "include"
}, {
"rule-type": "transformation",
"rule-id": "2",
"rule-name": "2",
"rule-action": "add-prefix",
"rule-target": "table",
"object-locator": {
"schema-name": "test",
"table-name": "%"
},
"value": "DMS_"
}]
}
Example プレフィックスの置き換え
次の例では、ソースでプレフィックス Pre_ を含むすべての列を変換し、ターゲットエンドポイントでは
プレフィックスを NewPre_ に置き換えます。
{
"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": "replace-prefix",
"rule-target": "column",
"object-locator": {
"schema-name": "%",
"table-name": "%",
"column-name": "%"
},
"value": "NewPre_",
"old-value": "Pre_"
}
]
}
Example サフィックスの削除
次の例では、ソース内のすべてのテーブルを変換し、ターゲットエンドポイントではそれらのテーブルか
らサフィックス _DMS を削除します。
{
"rules": [{
"rule-type": "selection",
"rule-id": "1",
"rule-name": "1",
API Version API バージョン 2016-01-01
104
AWS Database Migration Service ユーザーガイド
JSON を使用した選択および変換テーブルマッピング
"object-locator": {
"schema-name": "test",
"table-name": "%"
},
"rule-action": "include"
}, {
"rule-type": "transformation",
"rule-id": "2",
"rule-name": "2",
"rule-action": "remove-suffix",
"rule-target": "table",
"object-locator": {
"schema-name": "test",
"table-name": "%"
},
"value": "_DMS"
}]
}
選択ルールでのソースフィルタの使用
ソースフィルタを使用すると、ソースからターゲットに転送されるレコードの数とタイプを制限できま
す。たとえば、本社を拠点とする従業員だけがターゲットデータベースに移行されるように指定できま
す。フィルタは、選択ルールの一部です。データの列にフィルタを適用します。
ソースフィルタは、以下の制約に従う必要があります。
• 選択ルールには、フィルタを設定しないことも、1 つ以上のフィルタを選択することもできます。
• すべてのフィルタには 1 つ以上のフィルタ条件を設定できます。
• 複数のフィルタを使用する場合、フィルタのリストはフィルタ間で AND 演算子を使用しているものと
して結合されます。
• 1 つのフィルタ内で複数のフィルタ条件を使用する場合、フィルタ条件のリストはフィルタ条件間で
OR 演算子を使用しているものとして結合されます。
• フィルタは rule-action = 'include' の場合のみ適用されます。
• フィルタには、列名とフィルタ条件のリストが必要です。フィルタ条件には、フィルタ演算子と値が必
要です。
ソースフィルタルールの作成(JSON の場合)
ソースフィルタは、列名、フィルタ条件、フィルタ演算子、フィルタ値を指定することで作成できます。
次の表は、ソースフィルタリングに使用されるパラメーターを示しています。
パラメーター
値
filter-type
source
column-name
フィルタを適用するソース列の名前。
filter-conditions
filter-operator
このパラメーターは、次のいずれかになります。
• ste – 以下
• gte – 以上
• eq – 等しい
• between – 等しい、または 2 つの値の間
API Version API バージョン 2016-01-01
105
AWS Database Migration Service ユーザーガイド
JSON を使用した選択および変換テーブルマッピング
パラメーター
値
value
filter-operator パラメーターの値。filter-operator が between の場合、2
つの値 (1 つは start-value の値、もう 1 つは end-value の値) を指定しま
す。
次の例では、ソースフィルタを使用する一般的な方法をいくつか示します。
Example 1 つのフィルタ
次のフィルタは、empid >= 100 のすべての従業員をターゲットデータベースにレプリケートします。
{
"rules": [{
"rule-type": "selection",
"rule-id": "1",
"rule-name": "1",
"object-locator": {
"schema-name": "test",
"table-name": "employee"
},
"rule-action": "include",
"filters": [{
"filter-type": "source",
"column-name": "empid",
"filter-conditions": [{
"filter-operator": "gte",
"value": "100"
}]
}]
}]
}
Example 複数のフィルタ演算子
次のフィルタは、複数のフィルタ演算子を 1 つのデータ列に適用します。このフィルタは、(empid <=10)
または (empid is between 50 and 75) または (empid >= 100) のすべての従業員をターゲットデータ
ベースにレプリケートします。
{
"rules": [{
"rule-type": "selection",
"rule-id": "1",
"rule-name": "1",
"object-locator": {
"schema-name": "test",
"table-name": "employee"
},
"rule-action": "include",
"filters": [{
"filter-type": "source",
"column-name": "empid",
"filter-conditions": [{
"filter-operator": "ste",
"value": "10"
}, {
"filter-operator": "between",
"start-value": "50",
API Version API バージョン 2016-01-01
106
AWS Database Migration Service ユーザーガイド
JSON を使用した選択および変換テーブルマッピング
"end-value": "75"
}, {
"filter-operator": "gte",
"value": "100"
}]
}]
}]
}
Example 複数のフィルタ
次のフィルタは、テーブル内の 2 つの列に複数のフィルタを適用します。このフィルタは、(empid <=
100) および (dept= tech) のすべての従業員をターゲットデータベースにレプリケートします。
{
"rules": [{
"rule-type": "selection",
"rule-id": "1",
"rule-name": "1",
"object-locator": {
"schema-name": "test",
"table-name": "employee"
},
"rule-action": "include",
"filters": [{
"filter-type": "source",
"column-name": "empid",
"filter-conditions": [{
"filter-operator": "ste",
"value": "100"
}]
}, {
"filter-type": "source",
"column-name": "dept",
"filter-conditions": [{
"filter-operator": "eq",
"value": "tech"
}]
}]
}]
}
API Version API バージョン 2016-01-01
107
AWS Database Migration Service ユーザーガイド
データ移行サービスメトリクス
AWS Database Migration Service タ
スクのモニタリング
Amazon CloudWatch を使用して、AWS Database Migration Service (AWS DMS) でタスクの進行状況をモ
ニタリングできます。AWS マネジメントコンソール、AWS コマンドラインインターフェイス (CLI)、また
は AWS DMS API を使用して、データ移行の進行状況、使用されているリソースとネットワーク接続をモ
ニタリングできます。
Amazon CloudWatch のアラームやイベントを使用して、移行をより詳細に追跡できます。Amazon
CloudWatch の詳細については、『Amazon CloudWatch ユーザーガイド』の「Amazon
CloudWatch、Amazon CloudWatch イベント、Amazon CloudWatch ログとは」を参照してください。
AWS DMS コンソールには、以下の図に示すように、タスクのステータス、完了率、経過時間、テーブル
の統計を含めて、各タスクの基本的な CloudWatch 統計が表示されます。レプリケーションタスクを選択
し、[Task monitoring] タブを選択します。
AWS DMS コンソールで [Table statistics] タブを選択すると、挿入、削除、更新の数など、各テーブルの
パフォーマンス統計が表示されます。
加えて、[Replication Instance] ページからレプリケーションインスタンスを選択した場合、[Monitoring] タ
ブを選択することでインスタンスのパフォーマンスメトリクスを表示できます。
データ移行サービスメトリクス
AWS DMS には、次の統計情報が表示されます。
• ホストメトリクス – Amazon CloudWatch により提供されるパフォーマンスおよび使用状況の統計。
使用可能なメトリクスの完全なリストについては、「レプリケーションインスタンスのメトリク
ス (p. 109)」を参照してください。
• レプリケーションタスクメトリクス – 受信した変更とコミットされた変更、レプリケーションホストと
ソースおよびターゲットデータベースの間のレイテンシーなど、レプリケーションタスクの統計。使用
可能なメトリクスの完全なリストについては、「レプリケーションタスクのメトリクス (p. 110)」を参
照してください。
• テーブルメトリクス – 挿入、更新、削除、完了した DDL ステートメントの数など、移行が進行中のテー
ブルの統計。
API Version API バージョン 2016-01-01
108
AWS Database Migration Service ユーザーガイド
レプリケーションインスタンスのメトリクス
タスクメトリクスは、レプリケーションホストおよびソースエンドポイント間の統計と、レプリケー
ションホストおよびターゲットエンドポイント間の統計に分けられます。関連する 2 つの統計を一緒に
追加することで、タスクの統計の合計を調べることもできます。たとえば、CDCLatencySource 値と
CDCLatencyTarget 値を組み合わせることで、タスクの合計レイテンシー (レプリカラグ) を調べることが
できます。
タスクメトリック値は、ソースデータベースにおける現在のアクティビティの影響を受ける可能性があり
ます。たとえば、トランザクションが開始したが、コミットされていない場合、CDCLatencySource メト
リクスはトランザクションがコミットされるまで大きくなり続けます。
レプリケーションインスタンスのメトリクス
レプリケーションインスタンスのモニタリングには、次の統計に関する Amazon CloudWatch メトリクス
が含まれています。
CPUUtilization
使用される CPU の量。
単位: バイト
FreeStorageSpace
使用可能なストレージ領域の容量。
単位: バイト
FreeableMemory
使用可能な RAM の容量。
単位: バイト
WriteIOPS
1 秒あたりのディスク I/O 操作の平均回数。
単位: Count/Second
ReadIOPS
1 秒あたりのディスク I/O 操作の平均回数。
単位: Count/Second
WriteThroughput
1 秒あたりのディスクへの平均書き込みバイト数。
単位: バイト/Second
ReadThroughput
1 秒あたりのディスクからの平均読み取りバイト数。
単位: バイト/Second
WriteLatency
1 回のディスク I/O 操作にかかる平均時間。
単位: Seconds
ReadLatency
1 回のディスク I/O 操作にかかる平均時間。
API Version API バージョン 2016-01-01
109
AWS Database Migration Service ユーザーガイド
レプリケーションタスクのメトリクス
単位: Seconds
SwapUsage
レプリケーションインスタンスで使用されるスワップ領域の量。
単位: バイト
NetworkTransmitThroughput
モニタリングとレプリケーションに使用される顧客データベーストラフィックと AWS DMS トラ
フィックの両方を含む、レプリケーションインスタンスの送信ネットワークトラフィック。
単位: バイト/秒
NetworkReceiveThroughput
モニタリングとレプリケーションに使用される顧客データベーストラフィックと AWS DMS トラ
フィックの両方を含む、レプリケーションインスタンスの受信ネットワークトラフィック。
単位: バイト/秒
レプリケーションタスクのメトリクス
レプリケーションタスクのモニタリングには、次の統計のメトリクスが含まれています。
FullLoadThroughputBandwidthSource
ソースから受信した全ロードによるネットワーク帯域幅 (1 秒あたりの KB 数)。
FullLoadThroughputBandwidthTarget
ターゲットに送信される全ロードによるネットワーク帯域幅 (1 秒あたりの KB 数)。
FullLoadThroughputRowsSource
ソースから受信した全ロードによる変更 (1 秒あたりの行数)。
FullLoadThroughputRowsTarget
ターゲットに送信される全ロードによる変更 (1 秒あたりの行数)。
CDCIncomingChanges
タスクの変更の合計行数。
CDCChangesMemorySource
メモリに累積され、ソースからのコミットを待機している行の数。
CDCChangesMemoryTarget
メモリに累積され、ターゲットへのコミットを待機している行の数。
CDCChangesDiskSource
ディスクに累積され、ソースからのコミットを待機している行の数。
CDCChangesDiskTarget
ディスクに累積され、ターゲットへのコミットを待機している行の数。
CDCThroughputBandwidthTarget
ターゲットから送信されるタスクネットワーク帯域幅 (1 秒あたりの KB)。
CDCThroughputRowsSource
ソースから受信したタスクの変更 (1 秒あたりの行数)。
API Version API バージョン 2016-01-01
110
AWS Database Migration Service ユーザーガイド
AWS CloudTrail を使用した AWS
DMS API 呼び出しのログ記録
CDCThroughputRowsTarget
ターゲットに送信されるタスクの変更 (1 秒あたりの行数)。
CDCLatencySource
ソースからの読み取りのレイテンシー (秒)。
CDCLatencyTarget
ターゲットへの書き込みのレイテンシー (秒)。
AWS CloudTrail を使用した AWS Database
Migration Service API 呼び出しのログ記録
AWS CloudTrail サービスは、AWS アカウントによって、または AWS アカウントの代わりに行われた
AWS Database Migration Service (AWS DMS) API 呼び出しをすべて記録します。AWS CloudTrail は、こ
のログ情報を S3 バケットに格納します。CloudTrail により収集された情報を使用して、レプリケーション
インスタンスまたはエンドポイントの作成や削除など、AWS DMS アクティビティをモニタリングするこ
とができます。たとえば、リクエストが正常に完了したかどうかや、リクエストを行ったユーザーを判断
できます。CloudTrail の詳細については、『AWS CloudTrail User Guide』を参照してください。
AWS DMS コンソールまたは AWS DMS コマンドラインインターフェイスを使用して AWS アカウント
の代わりにアクションが実行された場合、AWS CloudTrail ではそのアクションが AWS DMS API への
呼び出しとして記録されます。たとえば、AWS DMS コンソールを使用して接続を記述したり、AWS
CLI describe-connections コマンドを呼び出したりした場合、AWS CloudTrail ログには AWS DMS API
DescribeConnections アクションの呼び出しが表示されます。AWS CloudTrail により記録される AWS
DMS API アクションのリストについては、「AWS DMS API リファレンス」を参照してください。
CloudTrail イベントログ作成機能の設定
CloudTrail は、監査証跡をリージョンごとに別個に作成し、S3 バケットに保存します。ログファイルの作
成時に Amazon Simple Notification Service (Amazon SNS) を使用して通知するように CloudTrail を設定す
ることができます (ただし、オプションです)。CloudTrail は通知を頻繁に行います。そのため、Amazon
Simple Queue Service (Amazon SQS) キューと組み合わせて Amazon SNS を使用し、プログラムを使っ
て通知を処理することをお勧めします。
CloudTrail は、AWS マネジメントコンソール、CLI、または API を使用して有効にすることができま
す。CloudTrail のログ作成機能を有効にすると、CloudTrail サービスにより、ログファイルを格納する S3
バケットを作成できるようになります。詳細については、『AWS CloudTrail User Guide』の「証跡の作成
と更新」を参照してください。『AWS CloudTrail User Guide』では、複数のリージョンの CloudTrail ログ
を 1 つの S3 バケットに集計する方法も説明されています。
CloudTrail サービスを使用してもコストは発生しません。ただし、S3 の標準使用料と Amazon SNS の使
用料 (このオプションを追加した場合) が適用されます。料金の詳細については、S3 と Amazon SNS の料
金表ページを参照してください。
CloudTrail ログファイルの AWS Database Migration
Service イベントエントリ
CloudTrail ログファイルは、JSON を使用してフォーマットしたイベント情報を含みます。1 件のイベント
レコードは、1 回の AWS API 呼び出しを表し、アクションをリクエストしたユーザーやリクエストの日時
など、リクエストされたアクションに関する情報を含みます。
API Version API バージョン 2016-01-01
111
AWS Database Migration Service ユーザーガイド
CloudTrail ログファイルの AWS Database
Migration Service イベントエントリ
CloudTrail ログファイルは、AWS DMS API 呼び出しだけでなく、AWS アカウントに関するすべての
AWS API 呼び出しイベントを含みます。ただし、ログファイルを読み取って、eventName 要素を使用して
AWS DMS API の呼び出しをスキャンできます。
CloudTrail ログファイルのさまざまな要素と値の詳細については、『AWS CloudTrail User Guide』の
「CloudTrail イベントリファレンス」を参照してください。
CloudTrail が統合された Amazon パートナーソリューションを使用して CloudTrail ログファイルの読み取
りと分析を実行することもできます。オプションについては、AWS パートナーのページを参照してくださ
い。
API Version API バージョン 2016-01-01
112
AWS Database Migration Service ユーザーガイド
イベントと通知の使用
AWS Database Migration Service (AWS DMS) は Amazon Simple Notification Service (Amazon SNS) を
使用して、AWS DMS イベントが発生したときに (レプリケーションインスタンスが作成されたときや
削除されたときなどに) 通知を送信します。これらの通知は、E メールメッセージ、テキストメッセー
ジ、HTTP エンドポイントの呼び出しなど、AWS リージョン用に Amazon SNS でサポートされているい
ずれの形式でも使用できます。
AWS DMS は、サブスクライブ可能なカテゴリにイベントをグループ分けします。これにより、そのカテ
ゴリのイベントが発生すると、通知を受け取ることができます。たとえば、特定のレプリケーションイン
スタンスの作成カテゴリにサブスクライブした場合は、レプリケーションインスタンスに影響を与える作
成関連のイベントが発生するたびに通知を受け取ります。レプリケーションインスタンスの設定変更カテ
ゴリにサブスクライブした場合は、レプリケーションインスタンスの設定が変更されると、通知を受け取
ります。また、イベント通知サブスクリプションが変更されても、通知を受け取ります。AWS DMS に用
意されているイベントカテゴリのリストについては、以下の「AWS DMS イベントカテゴリおよびイベン
トメッセージ (p. 114)」を参照してください。
AWS DMS は、イベントサブスクリプションを作成するときに指定したアドレスにイベント通知を送信
します。いくつかの異なるサブスクリプションを作成することもできます。たとえば、すべてのイベン
ト通知を受け取るサブスクリプションと、本稼働環境の DMS リソースに関する重要なイベントのみを含
むサブスクリプションを作成できます。AWS DMS コンソールで [Enabled] オプションを No に設定する
か、AWS DMS API を使用して Enabled パラメーターを false に設定することで、サブスクリプションを
削除せずに通知を簡単に無効にすることができます。
Note
SMS テキストメッセージを使用した AWS DMS イベント通知は現在、AWS DMS がサポート
されているすべてのリージョンで AWS DMS リソースで使用できます。SNS によるテキスト
メッセージの使用の詳細については、「Sending and Receiving SMS Notifications Using Amazon
SNS」を参照してください。
AWS DMS では、サブスクリプション識別子を使用して各サブスクリプションが識別されます。複数の
AWS DMS イベントサブスクリプションを同じ Amazon SNS トピックに公開できます。イベント通知を
使用する場合は、Amazon SNS 料金が適用されます。Amazon SNS の請求の詳細については、「Amazon
SNS 料金表」を参照してください。
AWS DMS イベントにサブスクライブするには、以下のプロセスを使用します。
1. Amazon SNS トピックを作成します。トピックでは、受け取る通知のタイプと、通知先のアドレスまた
は番号を指定します。
2. AWS マネジメントコンソール、AWS CLI、または AWS DMS API を使用して、AWS DMS イベント通
知サブスクリプションを作成します。
API Version API バージョン 2016-01-01
113
AWS Database Migration Service ユーザーガイド
AWS DMS イベントカテゴリおよびイベントメッセージ
3. サブスクリプションの作成で指定したアドレス宛てに、AWS DMS から承認の E メールまたは SMS
メッセージが送信されます。サブスクリプションを確認するには、承認の E メールまたは SMS メッ
セージのリンクをクリックします。
4. サブスクリプションを確認すると、AWS DMS コンソールの [Event Subscriptions] セクションで、サブ
スクリプションのステータスが更新されます。
5. その後、イベント通知を受け取り始めます。
通知できるカテゴリとイベントのリストについては、次のセクションを参照してください。AWS DMS イ
ベントのサブスクライブおよび使用方法の詳細については、「AWS DMS イベント通知へのサブスクライ
ブ (p. 116)」を参照してください。
AWS DMS イベントカテゴリおよびイベントメッ
セージ
AWS DMS では、AWS DMS コンソールまたは AWS DMS API を使用してサブスクライブできるカテゴ
リに基づいて多数のイベントが生成されます。各カテゴリはソースタイプに適用されます。AWS DMS で
は現在、レプリケーションインスタンスとレプリケーションタスクのソースタイプがサポートされていま
す。
以下の表では、レプリケーションインスタンスソースタイプの可能なカテゴリとイベントを示していま
す。
カテゴリ
DMS イベント ID
説明
設定変更
DMS-EVENT-0012
REP_INSTANCE_CLASS_CHANGING – このレプリ
ケーションインスタンスのレプリケーションインスタ
ンスクラスが変更中です。
設定変更
DMS-EVENT-0014
REP_INSTANCE_CLASS_CHANGE_COMPLETE – こ
のレプリケーションインスタンスのレプリケーション
インスタンスクラスが変更されました。
設定変更
DMS-EVENT-0018
BEGIN_SCALE_STORAGE – レプリケーションインス
タンスのストレージが増加中です。
設定変更
DMS-EVENT-0017
FINISH_SCALE_STORAGE – レプリケーションインス
タンスのストレージが増加しました。
設定変更
DMS-EVENT-0024
BEGIN_CONVERSION_TO_HIGH_AVAILABILITY – レ
プリケーションインスタンスがマルチ AZ 設定に移行
中です。
設定変更
DMS-EVENT-0025
FINISH_CONVERSION_TO_HIGH_AVAILABILITY – レ
プリケーションインスタンスがマルチ AZ 設定に移行
されました。
設定変更
DMS-EVENT-0030
BEGIN_CONVERSION_TO_NON_HIGH_AVAILABILITY
– レプリケーションインスタンスがシングル AZ 設定
に移行中です。
設定変更
DMS-EVENT-0029
FINISH_CONVERSION_TO_NON_HIGH_AVAILABILITY
– レプリケーションインスタンスがシングル AZ 設定
に移行されました。
API Version API バージョン 2016-01-01
114
AWS Database Migration Service ユーザーガイド
AWS DMS イベントカテゴリおよびイベントメッセージ
カテゴリ
DMS イベント ID
説明
作成
DMS-EVENT-0067
CREATING_REPLICATION_INSTANCE – レプリケー
ションインスタンスが作成中です。
作成
DMS-EVENT-0005
CREATED_REPLICATION_INSTANCE – レプリケー
ションインスタンスが作成されました。
削除
DMS-EVENT-0066
DELETING_REPLICATION_INSTANCE – レプリケー
ションインスタンスが削除中です。
削除
DMS-EVENT-0003
DELETED_REPLICATION_INSTANCE – レプリケー
ションインスタンスが削除されました。
メンテナンス
DMS-EVENT-0047
FINISH_PATCH_INSTANCE – レプリケーションイン
スタンスの管理ソフトウェアが更新されました。
メンテナンス
DMS-EVENT-0026
BEGIN_PATCH_OFFLINE – レプリケーションインス
タンスのオフラインメンテナンスが実行中です。レプ
リケーションインスタンスは現在使用できません。
メンテナンス
DMS-EVENT-0027
FINISH_PATCH_OFFLINE – レプリケーションインス
タンスのオフラインメンテナンスが完了しました。レ
プリケーションインスタンスは現在使用できます。
LowStorage
DMS-EVENT-0007
LOW_STORAGE – レプリケーションインスタンスの
空きストレージが少なくなっています。
フェイルオーバー
DMS-EVENT-0013
FAILOVER_STARTED – マルチ AZ レプリケーション
インスタンスのフェイルオーバーが開始されました。
フェイルオーバー
DMS-EVENT-0049
FAILOVER_COMPLETED – マルチ AZ レプリケーショ
ンインスタンスのフェイルオーバーが完了しました。
フェイルオーバー
DMS-EVENT-0050
MAZ_INSTANCE_ACTIVATION_STARTED – マルチ
AZ アクティベーションが開始されました。
フェイルオーバー
DMS-EVENT-0051
MAZ_INSTANCE_ACTIVATION_COMPLETED – マル
チ AZ アクティベーションが完了しました。
失敗
DMS-EVENT-0031
REPLICATION_INSTANCE_FAILURE – レプリケー
ションインスタンスでストレージの障害が発生しまし
た。
失敗
DMS-EVENT-0036
INCOMPATIBLE_NETWORK – 互換性のないネット
ワークのためレプリケーションインスタンスで障害が
発生しました。
以下の表では、レプリケーションタスクソースタイプの可能なカテゴリとイベントを示しています。
カテゴリ
DMS イベント ID
説明
StateChange
DMS-EVENT-0069
REPLICATION_TASK_STARTED – レプリケーション
タスクが開始されました。
StateChange
DMS-EVENT-0077
REPLICATION_TASK_STOPPED – レプリケーション
タスクが停止されました。
API Version API バージョン 2016-01-01
115
AWS Database Migration Service ユーザーガイド
AWS DMS イベント通知へのサブスクライブ
カテゴリ
DMS イベント ID
説明
失敗
DMS-EVENT-0078
REPLICATION_TASK_FAILED – レプリケーションタ
スクが失敗しました。
削除
DMS-EVENT-0073
REPLICATION_TASK_DELETED – レプリケーション
タスクが削除されました。
作成
DMS-EVENT-0074
REPLICATION_TASK_CREATED – レプリケーション
タスクが作成されました。
AWS DMS イベント通知へのサブスクライブ
AWS DMS イベント通知サブスクリプションを作成して、AWS DMS イベントが発生したときに通知を受
け取るようにできます。サブスクリプションを最も簡単に作成するには、AWS DMS コンソールを使用し
ます。AWS DMS API を使用してイベント通知サブスクリプションを作成する場合は、Amazon SNS ト
ピックを作成し、Amazon SNS コンソールまたは API を使用してそのトピックにサブスクライブする必要
があります。この場合、トピックの Amazon リソースネーム (ARN) も記録しておく必要があります。この
ARN は、CLI コマンドまたは API アクションを送信するときに使用するためです。Amazon SNS トピッ
クを作成してサブスクライブする方法については、「Getting Started with Amazon SNS」を参照してくだ
さい。
通知サブスクリプションでは、通知するソースのタイプと、イベントをトリガーする AWS DMS ソースを
指定できます。SourceType 値を使用して、AWS DMS ソースタイプを定義します。SourceIdentifier 値を
使用して、イベントを生成するソースを定義します。[SourceType] と [SourceIdentifier] を、SourceType
= db-instance と SourceIdentifier = myDBInstance1 などに指定すると、指定したソースに関するすべ
ての DB_Instance イベントの通知を受け取ります。SourceType を指定しても、SourceIdentifier を指定し
ない場合は、すべての AWS DMS ソースについて、指定したソースタイプのイベントの通知を受け取り
ます。SourceType も SourceIdentifier も指定しない場合は、お客様のアカウントに属するすべての AWS
DMS ソースから生成されたイベントの通知を受け取ります。
AWS マネジメントコンソール
コンソールを使用して AWS DMS イベント通知にサブスクライブするには
1.
AWS マネジメントコンソールにサインインし、AWS DMS を選択します。 AWS Identity and Access
Management (IAM) ユーザーとしてサインインしている場合は、AWS DMS にアクセスするための適
切なアクセス権限が必要です。
2.
左のナビゲーションペインで、[Event Subscriptions] を選択します。
3.
[Event Subscriptions] ページで、[Create Event Subscription] を選択します。
4.
[Create Event Subscription] ページで、以下の操作を行います。
a.
[Name] に、イベント通知サブスクリプションの名前を入力します。
b.
[Send notifications to] の既存の Amazon SNS トピックを選択するか、[create topic] を選択しま
す。通知の送信先として、既存の Amazon SNS トピックを使用するか、トピックを作成する必要
があります。[create topic] を選択した場合、通知の送信先の E メールアドレスを入力できます。
c.
[Source Type] で、ソースタイプを選択します。選択できるのは、[replication instance] のみで
す。
d.
[Yes] を選択して、サブスクリプションを有効にします。サブスクリプションを作成しても、通知
はまだ送信しない場合は、[No] を選択します。
e.
選択したソースタイプに応じて、イベント通知を受け取る対象となるイベントカテゴリとソース
を選択します。
API Version API バージョン 2016-01-01
116
AWS Database Migration Service ユーザーガイド
AWS DMS API
f.
[Create] を選択します。
AWS DMS コンソールで、サブスクリプションが作成されることが示されます。
AWS DMS API
AWS DMS API を使用して AWS DMS イベント通知にサブスクライブするには
•
CreateEventSubscription を呼び出します。
API Version API バージョン 2016-01-01
117
AWS Database Migration Service ユーザーガイド
移行タスクの実行の遅れ
移行タスクのトラブルシューティン
グ
以下のセクションでは、AWS Database Migration Service (AWS DMS) に関連する問題のトラブルシュー
ティングの情報を提供します。
トピック
• 移行タスクの実行の遅れ (p. 118)
• タスクのステータスバーが動かない (p. 119)
• 外部キーとセカンダリインデックスが見つからない (p. 119)
• Amazon RDS 接続問題 (p. 119)
• ネットワーキングの問題 (p. 120)
• 全ロード後、CDC が停止する (p. 120)
• タスクを再開時のプライマリキー制約違反エラー (p. 120)
• スキーマの初回ロードが失敗する (p. 121)
• 不明なエラーが発生してタスクが失敗する (p. 121)
• タスクを再開するとテーブルが最初からロードされる (p. 121)
• タスクあたりのテーブル数 (p. 121)
• Oracle 固有の問題のトラブルシューティング (p. 121)
• MySQL 固有の問題のトラブルシューティング (p. 124)
• PostgreSQL 固有の問題のトラブルシューティング (p. 126)
• Microsoft SQL Server 固有の問題のトラブルシューティング (p. 128)
• Amazon Redshift 固有の問題のトラブルシューティング (p. 130)
• Amazon Aurora 特有の問題のトラブルシューティング (p. 131)
移行タスクの実行の遅れ
移行タスクの実行が遅くなる、または後続のタスクの実行が初期タスクより遅くなる原因として、複数の
問題が考えられます。移行タスクの実行が遅くなる最も一般的な原因は、AWS DMS のレプリケーション
のインスタンスに割り当てられているリソースが不十分であることです。レプリケーションのインスタン
スの CPU、メモリ、スワップ、および IOPS の使用率をチェックし、インスタンスのリソースが実行中の
タスクのために十分であることを確認します。たとえば、エンドポイントとしての Amazon Redshift の複
API Version API バージョン 2016-01-01
118
AWS Database Migration Service ユーザーガイド
タスクのステータスバーが動かない
数のタスクは I/O 集約型です。レプリケーションのインスタンスに対して IOPS を増やすか、より効率的
に移行するためにレプリケーションの複数のインスタンス間で作業を分割できます。
レプリケーションのインスタンスサイズの決定に関する詳細については、「レプリケーションインスタン
ス用に最適なサイズを決定する (p. 32)」を参照してください。
以下を実行すると、初期の移行のロードがスピードアップします。
• ターゲットが Amazon RDS DB インスタンスの場合、Multi-AZ がターゲット DB インスタンスに対して
有効にされていないことを確認します。
• ロード中の自動バックアップまたはターゲットデータベースでのログ作成をオフにし、移行が完了した
らこれらの機能をオンに戻します。
• プロビジョンド IOPS がターゲットで利用可能な場合は、この機能を使用します。
• 移行データに LOB が含まれる場合は、タスクが LOB 移行のために最適化されていることを確認しま
す。LOB 用の最適化の詳細については、「ターゲットメタデータのタスク設定 (p. 89)」を参照してくだ
さい。
タスクのステータスバーが動かない
タスクのステータスバーで、タスクの進捗状況を予測できます。この予測の正確さはソースデータベース
のテーブル統計の正確さによって異なります。テーブル統計が正確であればあるほど、正確に予測できま
す。予測された列の統計がないテーブルが 1 つだけのタスクでは、どのような種類であっても完了率の予
測を提供できません。この場合、タスクのステータスと、ロードされた列の表示を使って、タスクが実際
に実行されて進行していることを確認できます。
外部キーとセカンダリインデックスが見つからない
AWS DMS は、テーブル、プライマリキー、場合によっては一意のインデックスを作成しますが、効率的
にソースからデータを移行するために必要ではない他のオブジェクトは作成されません。たとえば、セカ
ンダリインデックス、非プライマリキーの制約、データデフォルトは作成されません。
データベースからセカンダリオブジェクトを移行するには、ソースデータベースと同じデータベースエン
ジンに移行中の場合、データベースのネイティブツールを使用します。ソースデータベースで使用したも
のと異なるデータベースエンジンへ移行中の場合、スキーマ変換ツールを使用してセカンダリオブジェク
トを移行します。
Amazon RDS 接続問題
エンドポイントとして設定した Amazon RDS DB インスタンスに接続できない理由は複数考えられます。
具体的には次のとおりです。
• ユーザー名とパスワードの組み合わせが間違っています。
• インスタンス用に Amazon RDS コンソールに表示されるエンドポイント値が AWS DMS エンドポイン
トを作成するのに使用したエンドポイント識別子と同じであることを確認します。
• インスタンス用に Amazon RDS コンソールで表示されるポート値が AWS DMS エンドポイントに割り
当てられたポートと同じであることを確認します。
• Amazon RDS DB インスタンスに割り当てられたセキュリティグループが、AWS DMS のレプリケー
ションのインスタンスからの接続を許可することを確認します。
• AWS DMS のレプリケーションのインスタンスと Amazon RDS DB インスタンスが同じ VPC にない場
合は、DB インスタンスがパブリックにアクセス可能であることを確認します。
API Version API バージョン 2016-01-01
119
AWS Database Migration Service ユーザーガイド
エラーメッセージ: スレッドの接続文字列が正
しくありません。正しくないスレッド値「0」
エラーメッセージ: スレッドの接続文字列が正しくあ
りません。正しくないスレッド値「0」
エンドポイントへの接続をテストしているとき、このエラーが頻繁に発生します。このエラーは、ホスト
IP アドレスの後ろにスペースがある、接続文字列に正しくない文字がコピーされたなど、接続文字列にエ
ラーがあることを示します。
ネットワーキングの問題
最も一般的なネットワーキング問題には、AWS DMS のレプリケーションのインスタンスによって使用さ
れる VPC のセキュリティグループが関係しています。デフォルトでは、このセキュリティグループではす
べてのポートの 0.0.0.0/0 からの送信を許可するルールがあります。このセキュリティグループを変更する
か、独自のセキュリティグループを使用する場合、少なくとも、対応するデータベースポートでソースお
よびターゲットエンドポイントへの送信が許可される必要があります。
設定に関連した他の問題を次に示します。
• レプリケーションのインスタンスと、ソースとターゲット両方のエンドポイントが同じ VPC 内にある—
エンドポイントが使用するセキュリティグループはレプリケーションのインスタンスからのデータベー
スポートへの着信を許可する必要があります。レプリケーションインスタンスによって使用されるセ
キュリティグループでエンドポイントへの受信が許可されることを確認してください。または、エンド
ポイントにより使用されるセキュリティグループに、レプリケーションインスタンスのプライベート IP
アドレスにアクセスを許可するセキュリティルールを作成できます。
• ソースエンドポイントがレプリケーションのインスタンス (インターネットゲートウェイを使用) が使用
する VPC の外部にある— VPC セキュリティグループは VPC 宛てでないトラフィックをインターネッ
トゲートウェイに送信するルーティングルールを含む必要があります。この設定では、エンドポイント
へ接続が、レプリケーションインスタンス上のパブリック IP アドレスから行われているように見ます。
• ソースエンドポイントがレプリケーションのインスタンス (NAT のゲートウェイを使用) が使用する
VPC の外部にある— NAT 識別子 (nat-#####) を受け取る 1 つの Elastic Network Interface にバインドさ
れた 1 つの Elastic IP アドレスを使用する、ネットワークアドレス変換 (NAT) ゲートウェイを設定でき
ます。インターネットゲートウェイではなくその NAT ゲートウェイへのデフォルトルートが VPC に含
まれている場合、レプリケーションインスタンスはインターネットゲートウェイのパブリック IP アドレ
スを使用してデータベースエンドポイントに接続しているように見えます。この場合、VPC 外のデータ
ベースエンドポイントへの進入は、レプリケーションインスタンスのパブリック IP アドレスではなく
NAT アドレスからの進入を許可する必要があります。
全ロード後、CDC が停止する
複数の AWS DMS 設定が互いに競合すると、フルロード移行後に、レプリケーション変更が遅くなるか
停止することがあります。たとえば、[Target table preparation mode] パラメーターが [Do nothing] または
[Truncate] に設定されている場合、プライマリキーと一意なインデックスの作成を含め、ターゲットテー
ブル上でのセットアップを行わないように AWS DMS は指示されています。ターゲットテーブルでプライ
マリキーまたは固有なキーを作成していない場合、AWS DMS は更新プログラムごとに、テーブル全体の
スキャンを行う必要があり、パフォーマンスに大きな影響を与えることがあります。
タスクを再開時のプライマリキー制約違反エラー
このエラーは、以前の移行タスクからのターゲットデータベースにデータが残っている場合に発生するこ
とがあります。[Target table preparation mode] パラメーターが [Do nothing] に設定されている場合、AWS
API Version API バージョン 2016-01-01
120
AWS Database Migration Service ユーザーガイド
スキーマの初回ロードが失敗する
DMS は以前のタスクから挿入されたデータの削除を含め、ターゲットテーブルの準備を行いません。タス
クを再開し、これらのエラーを回避するために、タスクの以前の実行からターゲットテーブルに挿入され
る行を削除する必要があります。
スキーマの初回ロードが失敗する
スキーマの初回ロードが Operation:getSchemaListDetails:errType=, status=0, errMessage=,
errDetails= のエラーが発生して失敗する場合、ソースエンドポイントに接続するのに AWS DMS が使用
するユーザーアカウントには必要なアクセス許可がありません。
不明なエラーが発生してタスクが失敗する
これらのタイプのエラーの原因はさまざまですが、AWS DMS のレプリケーションのインスタンスに割り
当てられたリソースが不十分なことに関連した問題である場合がよくあります。レプリケーションのイン
スタンスの CPU、メモリ、スワップ、および IOPS の使用率をチェックし、インスタンスのリソースが移
行を実行するために十分であることを確認します。モニタリングの詳細については、「データ移行サービ
スメトリクス (p. 108)」を参照してください。
タスクを再開するとテーブルが最初からロードされ
る
AWS DMS は、テーブルの初回ロードを完了しなかった場合、テーブルのロードを最初から再開します。
タスクが再開されると、AWS DMS は、初回ロードを完了したテーブルはリロードしませんが、初回ロー
ドが完了していない場合、最初からテーブルをリロードします。
タスクあたりのテーブル数
レプリケーションのタスクあたりのテーブル数に制限は設定されていませんが、通常、1 つのタスクの
テーブル数を 60,000 個未満に制限すると良いようです。1 つのタスクが 60,000 個超のテーブルを使用す
ると、多くの場合リソース使用がボトルネックになることがあります。
Oracle 固有の問題のトラブルシューティング
以下は、AWS DMS を Oracle データベースで使用する際に固有の問題です。
トピック
• ビューからデータを取得する (p. 122)
• Oracle 12c から LOB を移行する (p. 122)
• Oracle LogMiner と BinaryReader の切り替え (p. 122)
• エラー: Oracle CDC は停止しました。122301 Oracle CDC の最大再試行カウンタを超えまし
た。 (p. 122)
• Oracle ソースエンドポイントにサプリメンタルロギングを自動的に追加する (p. 123)
• LOB の変更がキャプチャされない (p. 123)
• エラー: ORA-12899: 列 <column-name> の値が大きすぎる (p. 123)
API Version API バージョン 2016-01-01
121
AWS Database Migration Service ユーザーガイド
ビューからデータを取得する
• NUMBER のデータ型が誤って解釈される (p. 123)
ビューからデータを取得する
ビューからデータを抽出可能にするため、Oracle ソース エンドポイントの
exposeViews=true
の [Advanced] セクションの [Extra connection attributes] に次のコードを追加する必要があります。
Oracle 12c から LOB を移行する
Oracle データベースへの変更をキャプチャするために AWS DMS が使用できる方法は、BinaryReader と
Oracle LogMiner の 2 つです。デフォルトでは AWS DMS は Oracle LogMiner を使用して変更をキャプ
チャします。ただし、Oracle 12c で、Oracle LogMiner は LOB 列をサポートしていません。Oracle 12c で
の LOB 列の変更をキャプチャするには、BinaryReader を使用します。
Oracle LogMiner と BinaryReader の切り替え
ソース Oracle データベースへの変更をキャプチャするために AWS DMS が使用できる方法
は、BinaryReader と Oracle LogMiner の 2 つです。Oracle LogMiner がデフォルトです。BinaryReader を
使用して変更をキャプチャするように切り替えるには、次を実行します。
BinaryReader を使用して変更をキャプチャするには
1.
AWS マネジメントコンソールにサインインし、DMS を選択します。
2.
[Endpoints] を選択します。
3.
BinaryReader を使用したい Oracle ソースエンドポイントを選択します。
4.
[Modify] を選択します。
5.
[Advanced] を選択し、[Extra connection attributes] テキストボックスに以下のコードを追加します。
useLogminerReader=N
6.
SQL-Plus のような Oracle 開発者用ツールを使って、Oracle エンドポイントに接続するのに使用され
る AWS DMS ユーザーアカウントに追加の権限を与えます。
SELECT ON V_$TRANSPORTABLE_PLATFORM
エラー: Oracle CDC は停止しました。122301 Oracle
CDC の最大再試行カウンタを超えました。
このエラーは、AWS DMS が変更をキャプチャするために使用できるようになる前に、必要な Oracle アー
カイブログがサーバーから削除されると発生します。データベースサーバーのログリテンションポリシー
を増やします。Amazon RDS データベースでは、ログの保持を延長するために、次の手順を実行します。
たとえば、以下のコードを使うと Amazon RDS DB インスタンスでのログの保持が 24 時間に延長されま
す。
API Version API バージョン 2016-01-01
122
AWS Database Migration Service ユーザーガイド
Oracle ソースエンドポイントにサプリ
メンタルロギングを自動的に追加する
Exec rdsadmin.rdsadmin_util.set_configuration(‘archivelog retention hours’,24);
Oracle ソースエンドポイントにサプリメンタルロギン
グを自動的に追加する
デフォルトでは、AWS DMS のサプリメンタルロギングはオフになっています。Oracle ソースエンドポイ
ントのサプリメンタルロギングを自動的にオンにするには、以下の手順を実行します。
Oracle ソースエンドポイントにサプリメンタルロギングを追加するには
1.
2.
AWS マネジメントコンソールにサインインし、[DMS] を選択します。
[Endpoints] を選択します。
3.
サプリメンタルロギングを追加する Oracle ソースエンドポイントを選択します。
4.
[Modify] を選択します。
5.
[Advanced] を選択し、[Extra connection attributes] テキストボックスに以下のコードを追加します。
addSupplementalLogging=Y
6.
[Modify] を選択します。
LOB の変更がキャプチャされない
現在、LOB の変更をキャプチャするには、テーブルに AWS DMS のプライマリキーがある必要がありま
す。LOB を含むテーブルにプライマリキーがない場合、LOB の変更をキャプチャするにはいくつかのアク
ションを行うことができます。
• テーブルにプライマリキーを追加します。この手順は、ID 列を追加し、トリガーを使用してシーケンス
を入力するだけです。
• プライマリキーとしてシステム生成 ID を含むテーブルのマテリアライズドビューを作成し、テーブルで
はなくマテリアライズドビューを移行します。
• ロジカルスタンバイを作成し、テーブルにプライマリキーを追加して、ロジカルスタンバイから移行し
ます。
エラー: ORA-12899: 列 <column-name> の値が大きす
ぎる
エラー「ORA-12899: 列 <column-name> の値が大きすぎます」は、ソースとターゲットのデータベースで
使用される文字セットの不一致、または NLS の設定が 2 つのデータベース間で異なることが原因で生じる
ことがよくあります。このエラーの一般的な原因は、ソースデータベースの NLS_LENGTH_SEMANTICS
パラメーターが CHAR に設定されており、ターゲットデータベースの NLS_LENGTH_SEMANTICS パラ
メーターが BYTE に設定されていることです。
NUMBER のデータ型が誤って解釈される
Oracle NUMBER データ型は、NUMBER の精度とスケールに応じてさまざまな AWS DMS のデータ型
に変換されます。このような変換は「AWS Database Migration Service のソースとしての Oracle データ
API Version API バージョン 2016-01-01
123
AWS Database Migration Service ユーザーガイド
MySQL 固有の問題のトラブルシューティング
ベースの使用 (p. 54)」に記載されています。NUMBER 型が変換される方法は、Oracle のソースエンドポ
イントの追加の接続属性の使用に影響を受ける可能性があります。このような追加の接続属性は「AWS
Database Migration Service での追加の接続属性の使用 (p. 152)」に記載されています。
MySQL 固有の問題のトラブルシューティング
以下は、AWS DMS を MySQL データベースで使用する際に固有の問題です。
トピック
• バイナリログ作成が無効化されるため、Amazon RDS DB インスタンスのエンドポイントの CDC タス
クが失敗する (p. 124)
• MySQL 互換エンドポイントへの自動コミットを追加する (p. 124)
• MySQL 互換ターゲットエンドポイントで外部キーを無効化する (p. 125)
• 文字が疑問符に置き換えられる (p. 125)
• [Bad event] ログのエントリ (p. 125)
• MySQL 5.5 の変更データキャプチャ (p. 125)
• Amazon RDS DB インスタンスのバイナリログ保持を延長する (p. 125)
• ログメッセージ: ソースデータベースからの一部の変更は、ターゲットデータベースに適用されても効
果がありません。 (p. 126)
• エラー: 識別子が長すぎます (p. 126)
• エラー: サポートされていない文字セットによりフィールドデータ変換が失敗しました (p. 126)
バイナリログ作成が無効化されるため、Amazon RDS
DB インスタンスのエンドポイントの CDC タスクが
失敗する
自動バックアップが無効化されているためにこの問題が Amazon RDS DB インスタンスに発生します。
バックアップ保持期間を 0 以外の値に設定することで自動バックアップを有効にすることができます。
MySQL 互換エンドポイントへの自動コミットを追加
する
MySQL 互換ターゲットエンドポイントに自動コミットを追加するには
1.
AWS マネジメントコンソールにサインインし、[DMS] を選択します。
2.
[Endpoints] を選択します。
3.
自動コミットを追加したい MySQL 互換ターゲットエンドポイントを選択します。
4.
[Modify] を選択します。
5.
[Advanced] を選択し、[Extra connection attributes] テキストボックスに以下のコードを追加します。
Initstmt= SET AUTOCOMMIT=1
6.
[Modify] を選択します。
API Version API バージョン 2016-01-01
124
AWS Database Migration Service ユーザーガイド
MySQL 互換ターゲットエンドポ
イントで外部キーを無効化する
MySQL 互換ターゲットエンドポイントで外部キーを
無効化する
MySQL、Aurora または MariaDB ターゲットエンドポイントの [Advanced] セクションの [Extra
Connection Attributes] に以下を追加して、MySQL の外部キーのチェックを無効化できます。
MySQL 互換ターゲットエンドポイントで外部キーを無効化するには
1.
AWS マネジメントコンソールにサインインし、[DMS] を選択します。
2.
[Endpoints] を選択します。
3.
外部キーを無効にしたい Oracle のターゲットエンドポイントを選択します。
4.
[Modify] を選択します。
5.
[Advanced] を選択し、[Extra connection attributes] テキストボックスに以下のコードを追加します。
Initstmt=SET FOREIGN_KEY_CHECKS=0
6.
[Modify] を選択します。
文字が疑問符に置き換えられる
この問題を引き起こす可能性がある最も一般的な状況は、AWS DMS がサポートしない文字セットでソー
スエンドポイントの文字がエンコードされている場合です。たとえば、AWS DMS は UTF8MB4 文字セッ
トをサポートしていません。
[Bad event] ログのエントリ
移行ログの [Bad event] のエントリは通常、ソースデータベースエンドポイントで、サポートされていない
DDL オペレーションが試行されたことを指します。サポートされていない DDL オペレーションは、レプ
リケーションインスタンスが省略できないイベントを発生させ、bad event が記録されます。この問題を
修正するには、タスクを最初から再開します。テーブルがリロードされ、サポートされていない DDL オペ
レーションの発行後の時点で変更のキャプチャが開始されます。
MySQL 5.5 の変更データキャプチャ
Amazon RDS MySQL 互換データベースの AWS DMS 変更データキャプチャ (CDC) では、MySQL バー
ジョン 5.5 以前でサポートされていない、全イメージ行ベースのバイナリログ作成が必要です。AWS
DMS CDC を使用するには、Amazon RDS DB インスタンスを MySQL バージョン 5.6 にアップグレード
する必要があります。
Amazon RDS DB インスタンスのバイナリログ保持を
延長する
AWS DMS では、変更データキャプチャのバイナリログファイルを保持する必要があります。Amazon
RDS DB インスタンスでログの保持を延長するには、次の手順を使用します。次の例では、バイナリログ
の保持を 24 時間に延長します。
Call mysql.rds_set_configuration(‘binlog retention hours’, 24);
API Version API バージョン 2016-01-01
125
AWS Database Migration Service ユーザーガイド
ログメッセージ: ソースデータベースから
の一部の変更は、ターゲットデータベー
スに適用されても効果がありません。
ログメッセージ: ソースデータベースからの一部の変
更は、ターゲットデータベースに適用されても効果が
ありません。
AWS DMS が MySQL データベースの列の値を既存の値に更新すると、MySQL は zero rows affected の
メッセージを返します。この動作は、置き換える値が現在の値と同じであっても 1 行の更新を行う Oracle
や SQL のサーバーのような他のデータベースエンジンとは異なります。
エラー: 識別子が長すぎます
次のエラーは識別子が長すぎるときに発生します。
TARGET_LOAD E: RetCode: SQL_ERROR SqlState: HY000 NativeError:
1059 Message: MySQLhttp://ODBC 5.3(w) Driverhttp://mysqld-5.6.10Identifier
name ‘<name>’ is too long 122502 ODBC general error. (ar_odbc_stmt.c:4054)
AWS DMS がターゲットデータベースにテーブルとプライマリキーを作成するように設定されている場
合、現在プライマリキーはソースデータベースで使用されたのと同じ名前を使用していません。代わり
に、AWS DMS はテーブル名に基づいてプライマリキー名を作成します。テーブル名が長いと、作成され
た自動的に生成される識別子が、MySQL に許可されている制限よりも長くなる場合があります。現在、
この問題を解決するには、ターゲットデータベースのテーブルとプライマリキーを事前作成し、タスク設
定 [Target table preparation mode] が [Do nothing] または [Truncate] に設定されているタスクを使用して
ターゲットテーブルを入力します。
エラー: サポートされていない文字セットにより
フィールドデータ変換が失敗しました
次のエラーは、サポートされていない文字セットによりフィールドデータ変換が失敗した場合に発生しま
す。
“[SOURCE_CAPTURE ]E: Column ‘<column name>' uses an unsupported character set [120112]
A field data conversion failed. (mysql_endpoint_capture.c:2154)
テーブルまたはデータベースが UTF8MB4 エンコーディングを使用している場合、このエラーがよく発生
します。AWS DMS では UTF8MB4 文字セットはサポートされていません。さらに、接続に関係したデー
タベースのパラメーターを確認します。次のコマンドを使用してこれらのパラメーターを確認できます。
SHOW VARIABLES LIKE '%char%';
PostgreSQL 固有の問題のトラブルシューティング
以下は、AWS DMS を PostgreSQL データベースで使用する際に固有の問題です。
API Version API バージョン 2016-01-01
126
AWS Database Migration Service ユーザーガイド
ユーザー定義のデータ型の列が正しく移行されない
トピック
• ユーザー定義のデータ型の列が正しく移行されない (p. 127)
• エラー: 作成用のスキーマが選択されていません (p. 127)
• CDC を使用時、テーブルへの削除や更新がレプリケートされない (p. 127)
• TRUNCATE ステートメントが反映されない (p. 127)
• PostgreSQL の DDL キャプチャを防止する (p. 127)
• DDL キャプチャ用のデータベースオブジェクトを作成するスキーマの選択 (p. 128)
• PostgreSQL に移行した後 Oracle テーブルが存在しない (p. 128)
• ソースとしてビューを使用したタスクで行がコピーされない (p. 128)
ユーザー定義のデータ型の列が正しく移行されない
PostgreSQL ソースからレプリケートする場合、AWS DMS はユーザー定義のデータ型を含む列とは別
に、すべての列に対して同じデータ型のターゲットテーブルを作成します。このような場合、データ型は
ターゲットで「character varying」として作成されます。[このトラブルシューティングについてさらに情
報が必要です]
エラー: 作成用のスキーマが選択されていません
エラー「SQL_ERROR SqlState: 3F000 NativeError: 7 Message: エラー: 作成用のスキーマが選択されて
いません」は、JSON テーブルのマッピングがスキーマに対してワイルドカード値を含み、ソースデータ
ベースがその値をサポートしていない時に発生することがあります。
CDC を使用時、テーブルへの削除や更新がレプリ
ケートされない
変更データキプチャ (CDC) 中の削除や更新オペレーションは、ソーステーブルにプライマリキーがない場
合無視されます。AWS DMS では、プライマリキーを持つ PostgreSQL テーブルの変更データキャプチャ
(CDC) がサポートされています。テーブルにプライマリキーがない場合、WAL ログにはデータベース行の
前イメージが含まれていないため、AWS DMS がテーブルを更新できません。削除オペレーションをレプ
リケートする場合は、ソーステーブルにプライマリキーを作成します。
TRUNCATE ステートメントが反映されない
変更データキャプチャ (CDC) を使用する場合、AWS DMS は TRUNCATE オペレーションをサポートしま
せん。
PostgreSQL の DDL キャプチャを防止する
次の [Extra Connection Attribute] ステートメントを追加して、PostgreSQL ターゲットエンドポイントが
DDL ステートメントをキャプチャするのを防止できます。[Extra Connection Attribute] パラメーターは、
ターゲットエンドポイントの [Advanced] タブで利用可能です。
captureDDLs=N
API Version API バージョン 2016-01-01
127
AWS Database Migration Service ユーザーガイド
DDL キャプチャ用のデータベースオ
ブジェクトを作成するスキーマの選択
DDL キャプチャ用のデータベースオブジェクトを作成
するスキーマの選択
DDL キャプチャに関連したデータベースオブジェクトをどのスキーマで作成するかを制御できます。次の
[Extra Connection Attribute] ステートメントを追加します。[Extra Connection Attribute] パラメーターは、
ターゲットエンドポイントの [Advanced] タブで利用可能です。
ddlArtifactsSchema=xyzddlschema
PostgreSQL に移行した後 Oracle テーブルが存在しな
い
Oracle のデフォルトは大文字のテーブル名ですが、PostgreSQL のデフォルトは小文字のテーブル名で
す。通常、Oracle から PostgreSQL への移行を実行する場合、タスクのテーブルマッピングセクションで
変換ルールを追加してテーブル名を変換する必要があります。
テーブルとデータは引き続きアクセス可能です。テーブル名のケースを変換する変換ルールを使わずに
テーブルを移行した場合、それらを参照するときにはテーブル名を引用符で囲む必要があります。
ソースとしてビューを使用したタスクで行がコピーさ
れない
AWS DMS では、PostgreSQL ソースエンドポイントとしてのビューはサポートされていません。
Microsoft SQL Server 固有の問題のトラブルシュー
ティング
以下は、Microsoft SQL Server データベースで AWS DMS を使用する際に固有の問題です。
トピック
• AWS DMS ユーザーアカウントの CDC 使用を特別に許可する (p. 128)
• SQL Server 変更データキャプチャ (CDC) および Amazon RDS (p. 129)
• SQL Server データベースの変更キャプチャエラー (p. 129)
• IDENTITY 列が存在しない (p. 129)
• エラー: SQL Server は公開をサポートしていません (p. 129)
• ターゲットに変更が表示されない (p. 129)
AWS DMS ユーザーアカウントの CDC 使用を特別に
許可する
AWS DMS が使用するユーザーアカウントでは、変更データキャプチャ (CDC) を使用する場合に正しく動
作するために、SQL Server の SysAdmin の役割が必要です。SQL Server の CDC はオンプレミスのデー
タベースまたは EC2 インスタンスのデータベースでのみ利用可能です。
API Version API バージョン 2016-01-01
128
AWS Database Migration Service ユーザーガイド
SQL Server 変更データキャプ
チャ (CDC) および Amazon RDS
SQL Server 変更データキャプチャ (CDC) および
Amazon RDS
AWS DMS では現在、Amazon RDS SQL Server DB インスタンスからの変更データキャプチャ (CDC) を
サポートしていません。SQL Server の CDC はオンプレミスのデータベースまたは Amazon EC2 インス
タンスのデータベースでのみ利用可能です。
SQL Server データベースの変更キャプチャエラー
変更データキャプチャ (CDC) 中のエラーは、前提条件の 1 つが満たされていないことを示している可能性
があります。たとえば、最も一般的に見過ごされる前提条件は、完全データベースバックアップです。タ
スクログは次のエラーで、この欠落を示します。
SOURCE_CAPTURE E: No FULL database backup found (under the 'FULL' recovery model).
To enable all changes to be captured, you must perform a full database backup.
120438 Changes may be missed. (sqlserver_log_queries.c:2623)
「Microsoft SQL Server データベースの AWS Database Migration Service のソースとしての使用 (p. 62)」
で、SQL Server をソースとして使用するための前提条件を確認します。
IDENTITY 列が存在しない
AWS DMS では、ターゲットスキーマを作成する際の IDENTITY 列をサポートしていません。初期ロード
の完了後に追加する必要があります。
エラー: SQL Server は公開をサポートしていません
以下のエラーは、SQL Server Express をソースエンドポイントとして使用する際に生成されます。
RetCode: SQL_ERROR SqlState: HY000 NativeError: 21106
Message: This edition of SQL Server does not support publications.
AWS DMS では現在、ソースまたはターゲットとして、SQL Server Express をサポートしていません。
ターゲットに変更が表示されない
AWS DMS では、変更を一貫してキャプチャするために、ソース SQL Server データベースが「FULL」
または「BULK LOGGED」データ復旧モデルのいずれかであることが必要です。「SIMPLE」モデルはサ
ポートされていません。
SIMPLE 復旧モデルは、ユーザーがデータベースを復旧するのに必要な最低限の情報を記録します。すべ
ての非アクティブのログエントリは、チェックポイントが発生すると自動的に切り捨てられます。すべ
てのオペレーションが記録されていますが、チェックポイントが発生するとすぐにログが自動的に切り捨
てられます。つまり、再び利用可能となり、古いログエントリは上書きできるようになります。ログエン
トリが上書きされると、変更内容はキャプチャできません。そのため AWS DMS では、SIMPLE データ
復旧モデルをサポートしていません。SQL Server をソースとして使用するためのその他の前提条件につ
いては、「Microsoft SQL Server データベースの AWS Database Migration Service のソースとしての使
用 (p. 62)」を参照してください。
API Version API バージョン 2016-01-01
129
AWS Database Migration Service ユーザーガイド
Amazon Redshift 固有の問題のトラブルシューティング
Amazon Redshift 固有の問題のトラブルシューティ
ング
以下は、AWS DMS を Amazon Redshift データベースで使用する際に固有の問題です。
トピック
• AWS DMS レプリケーションのインスタンスとは異なるリージョンの Amazon Redshift クラスターに
ロードする (p. 130)
• エラー: リレーション「awsdms_apply_exceptions」がすでに存在します (p. 130)
• 名前が「awsdms_changes」で始まるテーブルのエラー (p. 130)
• dms.awsdms_changes000000000XXXX のような名前のクラスターのテーブルを参照する (p. 130)
• Amazon Redshift での作業に必要なアクセス許可 (p. 131)
AWS DMS レプリケーションのインスタンスとは異な
るリージョンの Amazon Redshift クラスターにロード
する
これは実行できません。AWS DMS では、AWS DMS レプリケーションのインスタンスと Redshift クラス
ターが同じリージョンにある必要があります。
エラー: リレーション「awsdms_apply_exceptions」
がすでに存在します
エラー "リレーション「awsdms_apply_exceptions」がすでに存在します" は、Redshift エンドポイントが
PostgreSQL エンドポイントとして指定されている場合に頻繁に発生します。この問題を解決するには、
エンドポイントを変更し、[Target engine] を「redshift」に変更します。
名前が「awsdms_changes」で始まるテーブルのエ
ラー
名前が「awsdms_changes」で始まるテーブルに関連するエラーメッセージは、同一の Amazon Redshift
クラスターにデータをロードしようとする 2 つのタスクが同時に実行される場合に頻繁に発生します。一
時テーブルに名前が付けられる方法のため、同じテーブルを更新する場合、同時に実行されるタスクは競
合する場合があります。
dms.awsdms_changes000000000XXXX のような名前
のクラスターのテーブルを参照する
AWS DMS では、S3 に保存されるファイルからデータがロードされると、一時テーブルを作成します。
このような一時テーブルの名前には、プレフィックス「dms.awsdms_changes」が付けられます。AWS
DMS は、データの初期ロード時と、最終ターゲットテーブルに保存する前にデータを保存できるようこの
ようなテーブルが必要です。
API Version API バージョン 2016-01-01
130
AWS Database Migration Service ユーザーガイド
Amazon Redshift での作業に必要なアクセス許可
Amazon Redshift での作業に必要なアクセス許可
Amazon Redshift で AWS DMS を使用するには、Amazon Redshift にアクセスするのに使うユーザーアカ
ウントは、次のアクセス許可を必要とします。
• CRUD (SELECT、INSERT、UPDATE、DELETE)
• BULK Load
• CREATE、ALTER、DROP (タスクの定義によって必要な場合)
Amazon Redshift をターゲットとして使用するための前提条件を確認するには、「AWS Database
Migration Service のターゲットとしての Amazon Redshift データベースの使用 (p. 82)」を参照してくださ
い。
Amazon Aurora 特有の問題のトラブルシューティ
ング
以下は、AWS DMS で Amazon Aurora データベースを使用している際に発生する特有の問題です。
トピック
• エラー: CHARACTER SET UTF8 フィールドが「,」で切り取られています。行が「\n」で切り取られ
ています (p. 131)
エラー: CHARACTER SET UTF8 フィールドが「,」で
切り取られています。行が「\n」で切り取られていま
す
ターゲットとして Amazon Aurora を使用しているときに、ログに以下のようなエラーが表示された場
合、通常、このエラーは SQL_MODE パラメーターの一部に ANSI_QUOTES があることを示していま
す。SQL_MODE パラメーターの一部として ANSI_QUOTES がある場合、二重引用符が引用符として処
理され、タスクの実行時に問題が起きることがあります。このエラーを修正するには、SQL_MODE パラ
メーターから ANSI_QUOTES を削除します。
2016-11-02T14:23:48 [TARGET_LOAD ]E: Load data sql statement. load data local infile
"/rdsdbdata/data/tasks/7XO4FJHCVON7TYTLQ6RX3CQHDU/data_files/4/LOAD000001DF.csv" into
table
`VOSPUSER`.`SANDBOX_SRC_FILE` CHARACTER SET UTF8 fields terminated by ','
enclosed by '"' lines terminated by '\n'( `SANDBOX_SRC_FILE_ID`,`SANDBOX_ID`,
`FILENAME`,`LOCAL_PATH`,`LINES_OF_CODE`,`INSERT_TS`,`MODIFIED_TS`,`MODIFIED_BY`,
`RECORD_VER`,`REF_GUID`,`PLATFORM_GENERATED`,`ANALYSIS_TYPE`,`SANITIZED`,`DYN_TYPE`,
`CRAWL_STATUS`,`ORIG_EXEC_UNIT_VER_ID` ) ; (provider_syntax_manager.c:2561)
API Version API バージョン 2016-01-01
131
AWS Database Migration Service ユーザーガイド
データ変換リファレンスや追加の
トピックを含む AWS Database
Migration Service のリファレンス
このリファレンスセクションには、データ型変換の情報や追加の手順など、AWS Database Migration
Service (AWS DMS) を使用する際に必要となる追加情報が含まれています。データベースの移行時、デー
タ型について以下の点は重要ですので、注意してください。
• FLOAT データ型は本質的に近似値です。NUMBER や NUMBER(p,s) などの 10 進データ型のように正
確なデータ型ではないため、FLOAT データ型は、特定の値を挿入するとデータベースでは異なった方法
で表現されることがあるという意味で特殊です。したがって、データベースに保存された FLOAT の内
部値は、挿入した値とは異なる場合があるため、FLOAT の移行された値がソースデータベースの値と正
確に一致しない可能性があります。
このトピックに関するいくつかの記事を以下に示します。
IEEE floating point https://en.wikipedia.org/wiki/IEEE_floating_point
IEEE Floating-Point Representation https://msdn.microsoft.com/en-us/library/0b34tf65.aspx
Why Floating-Point Numbers May Lose Precision https://msdn.microsoft.com/en-us/library/c151dt3s.aspx
• UTF-8 の 4 バイト文字セット (utf8mb4) がサポートされていないため、ソースデータベースでの予期し
ない動作となることがあります。移行前に、UTF-8 の 4 バイト文字セットを使用するデータの変換を検
討してください。
トピック
• ソースデータ型 (p. 133)
• ターゲットデータ型 (p. 143)
• AWS Database Migration Service のデータ型 (p. 151)
• AWS Database Migration Service での追加の接続属性の使用 (p. 152)
• AWS Database Migration Service での ClassicLink の使用 (p. 158)
API Version API バージョン 2016-01-01
132
AWS Database Migration Service ユーザーガイド
ソースデータ型
ソースデータ型
AWS Database Migration Service のソースとして使用されるデータベースのデータ型変換に関する表を以
下に示します。
トピック
• Oracle のソースデータ型 (p. 133)
• Microsoft SQL Server のソースデータ型 (p. 135)
• PostgreSQL のソースデータ型 (p. 138)
• MySQL のソースデータ型 (p. 140)
• SAP ASE のソースデータ型 (p. 142)
Oracle のソースデータ型
AWS DMS の Oracle エンドポイントでは、Oracle のほとんどのデータ型がサポートされます。次の表
に、AWS DMS を使用する場合にサポートされる Oracle のソースデータ型と、AWS DMS のデータ型との
デフォルトマッピングを示します。
AWS DMS のデータ型の詳細については、「AWS Database Migration Service のデータ型 (p. 151)」を
参照してください。
Oracle のデータ型
AWS DMS のデータ型
BINARY_FLOAT
REAL4
BINARY_DOUBLE
REAL8
BINARY
BYTES
FLOAT (P)
精度が 24 以下の場合、REAL4 を使用します。
精度が 24 より高い場合、REAL8 を使用します。
NUMBER (P,S)
スケールが 0 未満の場合、REAL8 を使用します。
Oracle のソースデータベー
ス設定の「Expose number
as」プロパティに従った
NUMBER。
スケールが 0 の場合
• 精度が 0 の場合、REAL8 を使用します。
• 精度が 2 以上の場合、INT1 を使用します。
• 精度が 2 より大きく 4 以下の場合、INT2 を使用します。
• 精度が 4 より大きく 9 以下の場合、INT4 を使用します。
• 精度が 9 より大きい場合、NUMERIC を使用します。
• 精度がスケール以上の場合、NUMERIC を使用します。
他のいずれの場合も、REAL8 を使用します。
DATE
DATETIME
INTERVAL_YEAR TO
MONTH
STRING (間隔 year_to_month を指定)
INTERVAL_DAY TO
SECOND
STRING (間隔 day_to_second を指定)
API Version API バージョン 2016-01-01
133
AWS Database Migration Service ユーザーガイド
Oracle のソースデータ型
Oracle のデータ型
AWS DMS のデータ型
TIME
DATETIME
TIMESTAMP
DATETIME
TIMESTAMP WITH TIME
ZONE
STRING (timestamp_with_timezone を指定)
TIMESTAMP WITH LOCAL
TIME ZONE
STRING (timestamp_with_local_ timezone を指定)
CHAR
STRING
VARCHAR2
STRING
NCHAR
WSTRING
NVARCHAR2
WSTRING
RAW
BYTES
REAL
REAL8
BLOB
BLOB
AWS DMS でこのデータ型を使用するには、特定のタスク用に BLOB
データ型の使用を有効にする必要があります。AWS DMS は、プライマ
リキーを含むテーブルでのみ BLOB データ型をサポートします。
CLOB
CLOB
AWS DMS でこのデータ型を使用するには、特定のタスク用に CLOB
データ型の使用を有効にする必要があります。変更データキャプチャ
(CDC) 中、AWS DMS はプライマリキーを含むテーブルでのみ CLOB
データ型をサポートしています。
NCLOB
NCLOB
AWS DMS でこのデータ型を使用するには、特定のタスク用に NCLOB
データ型の使用を有効にする必要があります。CDC 中、AWS DMS は
プライマリキーを含むテーブルでのみ NCLOB データ型をサポートしま
す。
LONG
CLOB
LONG データ型は、最適化バッチ適用モード (TurboStream CDC モー
ド) ではサポートされません。AWS DMS でこのデータ型を使用するに
は、特定のタスク用に LOB の使用を有効にする必要があります。CDC
中、AWS DMS はプライマリキーを持つテーブルでのみ LOB データ型
をサポートします。
LONG RAW
BLOB
LONG RAW データ型は、最適化バッチ適用モード (TurboStream CDC
モード) ではサポートされません。AWS DMS でこのデータ型を使用
するには、特定のタスク用に LOB の使用を有効にする必要がありま
す。CDC 中、AWS DMS はプライマリキーを持つテーブルでのみ LOB
データ型をサポートします。
API Version API バージョン 2016-01-01
134
AWS Database Migration Service ユーザーガイド
SQL Server のソースデータ型
Oracle のデータ型
AWS DMS のデータ型
XMLTYPE
CLOB
XMLTYPE データ型のサポートには、(Oracle Instant Client ではなく) フ
ル Oracle クライアントが必要です。ターゲット列が CLOB の場合、フ
ル LOB モードと制限付き LOB モードの両方がサポートされます (ター
ゲットによって異なります)。
以下のデータ型の列とともにソースとして使用されている Oracle テーブルはサポートされておらず、レプ
リケートすることができません。これらのデータ型の列をレプリケートすると NULL 列が発生します。
• BFILE
• ROWID
• REF
• UROWID
• NESTED TABLE
• ユーザー定義のデータ型
• ANYDATA
Note
仮想列はサポートされていません。
Microsoft SQL Server のソースデータ型
Microsoft SQL Server を AWS DMS のソースとして使用するデータ移行では、ほとんどの SQL Server
データ型がサポートされます。次の表に、AWS DMS を使用する場合にサポートされる SQL Server の
ソースデータ型と、AWS DMS のデータ型からのデフォルトマッピングを示します。
ターゲットにマッピングされるデータ型を表示する方法については、使用しているターゲットエンドポイ
ントのセクションを参照してください。
AWS DMS のデータ型の詳細については、「AWS Database Migration Service のデータ型 (p. 151)」を
参照してください。
SQL Server のデータ型
AWS DMS のデータ型
BIGINT
INT8
BIT
BOOLEAN
DECIMAL
NUMERIC
INT
INT4
MONEY
NUMERIC
NUMERIC (p,s)
NUMERIC
SMALLINT
INT2
SMALLMONEY
NUMERIC
TINYINT
UINT1
REAL
REAL4
API Version API バージョン 2016-01-01
135
AWS Database Migration Service ユーザーガイド
SQL Server のソースデータ型
SQL Server のデータ型
AWS DMS のデータ型
FLOAT
REAL8
DATETIME
DATETIME
DATETIME2 (SQL Server 2008 以降)
DATETIME
SMALLDATETIME
DATETIME
DATE
DATE
TIME
TIME
DATETIMEOFFSET
WSTRING
CHAR
STRING
VARCHAR
STRING
VARCHAR(max)
CLOB
TEXT
AWS DMS でこのデータ型を使用するには、特定
のタスク用に CLOB データ型の使用を有効にする
必要があります。
SQL Server テーブルの場合、SQL Server で LOB
列の値を変更しない UPDATE ステートメントで
も、AWS DMS はターゲットの LOB 列を更新しま
す。
CDC 中、AWS DMS はプライマリキーを含むテー
ブルでのみ CLOB データ型をサポートします。
NCHAR
WSTRING
NVARCHAR (長さ)
WSTRING
NVARCHAR (最大)
NCLOB
NTEXT
AWS DMS でこのデータ型を使用するには、特定
のタスク用に NCLOB データ型の使用を有効にす
る必要があります。
SQL Server テーブルの場合、SQL Server で LOB
列の値を変更しない UPDATE ステートメントで
も、AWS DMS はターゲットの LOB 列を更新しま
す。
CDC 中、AWS DMS はプライマリキーを含むテー
ブルでのみ CLOB データ型をサポートします。
BINARY
BYTES
VARBINARY
BYTES
API Version API バージョン 2016-01-01
136
AWS Database Migration Service ユーザーガイド
SQL Server のソースデータ型
SQL Server のデータ型
AWS DMS のデータ型
VARBINARY (最大)
BLOB
IMAGE
SQL Server テーブルの場合、SQL Server で LOB
列の値を変更しない UPDATE ステートメントで
も、AWS DMS はターゲットの LOB 列を更新しま
す。
AWS DMS でこのデータ型を使用するには、特定
のタスク用に BLOB データ型の使用を有効にする
必要があります。
AWS DMS は、プライマリキーを含むテーブルで
のみ BLOB データ型をサポートします。
TIMESTAMP
BYTES
UNIQUEIDENTIFIER
STRING
HIERARCHYID
SQL Server ターゲットエンドポイントにレプリ
ケートする場合は、HIERARCHYID を使用しま
す。
他のすべてのターゲットエンドポイントにレプリ
ケートする場合は、WSTRING (250) を使用しま
す。
XML
NCLOB
SQL Server テーブルの場合、SQL Server で LOB
列の値を変更しない UPDATE ステートメントで
も、AWS DMS はターゲットの LOB 列を更新しま
す。
AWS DMS でこのデータ型を使用するには、特定
のタスク用に NCLOB データ型の使用を有効にす
る必要があります。
CDC 中、AWS DMS はプライマリキーを含むテー
ブルでのみ NCLOB データ型をサポートします。
GEOMETRY
このデータ型をサポートするターゲットエンドポ
イントにレプリケートする場合は、GEOMETRY
を使用します。
このデータ型をサポートしないターゲットエンド
ポイントにレプリケートする場合は、CLOB を使
用します。
GEOGRAPHY
このデータ型をサポートするターゲットエンドポ
イントにレプリケートする場合は、GEOGRAPHY
を使用します。
このデータ型をサポートしないターゲットエンド
ポイントにレプリケートする場合は、CLOB を使
用します。
API Version API バージョン 2016-01-01
137
AWS Database Migration Service ユーザーガイド
PostgreSQL のソースデータ型
AWS DMS は、以下のデータ型のフィールドを含むテーブルをサポートしません。
• CURSOR
• SQL_VARIANT
• TABLE
Note
ユーザー定義のデータ型は、基本型に従ってサポートされます。たとえば、DATETIME をベース
とするユーザー定義のデータ型は DATETIME データ型として扱われます。
PostgreSQL のソースデータ型
次の表に、AWS DMS を使用する場合にサポートされる PostgreSQL のソースデータ型と、AWS DMS の
データ型とのデフォルトマッピングを示します。
AWS DMS のデータ型の詳細については、「AWS Database Migration Service のデータ型 (p. 151)」を
参照してください。
PostgreSQL のデータ型
AWS DMS のデータ型
INTEGER
INT4
SMALLINT
INT2
BIGINT
INT8
NUMERIC (p,s)
精度が 0 ~ 38 の場合、NUMERIC を使用します。
精度が 39 以上の場合、STRING を使用します。
DECIMAL(P,S)
精度が 0 ~ 38 の場合、NUMERIC を使用します。
精度が 39 以上の場合、STRING を使用します。
REAL
REAL4
DOUBLE
REAL8
SMALLSERIAL
INT2
SERIAL
INT4
BIGSERIAL
INT8
MONEY
NUMERIC(38,4)
注: MONEY データ型は、SQL Server の FLOAT に
マッピングされます。
CHAR
WSTRING (1)
CHAR(N)
WSTRING (n)
VARCHAR(N)
WSTRING (n)
TEXT
NCLOB
BYTEA
BLOB
API Version API バージョン 2016-01-01
138
AWS Database Migration Service ユーザーガイド
PostgreSQL のソースデータ型
PostgreSQL のデータ型
AWS DMS のデータ型
TIMESTAMP
TIMESTAMP
TIMESTAMP (z)
TIMESTAMP
TIMESTAMP (タイムゾーン付き)
サポート外
DATE
DATE
TIME
TIME
TIME (z)
TIME
INTERVAL
STRING (128)—1 YEAR、2 MONTHS、3
DAYS、4 HOURS、5 MINUTES、6 SECONDS
BOOLEAN
STRING (1) F または T
ENUM
STRING (64)
CIDR
STRING (50)
INET
STRING (50)
MACADDR
STRING (18)
BIT (n)
STRING (n)
BIT VARYING (n)
STRING (n)
UUID
STRING
TSVECTOR
CLOB
TSQUERY
CLOB
XML
CLOB
POINT
STRING (255) "(x,y)"
LINE
STRING (255) "(x,y,z)"
LSEG
STRING (255) "((x1,y1),(x2,y2))"
BOX
STRING (255) "((x1,y1),(x2,y2))"
PATH
CLOB "((x1,y1),(xn,yn))"
POLYGON
CLOB "((x1,y1),(xn,yn))"
CIRCLE
STRING (255) "(x,y),r"
JSON
NCLOB
ARRAY
NCLOB
COMPOSITE
NCLOB
INT4RANGE
STRING (255)
INT8RANGE
STRING (255)
API Version API バージョン 2016-01-01
139
AWS Database Migration Service ユーザーガイド
MySQL のソースデータ型
PostgreSQL のデータ型
AWS DMS のデータ型
NUMRANGE
STRING (255)
STRRANGE
STRING (255)
MySQL のソースデータ型
次の表に、AWS DMS を使用する場合にサポートされる MySQL データベースのソースデータ型と、AWS
DMS のデータ型からのデフォルトマッピングを示します。
Note
UTF-8 の 4 バイト文字セット (utf8mb4) がサポートされていないため、ソースデータベースでの
予期しない動作となることがあります。移行前に、UTF-8 の 4 バイト文字セットを使用するデー
タの変換を検討してください。
AWS DMS のデータ型の詳細については、「AWS Database Migration Service のデータ型 (p. 151)」を
参照してください。
MySQL のデータ型
AWS DMS のデータ型
INT
INT4
MEDIUMINT
INT4
BIGINT
INT8
TINYINT
INT1
DECIMAL(10)
NUMERIC (10,0)
BINARY
BYTES(1)
BIT
BOOLEAN
BIT(64)
BYTES(8)
BLOB
BYTES(66535)
LONGBLOB
BLOB
MEDIUMBLOB
BLOB
TINYBLOB
BYTES(255)
DATE
DATE
DATETIME
DATETIME
TIME
STRING
TIMESTAMP
DATETIME
YEAR
INT2
DOUBLE
REAL8
FLOAT
REAL(DOUBLE)
API Version API バージョン 2016-01-01
140
AWS Database Migration Service ユーザーガイド
MySQL のソースデータ型
MySQL のデータ型
AWS DMS のデータ型
サポートされる FLOAT の範囲は、-1.79E+308 ~
-2.23E-308、0 および 2.23E-308 ~ 1.79E+308 で
す。
FLOAT 値がここで指定された範囲に収まらない場
合、FLOAT データ型を STRING データが型にマッ
ピングします。
VARCHAR(45)
WSTRING (45)
VARCHAR(2000)
WSTRING (2000)
VARCHAR(4000)
WSTRING (4000)
VARBINARY (4000)
BYTES (4000)
VARBINARY (2000)
BYTES (2000)
CHAR
WSTRING
TEXT
WSTRING (65535)
LONGTEXT
NCLOB
MEDIUMTEXT
NCLOB
TINYTEXT
WSTRING (255)
GEOMETRY
BLOB
POINT
BLOB
LINESTRING
BLOB
POLYGON
BLOB
MULTIPOINT
BLOB
MULTILINESTRING
BLOB
MULTIPOLYGON
BLOB
GEOMETRYCOLLECTION
BLOB
Note
値が「ゼロ」(つまり、0000-00-00) の DATETIME データ型と TIMESTAMP データ型が指定され
ている場合、レプリケーションタスクのターゲットデータベースにより DATETIME データ型と
TIMESTAMP データ型で「ゼロ」値がサポートされていることを確認する必要があります。サ
ポートされていない場合、ターゲットで NULL として記録されます。
以下の MySQL データ型は全ロードでのみサポートされています。
MySQL のデータ型
AWS DMS のデータ型
ENUM
STRING
SET
STRING
API Version API バージョン 2016-01-01
141
AWS Database Migration Service ユーザーガイド
SAP ASE のソースデータ型
SAP ASE のソースデータ型
AWS DMS のソースとして SAP ASE を使用するデータ移行では、ほとんどの SAP ASE データ型がサ
ポートされます。次の表に、AWS DMS を使用する場合にサポートされる SAP ASE のソースデータ型
と、AWS DMS のデータ型からのデフォルトマッピングを示します。
ターゲットにマッピングされるデータ型を表示する方法については、使用しているターゲットエンドポイ
ントのセクションを参照してください。
AWS DMS のデータ型の詳細については、「AWS Database Migration Service のデータ型 (p. 151)」を
参照してください。
SAP ASE のデータ型
AWS DMS のデータ型
BIGINT
INT8
BINARY
BYTES
BIT
BOOLEAN
CHAR
STRING
DATE
DATE
DATETIME
DATETIME
DECIMAL
NUMERIC
DOUBLE
REAL8
FLOAT
REAL8
IMAGE
BLOB
INT
INT4
MONEY
NUMERIC
NCHAR
WSTRING
NUMERIC
NUMERIC
NVARCHAR
WSTRING
REAL
REAL4
SMALLDATETIME
DATETIME
SMALLINT
INT2
SMALLMONEY
NUMERIC
TEXT
CLOB
TIME
TIME
TINYINT
UINT1
UNICHAR
UNICODE CHARACTER
UNITEXT
NCLOB
UNIVARCHAR
UNICODE
API Version API バージョン 2016-01-01
142
AWS Database Migration Service ユーザーガイド
ターゲットデータ型
SAP ASE のデータ型
AWS DMS のデータ型
VARBINARY
BYTES
VARCHAR
STRING
AWS DMS は、以下のデータ型のフィールドを含むテーブルをサポートしません。
• ユーザー定義の型 (UDT)
ターゲットデータ型
AWS Database Migration Service のターゲットとして使用されるデータベースのデータ型変換に関する表
を以下に示します。
トピック
• Oracle のターゲットデータ型 (p. 143)
• Microsoft SQL Server のターゲットデータ型 (p. 144)
• PostgreSQL のターゲットデータ型 (p. 146)
• MySQL のターゲットデータ型 (p. 147)
• SAP ASE のターゲットデータ型 (p. 148)
• Amazon Redshift のデータ型 (p. 149)
Oracle のターゲットデータ型
AWS DMS で使用されるターゲット Oracle データベースでは、Oracle のほとんどのデータ型がサポー
トされます。次の表に、AWS DMS を使用する場合にサポートされる Oracle のターゲットデータ型
と、AWS DMS のデータ型からのデフォルトマッピングを示します。ソースからマッピングされるデータ
型を表示する方法の詳細については、使用しているソースのセクションを参照してください。
AWS DMS のデータ型
Oracle のデータ型
BOOLEAN
NUMBER (1)
BYTES
RAW (長さ)
DATE
DATETIME
TIME
TIMESTAMP (0)
DATETIME
TIMESTAMP (scale)
INT1
NUMBER (3)
INT2
NUMBER (5)
INT4
NUMBER (10)
INT8
NUMBER (19)
NUMERIC
NUMBER (p,s)
REAL4
FLOAT
REAL8
FLOAT
API Version API バージョン 2016-01-01
143
AWS Database Migration Service ユーザーガイド
SQL Server のターゲットデータ型
AWS DMS のデータ型
Oracle のデータ型
STRING
date を指定: DATE
time を指定: TIMESTAMP
timestamp を指定: TIMESTAMP
timestamp_with_timezone を指定: TIMESTAMP WITH TIMEZONE
timestamp_with_local_timezone を指定: TIMESTAMP WITH LOCAL
TIMEZONE interval_year_to_month を指定: INTERVAL YEAR TO
MONTH
interval_day_to_second を指定: INTERVAL DAY TO SECOND
他のすべての場合: VARCHAR2 (長さ)
UINT1
NUMBER (3)
UINT2
NUMBER (5)
UINT4
NUMBER (10)
UINT8
NUMBER (19)
WSTRING
NVARCHAR2 (長さ)
BLOB
BLOB
AWS DMS でこのデータ型を使用するには、特定のタスク用に BLOB の
使用を有効にする必要があります。BLOB データ型は、プライマリキー
を含むテーブルでのみサポートされます。
CLOB
CLOB
AWS DMS でこのデータ型を使用するには、特定のタスク用に CLOB の
使用を有効にする必要があります。CDC 中、CLOB データ型は、プラ
イマリキーを含むテーブルでのみサポートされます。
NCLOB
NCLOB
AWS DMS でこのデータ型を使用するには、特定のタスク用に NCLOB
の使用を有効にする必要があります。CDC 中、プライマリキーを含む
テーブルでのみ NCLOB データ型がサポートされます。
XMLTYPE
XMLTYPE ターゲットデータ型は、Oracle 間レプリケーションタスクに
のみ関連しています。
ソースデータベースが Oracle の場合、ソースデータ型は「そのままの
状態で」 Oracle ターゲットにレプリケートされます。たとえば、ソー
スにおける XMLTYPE データ型は、ターゲットでは XMLTYPE データ
型として作成されます。
Microsoft SQL Server のターゲットデータ型
次の表に、AWS DMS を使用する場合にサポートされる Microsoft SQL Server のターゲットデータ型
と、AWS DMS のデータ型からのデフォルトマッピングを示します。AWS DMS のデータ型の詳細につい
ては、「AWS Database Migration Service のデータ型 (p. 151)」を参照してください。
API Version API バージョン 2016-01-01
144
AWS Database Migration Service ユーザーガイド
SQL Server のターゲットデータ型
AWS DMS のデータ型
SQL Server のデータ型
BOOLEAN
TINYINT
BYTES
VARBINARY(長さ)
DATE
SQL Server 2008 以降の場合、DATE を使用します。
それより前のバージョンでは、スケールが 3 以下の場合は DATETIME
を使用します。他のすべての場合は、VARCHAR (37) を使用します。
TIME
SQL Server 2008 以降の場合、DATETIME2 (%d) を使用します。
それより前のバージョンでは、スケールが 3 以下の場合は DATETIME
を使用します。他のすべての場合は、VARCHAR (37) を使用します。
DATETIME
SQL Server 2008 以降では、DATETIME2 (scale) を使用します。
それより前のバージョンでは、スケールが 3 以下の場合は DATETIME
を使用します。他のすべての場合は、VARCHAR (37) を使用します。
INT1
SMALLINT
INT2
SMALLINT
INT4
INT
INT8
BIGINT
NUMERIC
NUMBER (p,s)
REAL4
REAL
REAL8
FLOAT
STRING
列が日付または時刻列の場合、次の操作を行います。
• SQL Server 2008 以降の場合、DATETIME2 を使用します。
• それより前のバージョンでは、スケールが 3 以下の場合は
DATETIME を使用します。他のすべての場合は、VARCHAR (37) を
使用します。
列が日付または時刻列ではない場合、VARCHAR (長さ) を使用します。
UINT1
TINYINT
UINT2
SMALLINT
UINT4
INT
UINT8
BIGINT
WSTRING
NVARCHAR (長さ)
BLOB
VARBINARY(最大)
IMAGE
AWS DMS でこのデータ型を使用するには、特定のタスク用に BLOB の
使用を有効にする必要があります。AWS DMS は、プライマリキーを含
むテーブルでのみ BLOB データ型をサポートします。
API Version API バージョン 2016-01-01
145
AWS Database Migration Service ユーザーガイド
PostgreSQL のターゲットデータ型
AWS DMS のデータ型
SQL Server のデータ型
CLOB
VARCHAR(max)
AWS DMS でこのデータ型を使用するには、特定のタスク用に CLOB の
使用を有効にする必要があります。CDC 中、AWS DMS はプライマリ
キーを含むテーブルでのみ CLOB データ型をサポートします。
NCLOB
NVARCHAR(最大)
AWS DMS でこのデータ型を使用するには、特定のタスク用に NCLOB
の使用を有効にする必要があります。CDC 中、AWS DMS はプライマ
リキーを含むテーブルでのみ NCLOB データ型をサポートします。
PostgreSQL のターゲットデータ型
AWS DMS の PostgreSQL データベースエンドポイントでは、PostgreSQL データベースのほとんどの
データ型がサポートされています。次の表に、AWS DMS を使用する場合にサポートされる PostgreSQL
データベースのターゲットスデータ型と、AWS DMS のデータ型からのデフォルトマッピングを示しま
す。サポートされていないデータ型は、表の後にリストされています。
AWS DMS のデータ型の詳細については、「AWS Database Migration Service のデータ型 (p. 151)」を
参照してください。
AWS DMS のデータ型
PostgreSQL のデータ型
BOOL
BOOL
BYTES
BYTEA
DATE
DATE
TIME
TIME
TIMESTAMP
スケールが 0 ~ 6 の場合、TIMESTAMP を使用します。
スケールが 7 ~ 9 の場合、VARCHAR (37) を使用します。
INT1
SMALLINT
INT2
SMALLINT
INT4
INTEGER
INT8
BIGINT
NUMERIC
DECIMAL (P,S)
REAL4
FLOAT4
REAL8
FLOAT8
STRING
長さが 1 ~ 21,845 の場合、VARCHAR (バイト単位の長さ) を使用しま
す。
長さが 21,846 ~ 2,147,483,647 の場合、VARCHAR (65535) を使用し
ます。
UINT1
SMALLINT
API Version API バージョン 2016-01-01
146
AWS Database Migration Service ユーザーガイド
MySQL のターゲットデータ型
AWS DMS のデータ型
PostgreSQL のデータ型
UINT2
INTEGER
UINT4
BIGINT
UINT8
BIGINT
WSTRING
長さが 1 ~ 21,845 の場合、VARCHAR (バイト単位の長さ) を使用しま
す。
長さが 21,846 ~ 2,147,483,647 の場合、VARCHAR (65535) を使用し
ます。
BCLOB
BYTEA
NCLOB
TEXT
CLOB
TEXT
Note
PostgreSQL ソースからレプリケートする場合、AWS DMS はユーザー定義のデータ型を含む列
とは別に、すべての列に対して同じデータ型のターゲットテーブルを作成します。このような場
合、データ型はターゲットで「character varying」として作成されます。
MySQL のターゲットデータ型
次の表に、AWS DMS を使用する場合にサポートされる MySQL データベースのターゲットデータ型
と、AWS DMS のデータ型からのデフォルトマッピングを示します。
AWS DMS のデータ型の詳細については、「AWS Database Migration Service のデータ型 (p. 151)」を
参照してください。
AWS DMS のデータ型
MySQL のデータ型
BOOLEAN
BOOLEAN
BYTES
長さが 1 ~ 65,535 の場合、VARBINARY (長さ) を
使用します。
長さが 65,536 ~ 2,147,483,647 の場
合、LONGLOB を使用します。
DATE
DATE
TIME
TIME
TIMESTAMP
"スケールが 0 以上 <6 以下の場合: DATETIME
(Scale)
スケールが 7 以上 <9 以下の場合: VARCHAR (37)"
INT1
TINYINT
INT2
SMALLINT
INT4
INTEGER
INT8
BIGINT
API Version API バージョン 2016-01-01
147
AWS Database Migration Service ユーザーガイド
SAP ASE のターゲットデータ型
AWS DMS のデータ型
MySQL のデータ型
NUMERIC
DECIMAL (p,s)
REAL4
FLOAT
REAL8
DOUBLE PRECISION
STRING
長さが 1 ~ 21,845 の場合、VARCHAR (長さ) を使
用します。
長さが 21,846 ~ 2,147,483,647 の場
合、LONGTEXT を使用します。
UINT1
UNSIGNED TINYINT
UINT2
UNSIGNED SMALLINT
UINT4
UNSIGNED INTEGER
UINT8
UNSIGNED BIGINT
WSTRING
長さが 1 ~ 32,767 の場合、VARCHAR (長さ) を使
用します。
長さが 32,768 ~ 2,147,483,647 の場
合、LONGTEXT を使用します。
BLOB
長さが 1 ~ 65,535 の場合、BLOB を使用します。
長さが 65,536 ~ 2,147,483,647 の場
合、LONGBLOB を使用します。
長さが 0 の場合、LONGBLOB (LOB を完全にサ
ポート) を使用します。
NCLOB
長さが 1 ~ 65,535 の場合、TEXT を使用します。
長さが 65,536 ~ 2,147,483,647 の場
合、CHARACTER SET が ucs2 の LONGTEXT を
使用します。
長さが 0 の場合、ucs2 が CHARACTER SET の
LONGTEXT (LOB を完全にサポート) を使用しま
す。
CLOB
長さが 1 ~ 65,535 の場合、TEXT を使用します。
長さが 65536 ~ 2147483647 の場合、LONGTEXT
を使用します。
長さが 0 の場合、LONGTEXT (LOB を完全にサ
ポート) を使用します。
SAP ASE のターゲットデータ型
次の表に、AWS DMS を使用する場合にサポートされる SAP ASE データベースのターゲットデータ型
と、AWS DMS のデータ型からのデフォルトマッピングを示します。
API Version API バージョン 2016-01-01
148
AWS Database Migration Service ユーザーガイド
Amazon Redshift のデータ型
AWS DMS のデータ型の詳細については、「AWS Database Migration Service のデータ型 (p. 151)」を
参照してください。
AWS DMS のデータ型
SAP ASE のデータ型
BOOLEAN
BIT
BYTES
VARBINARY (長さ)
DATE
DATE
TIME
TIME
TIMESTAMP
スケールが 0 以上 <6 以下の場合: BIGDATETIME
スケールが 7 以上 <9 以下の場合: VARCHAR (37)
INT1
TINYINT
INT2
SMALLINT
INT4
INTEGER
INT8
BIGINT
NUMERIC
NUMERIC (p,s)
REAL4
REAL
REAL8
DOUBLE PRECISION
STRING
VARCHAR (長さ)
UINT1
TINYINT
UINT2
UNSIGNED SMALLINT
UINT4
UNSIGNED INTEGER
UINT8
UNSIGNED BIGINT
WSTRING
VARCHAR (長さ)
BLOB
IMAGE
CLOB
UNITEXT
NCLOB
TEXT
AWS DMS は、以下のデータ型のフィールドを含むテーブルをサポートしません。これらのデータ型のレ
プリケートされた列は NULL として表示されます。
• ユーザー定義の型 (UDT)
Amazon Redshift のデータ型
Amazon RDS 移行ツールの Amazon Redshift エンドポイントでは、Amazon Redshift のほとんどのデータ
型がサポートされます。次の表に、AWS DMS を使用する場合にサポートされる Amazon Redshift データ
ベースのターゲットデータ型と、AWS DMS のデータ型からのデフォルトマッピングを示します。
API Version API バージョン 2016-01-01
149
AWS Database Migration Service ユーザーガイド
Amazon Redshift のデータ型
AWS DMS のデータ型の詳細については、「AWS Database Migration Service のデータ型 (p. 151)」を
参照してください。
AWS DMS のデータ型
Amazon Redshift のデータ型
BOOLEAN
BOOL
BYTES
VARCHAR (長さ)
DATE
DATE
TIME
VARCHAR(20)
DATETIME
スケールが 0 以上< 6 以下の場合
TIMESTAMP (s)
スケールが 7 以上 <9 以下の場合
VARCHAR(37)
INT1
INT2
INT2
INT2
INT4
INT4
INT8
INT8
NUMERIC
スケールが 0 以上 <37 以下の場合
NUMERIC (p,s)
スケールが 38 以上 <127 以下の場合
VARCHAR (長さ)
REAL4
FLOAT4
REAL8
FLOAT8
STRING
長さが 1 以上 <65535 以下の場合
VARCHAR (バイト単位の長さ)
長さが 65536 以上 <2147483647 以下の場合
VARCHAR(65535)
UINT1
INT2
UINT2
INT2
UINT4
INT4
UINT8
NUMERIC (20,0)
API Version API バージョン 2016-01-01
150
AWS Database Migration Service ユーザーガイド
AWS DMS のデータ型
AWS DMS のデータ型
Amazon Redshift のデータ型
WSTRING
長さが 1 以上 < 65535 以下の場合
NVARCHAR (バイト単位の長さ)
長さが 65536 以上 <2147483647 以下の場合
NVARCHAR (65535)
BLOB
VARCHAR (最大 LOB サイズ *2)
注: 最大 LOB サイズが 31 KB を超えることはでき
ません。
NCLOB
NVARCHAR (最大 LOB サイズ)
注: 最大 LOB サイズが 63 KB を超えることはでき
ません。
CLOB
VARCHAR (最大 LOB サイズ)
注: 最大 LOB サイズが 63 KB を超えることはでき
ません。
AWS Database Migration Service のデータ型
AWS Database Migration Service は、組み込みのデータ型を使用してデータベース間でデータを移行しま
す。次の表に、組み込みのデータ型とその説明を示します。
AWS DMS のデータ型
説明
STRING
文字列。
WSTRING
ダブルバイト文字列。
BOOLEAN
ブール値。
BYTES
バイナリデータ値。
DATE
日付値: 年、月、日。
TIME
時刻値: 時、分、秒。
DATETIME
タイムスタンプ値: 年、月、日、時間、分、秒、小
数点以下の秒。小数点以下の秒のスケールは最大 9
桁です。
INT1
1 バイト、符号付き整数。
INT2
2 バイト、符号付き整数。
INT4
4 バイト、符号付き整数。
INT8
8 バイト、符号付き整数。
NUMERIC
固定精度およびスケールの正確な数値。
REAL4
単精度浮動小数点値。
API Version API バージョン 2016-01-01
151
AWS Database Migration Service ユーザーガイド
追加の接続属性
AWS DMS のデータ型
説明
REAL8
倍精度浮動小数点値。
UINT1
1 バイト、符号なし整数。
UINT2
2 バイト、符号なし整数。
UINT4
4 バイト、符号なし整数。
UINT8
8 バイト、符号なし整数。
BLOB
バイナリラージオブジェクト。このデータ型
は、Oracle エンドポイントでのみ使用できます。
CLOB
文字ラージオブジェクト。
NCLOB
ネイティブ文字ラージオブジェクト。
AWS Database Migration Service での追加の接続属
性の使用
AWS Database Migration Service のエンドポイントを作成するときは、追加の接続属性を指定できます。
次のデータベースエンジン固有のセクションに、考えらえる設定を示します。
MySQL
ロール
名前
説明
送信元
eventsPollInterval
データベースがアイドル状態のとき、バイナリロ
グで新しい変更/イベントをチェックする頻度を指
定します。
デフォルト値: 5
有効な値: 1 ~ 60
例: eventsPollInterval=5
initstmt=SET time-zone
ソース MySQL データベースのタイムゾーンを指
定します。
デフォルト値: UTC
有効な値: 使用するタイムゾーンの 3 ~ 4 文字の省
略形。有効な値は、ソース MySQL データベース
をホストしているオペレーティングシステムにお
けるタイムゾーンの標準の省略形です。
例: initstmt=SET time_zone=UTC
ターゲット
targetDbType
ソーステーブルを移行するターゲット上の場所 (1
つのデータベースか複数のデータベースか) を指定
します。
デフォルト値: MULTIPLE_DATABASES
API Version API バージョン 2016-01-01
152
AWS Database Migration Service ユーザーガイド
PostgreSQL
ロール
名前
説明
有効な値: {SPECIFIC_DATABASE,
MULTIPLE_DATABASES}
例: targetDbType=MULTIPLE_DATABASES
parallelLoadThreads
データを MySQLターゲットデータベースにロード
する際のパフォーマンスが向上します。データを
MySQL ターゲットデータベースにロードする際に
使用するスレッドの数を指定します。スレッドご
とに別個の接続が必要になるため、スレッド数を
大きく設定するとデータベースのパフォーマンス
に悪影響を生じる場合があります。
デフォルト値: 2
有効な値: 1 ~ 5
例: parallelLoadThreads=1
initstmt=SET
FOREIGN_KEY_CHECKS=0
initstmt=SET time-zone
外部キーチェックを無効にします。
ターゲット MySQL データベースのタイムゾーン
を指定します。
デフォルト値: UTC
有効な値: 使用するタイムゾーンの 3 ~ 4 文字の
省略形。有効な値は、ターゲット MySQL データ
ベースをホストしているオペレーティングシステ
ムにおけるタイムゾーンの標準の省略形です。
例: initstmt=SET time_zone=UTC
PostgreSQL
ロール
名前
説明
送信元
captureDDLs
DDL イベントをキャプチャするため、タスクの
開始時に AWS DMS によりさまざまなアーティ
ファクトが PostgreSQL データベースに作成され
ます。「PostgreSQL ソースデータベースからの
AWS Database Migration Service アーティファク
トの削除 (p. 70)」で説明するように、これらの
アーティファクトは後で削除できます。
ストリーミングされた DDL イベントがキャプチャ
されます。
デフォルト値: Y
有効な値: Y/N
例: captureDDLs=Y
API Version API バージョン 2016-01-01
153
AWS Database Migration Service ユーザーガイド
Oracle
ロール
名前
説明
ddlArtifactsSchema
運用中の DDL データベースアーティファクトが作
成されるスキーマ。
デフォルト値: public
有効な値: 文字列
例: ddlArtifactsSchema=xyzddlschema
Oracle
ロール
名前
説明
送信元
addSupplementalLogging
Oracle データベースに自動的にサプリメンタルロ
ギングをセットアップするには、この属性を設定
します。
デフォルト値: N
有効な値: Y/N
例: addSupplementalLogging=Y
Note
このオプションを使用する場合でも、次
のステートメントを使用してデータベー
スレベルサプリメンタルロギングを有効
にする必要があります。
ALTER DATABASE ADD SUPPLEMENTAL LOG
DATA
useLogminerReader
LogMiner ユーティリティを使用して変更データを
キャプチャするには、この属性を Y に設定します
(デフォルト)。AWS DMS がバイナリファイルとし
て REDO ログにアクセスするようにする場合は、
このオプションを N に設定します。N に設定する
と、useBfile=Y という設定も追加する必要があり
ます。詳細については、「変更データキャプチャ
(CDC) での Oracle LogMiner または Oracle Binary
Reader の使用 (p. 54)」を参照してください。
デフォルト値: Y
有効な値: Y/N
例: useLogminerReader=N; useBfile=Y
API Version API バージョン 2016-01-01
154
AWS Database Migration Service ユーザーガイド
Oracle
ロール
名前
説明
retryInterval
システムがクエリを再送するまで待機する時間の
秒数を指定します。
デフォルト値: 5
有効な値: 1 以降の数値
例: retryInterval=6
archivedLogDestId
アーカイブされた REDO ログの宛先を指定しま
す。値は、$archived_log テーブル内の DEST_ID
値と同じにする必要があります。ログの宛先を
(DEST_ID) を複数使用する場合、アーカイブされ
た REDO ログの場所の識別子を使用することをお
勧めします。これにより、最初から適切なログに
アクセスされるようになるため、パフォーマンス
が向上します。
デフォルト値: 0
有効な値: 数値
例: archivedLogDestId=1
archivedLogsOnly
このフィールドが Y に設定されている場合、AWS
DMS はアーカイブされた REDO ログにのみア
クセスします。アーカイブされた REDO ログが
ASM のみに保存されている場合、AWS DMS ユー
ザーに ASM 権限を付与する必要があります。
デフォルト値: N
有効な値: Y/N
例: archivedLogDestId=Y
numberDataTypeScale
Number スケールを指定します。最大 38 のスケー
ルを選択するか、FLOAT を選択できます。デフォ
ルトでは、NUMBER データ型が精度 38、スケー
ル 10 に変換されます。
デフォルト値: 10
有効な値: -1 ~ 38 (FLOAT の場合は -1)
例: numberDataTypeScale =12
ターゲット
useDirectPathFullLoad
直接パスの全ロードを使用し、これを指定して
Oracle テーブルを一括ロードするための OCI 直接
パスプロトコルを有効/無効にします。
デフォルト値: Y
有効な値: Y/N
例: useDirectPathFullLoad=N
API Version API バージョン 2016-01-01
155
AWS Database Migration Service ユーザーガイド
SQL Server
ロール
名前
説明
charLengthSemantics
列の長さのセマンティクスは、列の長さがバイト
単位であるか文字数単位であるかを指定します。
この値は CHAR に設定します。
例: charLengthSemantics=CHAR
SQL Server
ロール
名前
説明
送信元
safeguardPolicy
パフォーマンスを最大限に高めるため、AWS DMS
は未読み取りのすべての変更をアクティブなトラ
ンザクションログ (TLOG) からキャプチャしよう
とします。ただし、場合によっては切り捨てが行
われるため、アクティブな TLOG に未読みトロイ
の変更すべてが含まれていないことがあります。
この場合、AWS DMS はバックアップログにア
クセスして、消失した変更をキャプチャします。
バックアップログにアクセスする必要性を最小限
に抑えるため、AWS DMS は次のいずれかの方法
を使用して切り捨てを防止します。
1. Start transactions in the database: これがデフォ
ルトの方法です。この方法を使用する場合、AWS
DMS はデータベースでトランザクションを模倣す
ることで、TLOG の切り捨てを防ぎます。そのよ
うなトランザクションが開かれている限り、その
トランザクションが開始されてから生じる変更は
切り捨てされません。データベースで Microsoft レ
プリケーションを有効にする場合、この方法を選
択する必要があります。
2. Exclusively use sp_repldone within a single task:
この方法を使用すると、AWS DMS が変更を読み
取った後、sp_repldone を使用して TLOG トラン
ザクションを切り捨て準備完了とマークします。
この方法にはトランザクションアクティビティが
伴いませんが、Microsoft レプリケーションが実
行されていないときのみ使用できます。さらに、
この方法を使用すると、一度に 1 つの AWS DMS
タスクのみデータベースにアクセスできます。し
たがって、同じデータベースに対して並行 AWS
DMS タスクを実行する必要がある場合は、デフォ
ルトの方法を使用してください。
デフォルト値:
RELY_ON_SQL_SERVER_REPLICATION_AGENT
有効な値: {EXCLUSIVE_AUTOMATIC_TRUNCATION,
RELY_ON_SQL_SERVER_REPLICATION_AGENT}
例: safeguardPolicy=
RELY_ON_SQL_SERVER_REPLICATION_AGENT
API Version API バージョン 2016-01-01
156
AWS Database Migration Service ユーザーガイド
SQL Server
ロール
名前
説明
ターゲット
useBCPFullLoad
BCP を使用して全ロードオペレーション用のデー
タを転送するには、この属性を使用します。 ター
ゲットテーブルに、ソーステーブル内に存在しな
い IDENTITY 列が含まれている場合、[use BCP for
loading table] オプションを無効にする必要があり
ます。
デフォルト値: Y
有効な値: Y/N
例: useBCPFullLoad=Y
BCPPacketSize
BCP を使用したデータの転送に使用されるパケッ
トの最大サイズ (バイト単位)。
デフォルト値: 16384
有効な値: 1 ~ 100000
例: BCPPacketSize=16384
controlTablesFileGroup
AWS DMS 内部テーブルのファイルグ
ループを指定します。レプリケーショ
ンタスクが開始されると、すべての内
部 AWS DMS 制御テーブル (awsdms_
apply_exception、awsdms_apply、awsdms_changes)
が、指定したファイルグループで作成されます。
デフォルト値: 該当なし
有効な値: 文字列
例: controlTablesFileGroup=filegroup1 ファイルグループを作成するコマンドの例を次に
示します。
ALTER DATABASE replicate ADD FILEGROUP
Test1FG1;
GO ALTER DATABASE replicate
ADD FILE (
NAME = test1dat5,
FILENAME = 'C:\temp\DATA\t1dat5.ndf',
SIZE = 5MB,
MAXSIZE = 100MB,
FILEGROWTH = 5MB
)
TO FILEGROUP Test1FG1;
GO
API Version API バージョン 2016-01-01
157
AWS Database Migration Service ユーザーガイド
Amazon Redshift
Amazon Redshift
ロール
名前
説明
ターゲット
maxFileSize
Amazon Redshift へのデータ転送に使用される
CSV ファイルの最大サイズ (KB 単位) を指定しま
す。
デフォルト値: 1024
有効な値: 1 ~ 1048576
例: maxFileSize=512
fileTransferUploadStreams
1 つのファイルをアップロードするのに使用される
スレッドの数を指定します。
デフォルト値: 10
有効な値: 1 ~ 64
例: fileTransferUploadStreams=20
SAP Adaptive Server Enterprise (ASE)
ロール
名前
説明
ターゲット
enableReplication
SAP ASE レプリケーションを自動的に有効にする
には、Y に設定します。これは、SAP ASE レプリ
ケーションがまだ有効になっていない場合にのみ
必要です。
additionalConnectionProperties 指定する追加の ODBC 接続パラメーター。
Note
接続文字列で指定されたユーザー名やパスワードに非ラテン文字 (中国語など) が含まれている場
合、次のプロパティが必要です。charset=gb18030
AWS Database Migration Service での ClassicLink
の使用
プロキシサーバーと組み合わせて ClassicLink を使用すると、VPC 内にない Amazon RDS DB インスタン
スを、VPC 内にある AWS DMS レプリケーションサーバーおよび DB インスタンスに接続できます。
次の手順は、ClassicLink を使用して、VPC 内にない Amazon RDS ソース DB インスタンスを、AWS
DMS レプリケーションインタンスとターゲット DB インスタンスを含む VPC に接続する方法を示してい
ます。
• VPC で AWS DMS レプリケーションインスタンスを作成します (すべてのレプリケーションインスタン
スが VPC 内で作成されます)。
API Version API バージョン 2016-01-01
158
AWS Database Migration Service ユーザーガイド
VPC 内にない DB インスタンス
から VPC に ClassicLink を使用
• VPC セキュリティグループをレプリケーションインスタンスとターゲット DB インスタンスに関連付け
ます。2 つのインスタンスが VPC セキュリティグループを共有している場合、デフォルトで相互に通信
できます。
• EC2 Classic インスタンスでプロキシサーバーをセットアップします。
• プロキシサーバーと VPC の間に ClassicLink を使用した接続を作成します。
• ソースおよびターゲットデータベースの AWS DMS エンドポイントを作成します。
• AWS DMS タスクを作成します。
ClassicLink を使用して VPC 内にない DB インスタンス上のデータベースを VPC 内の DB インス
タンス上の VPC に移行するには
1.
ステップ1: AWS DMS レプリケーションインスタンスを作成します。
AWS DMS レプリケーションインスタンスを作成し、VPC セキュリティグループを割り当て
るには
2.
1.
AWS マネジメントコンソールにサインインし、AWS Database Migration Service を選択しま
す。AWS Identity and Access Management (IAM) ユーザーとしてサインインしている場合、AWS
DMS にアクセスするための適切なアクセス許可が必要である点に注意してください。データベー
ス移行に必要なアクセス許可の詳細については、「AWS DMS を使用するのに必要な IAM アクセ
ス許可 (p. 36)」を参照してください。
2.
[Dashboard] ページで、[Replication Instance] を選択します。「ステップ 2: レプリケーションの
インスタンスを作成する (p. 24)」の手順に従って、レプリケーションインスタンスを作成しま
す。
3.
AWS DMS レプリケーションインスタンスを作成したら、EC2 サービスコンソールを開きます。
ナビゲーションペインで [Network Interfaces] を選択します。
4.
[DMSNetworkInterface] を選択し、[Actions] メニューから [Change Security Groups] を選択しま
す。
5.
レプリケーションインスタンスとターゲット DB インスタンスに使用するセキュリティグループ
を選択します。
ステップ2: 前のステップのセキュリティグループをターゲット DB インスタンスに関連付けます。
セキュリティグループを DB インスタンスと関連付けるには
3.
1.
Amazon RDS サービスコンソールを開きます。ナビゲーションペインで [Instances] を選択しま
す。
2.
ターゲット DB インスタンスを選択します。[Instance Actions] で [Modify] を選択します。
3.
[Security Group] パラメーターの場合、前のステップで使用されたセキュリティグループを選択し
ます。
4.
[Continue] を選択してから、[Modify DB Instance] を選択します。
ステップ 3: NGINX を使用して EC2 Classic インスタンスでプロキシサーバーを設定します。EC2
Classic インスタンスを起動するには、選択した AMI を使用します。以下の例は、AMI Ubuntu Server
14.04 LTS (HVM) をベースとしています。
EC2 Classic インスタンスでプロキシサーバーをセットアップするには
1.
EC2 Classic インスタンスに接続し、次のコマンドを使用して NGINX をインストールします。
Prompt>
Prompt>
Prompt>
Prompt>
Prompt>
sudo apt-get update
sudo wget http://nginx.org/download/nginx-1.9.12.tar.gz
sudo tar -xvzf nginx-1.9.12.tar.gz
cd nginx-1.9.12
sudo apt-get install build-essential
API Version API バージョン 2016-01-01
159
AWS Database Migration Service ユーザーガイド
VPC 内にない DB インスタンス
から VPC に ClassicLink を使用
Prompt>
Prompt>
Prompt>
Prompt>
Prompt>
2.
sudo
sudo
sudo
sudo
sudo
apt-get install libpcre3 libpcre3-dev
apt-get install zlib1g-dev
./configure --with-stream
make
make install
次のコードを使用して、NGINX デーモンファイル /etc/init/nginx.conf を編集します。
# /etc/init/nginx.conf – Upstart file
description "nginx http daemon"
author “email"
start on (filesystem and net-device-up IFACE=lo)
stop on runlevel [!2345]
env DAEMON=/usr/local/nginx/sbin/nginx
env PID=/usr/local/nginx/logs/nginx.pid
expect fork
respawn
respawn limit 10 5
pre-start script
$DAEMON -t
if [ $? -ne 0 ]
then exit $?
fi
end script
exec $DAEMON
3.
/usr/local/nginx/conf/nginx.conf に NGINX 構成ファイルを作成します。設定ファイルに、以下の
内容を追加します。
# /usr/local/nginx/conf/nginx.conf - NGINX configuration file
worker_processes
1;
events {
worker_connections
}
1024;
stream {
server {
listen <DB instance port number>;
proxy_pass <DB instance identifier>:<DB instance port number>;
}
}
4.
コマンドラインから、次のコマンドを使用して NGINX を起動します。
Prompt> sudo initctl reload-configuration
Prompt> sudo initctl list | grep nginx
Prompt> sudo initctl start nginx
API Version API バージョン 2016-01-01
160
AWS Database Migration Service ユーザーガイド
VPC 内にない DB インスタンス
から VPC に ClassicLink を使用
4.
ステップ 4: プロキシサーバーと、ターゲット DB インスタンスおよびレプリケーションインスタンス
を含むターゲット VPC の間に ClassicLink 接続を作成します。
プロキシサーバーとターゲット VPC を接続するには ClassicLink を使用します。
1.
EC2 コンソールを開き、プロキシサーバーを実行している EC2 Classic インスタンスを選択しま
す。
2.
[Actions] で [ClassicLink] を選択し、[Link to VPC] を選択します。
3.
4.
この手順で先に使用したセキュリティグループを選択します。
[Link to VPC] を選択します。
5.
ステップ 5: 「ステップ 3: データベースエンドポイントを指定 (p. 26)」の手順を使用して AWS DMS
エンドポイントを作成します。ソースエンドポイントを指定する場合、サーバー名として内部 EC2
DNS ホスト名を使用する必要があります。
6.
ステップ 6: 「ステップ 4: タスクを作成する (p. 27)」の手順を使用して AWS DMS タスクを作成しま
す。
API Version API バージョン 2016-01-01
161
AWS Database Migration Service ユーザーガイド
ドキュメント履歴
以下の表に、AWS Database Migration Service の前回のリリース以後に行われた、ドキュメントの重要な
変更を示します。
• API バージョン: 20160101
• 最新のドキュメンテーションの更新: 2016 年 1 月 26 日
変更
説明
変更日
新機能
イベントとイベントサブスクリプションのサポートを
追加しました。詳細については、「イベントと通知の使
用 (p. 113)」を参照してください。
2016 年 1 月 26 日
新機能
Oracle SSL エンドポイントのサポートを追加しました。
詳細については、「Oracle エンドポイントでの SSL のサ
ポート (p. 46)」を参照してください。
2016 年 5 月 12 日
新機能
Amazon RDS PostgreSQL DB インスタンスでの変更
データキャプチャ (CDC) の使用のサポートを追加しま
した。詳細については、「ソースとしての Amazon RDS
PostgreSQL DB インスタンスの設定 (p. 68)」を参照して
ください。
2016 年 9 月 14 日
新しいリージョンの
サポート
アジアパシフィック (ムンバイ)、アジアパシフィック (ソ
ウル)、および南米 (サンパウロ) リージョンのサポート
を追加しました。サポートされているリージョンのリス
トについては、「AWS Database Migration Service と
は (p. 1)」を参照してください。
2016 年 8 月 3 日
新機能
継続的なレプリケーションのサポートを追加しました。詳
細については、「継続的なレプリケーション (p. 34)」を参
照してください。
2016 年 7 月 13 日
新機能
SSL を使用するセキュアな接続のサポートを追加しまし
た。詳細については、「AWS Database Migration Service
での SSL の使用 (p. 43)」を参照してください。
2016 年 7 月 13 日
API Version API バージョン 2016-01-01
162
AWS Database Migration Service ユーザーガイド
変更
説明
変更日
新機能
ソースまたはターゲットエンドポイントとして SAP
Adaptive Server Enterprise (ASE) のサポートを追加し
ました。詳細については、「SAP ASE データベース
の AWS Database Migration Service のソースとしての
使用 (p. 74)」および「SAP ASE データベースの AWS
Database Migration Service のターゲットとしての使
用 (p. 85)」を参照してください。
2016 年 7 月 13 日
新機能
ソースデータベースからターゲットデータベースに行のサ
ブセットを移動するためのフィルタのサポートを追加しま
した。詳細については、「選択ルールでのソースフィルタ
の使用 (p. 105)」を参照してください。
2016 年 5 月 2 日
新機能
ターゲットエンドポイントとして Amazon Redshift の
サポートを追加しました。詳細については、「AWS
Database Migration Service のターゲットとしての
Amazon Redshift データベースの使用 (p. 82)」を参照して
ください。
2016 年 5 月 2 日
一般提供
AWS Database Migration Service の初回リリース。
2016 年 3 月 14 日
公開プレビューリ
リース
AWS Database Migration Service のプレビュードキュメン
トをリリースしました。
2016 年 1 月 21 日
API Version API バージョン 2016-01-01
163