翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
モニタリングは、 および AWS ソリューションの信頼性、可用性、パフォーマンスを維持する上で重要な部分 AWS DMS です。マルチポイント障害が発生した場合は、その障害をより簡単にデバッグできるように、 AWS ソリューションのすべての部分からモニタリングデータを収集する必要があります。 には、 AWS DMS タスクとリソースをモニタリングし、潜在的なインシデントに対応するための複数のツール AWS が用意されています。
- AWS DMS イベントと通知
-
AWS DMS は Amazon Simple Notification Service (Amazon SNS) を使用して、レプリケーションインスタンスの作成や削除など、 AWS DMS イベントが発生したときに通知を提供します。 は、イベントをサブスクライブできるカテゴリに AWS DMS グループ化するため、そのカテゴリのイベントが発生したときに通知を受け取ることができます。たとえば、特定のレプリケーション インスタンスの作成カテゴリにサブスクライブした場合は、レプリケーション インスタンスに影響を与える作成関連のイベントが発生するたびに通知を受け取ります。これらの通知は、E メールメッセージ、テキストメッセージ、HTTP エンドポイントへの呼び出しなど、 AWS リージョンの Amazon SNS でサポートされている任意の形式で操作できます。詳細については、「AWS Database Migration Serviceでの Amazon SNS イベントと通知の使用」を参照してください
- タスクのステータス
-
タスクのステータスを確認し、タスクの統制テーブルをモニタリングすることで、タスクの進行状況を監視できます。タスクステータスは、 AWS DMS タスクおよび関連するリソースの状態を示します。これによって、作成、開始、実行、停止など、タスクの現在の状態がわかります。また、テーブルの全読み込みが開始または進行中など、タスクが移行中のテーブルの現在の状態や、テーブルで挿入、削除、更新が発生した数などの詳細も含まれます。タスクおよびタスクリソースの条件モニタリングについては、「タスクのステータス」と「タスク実行中のテーブルの状態」をご参照ください。統制テーブルの詳細については、「制御テーブルタスク設定」をご参照ください。
- Amazon CloudWatch アラームとログ
-
Amazon CloudWatch アラームを使用すると、指定した期間について 1 つ以上のタスク メトリクスを監視できます。メトリクスが特定のしきい値を超すと、Amazon SNS トピックに通知が送信されます。CloudWatch アラームは、特定の状態にあるという理由ではアクションを呼び出しません。むしろ、状態が変更され、指定された期間にわたって維持されている必要があります。 AWS DMS また、 は移行プロセス中に CloudWatch を使用してタスク情報をログに記録します。または AWS DMS API を使用して AWS CLI 、タスクログに関する情報を表示できます。での CloudWatch の使用の詳細については AWS DMS、「」を参照してくださいAmazon CloudWatch を使用したレプリケーション モニタリングタスク。 AWS DMS メトリクスのモニタリングの詳細については、「」を参照してくださいAWS Database Migration Service メトリクス。 AWS DMS タスクログの使用の詳細については、「」を参照してくださいDMS AWS タスクログの表示と管理。
- Time Travel ログ
-
レプリケーションタスクをログ記録およびデバッグするには、 AWS DMS Time Travel を使用できます。この方法の場合、Amazon S3 を使用してログを保存し、暗号化キーを使用して暗号化します。日時フィルターを使用して S3 ログを取得し、必要に応じてログを表示、ダウンロード、難読化できます。これにより、「時間を遡って」データベースのアクティビティを調査できます。
Time Travel は、DMS がサポートする PostgreSQL ソースエンドポイントと、DMS がサポートする PostgreSQL と MySQL のターゲットエンドポイントで使用できます。Time Travel は、フルロードタスクと CDC タスクと、CDC のみのタスクでのみ有効にできます。Time Travel を有効にしたり、既存の Time Travel 設定を変更するには、タスクが停止していることを確認する必要があります。
Time Travel ログの詳細については「Time Travel タスクの設定」を参照してください。Time Travel ログの使用のベスト プラクティスについては、「Time Travel を使用したレプリケーションタスクのトラブルシューティング」を参照してください。
- AWS CloudTrail ログ
-
AWS DMS は、ユーザー AWS CloudTrail、IAM ロール、または のサービスによって実行されたアクションを記録する AWS サービスである と統合されています AWS DMS。CloudTrail は、コンソールからの呼び出しや API オペレーションへのコード呼び出しを含む、 のすべての AWS DMS API コールを AWS DMS イベント AWS DMS としてキャプチャします。証跡を作成する場合は、 イベントなど、Amazon S3 バケットへの CloudTrail イベントの継続的な配信を有効にすることができます AWS DMS。証跡を設定しない場合でも、CloudTrail コンソールの [イベント履歴] で最新のイベントを表示できます。CloudTrail によって収集された情報を使用して、リクエストの実行元の IP アドレス AWS DMS、リクエストの実行者、リクエストの実行日時などの詳細を確認できます。詳細については、「を使用した AWS DMS API コールのログ記録 AWS CloudTrail」を参照してください。
- データベースログ
-
、、またはデータベースサービスの API を使用して、タスクエンドポイントの AWS データベースログを表示 AWS Management Console、ダウンロード AWS CLI、監視できます。詳細については、AWS ドキュメントのデータベースサービス用ドキュメントをご参照ください。
詳細については、以下のトピックをご参照ください。
トピック
タスクのステータス
タスクのステータスはタスクの状態を提供します。以下の表では、タスクがなる得るステータスを示しています。
タスクのステータス | 説明 |
---|---|
[作成中] |
AWS DMS はタスクを作成しています。 |
Running (実行中) |
タスクが指定された移行処理を実行中です。 |
停止 |
タスクが停止されました。 |
停止中 |
タスクが停止中です。これは通常、タスクでのユーザーによる介入を示します。 |
削除 |
タスクが (通常はユーザーによる介入のためリクエストから) 削除中です。 |
失敗 |
タスクが失敗しました。詳細については、タスクのログファイルをご参照ください。 |
[エラー] |
エラーが原因でジョブは停止した。タスクのエラーの簡潔な説明は、[概要] タブの最後のエラーメッセージセクションに記載されている。 |
エラーを伴って実行中 |
タスクがエラーステータスで実行されている。これは通常、タスク内の単一または複数のテーブルを移行できなかったことを示す。タスクは選択ルールに従ってその他のテーブルのロードを続ける。 |
スタート |
タスクがレプリケーション インスタンスに、さらにソースおよびターゲットエンドポイントに接続中です。フィルタと変換を適用中です。 |
準備完了 |
タスクの実行準備ができました。このステータスになるのは通常、「creating」状態の後です。 |
変更 |
タスクが (通常はユーザーによるタスク設定の変更アクションのため) 変更中です。 |
[Moving] (移動) |
タスクは別のレプリケーション インスタンスに移動中です。レプリケーションは移動が完了するまでは、この状態のままになります。タスクの削除は、移動中にレプリケーション タスクで許可されている唯一のオペレーションです。 |
[Failed-move] (失敗した移動) |
ターゲット レプリケーション インスタンスに十分なストレージ領域がないなど、何らかの理由でタスクの移動が失敗しました。レプリケーション タスクがこの状態になると、スタート、変更、移動、または削除できます。 |
テスト |
このタスクに指定されたデータベース移行は、StartReplicationTaskAssessmentRun オペレーションまたは StartReplicationTaskAssessment オペレーションの実行に応じてテストされている。 |
タスクのステータスバーで、タスクの進捗状況を予測できます。この予測の正確さはソースデータベースのテーブル統計の正確さによって異なります。テーブル統計が正確であればあるほど、正確に予測できます。予測された列の統計がないテーブルが 1 つだけのタスクでは、どのような種類であっても完了率の予測を提供できません。この場合、タスクのステータスと、ロードされた列の表示を使って、タスクが実際に実行されて進行していることを確認できます。
DMS コンソールの「最終更新」列はテーブルに対して AWS DMS が最後にテーブル統計レコードを更新した時刻を示すのみであることにご注意ください。これはテーブルの最終更新時間を示すものではありません。
DMS コンソールを使用する以外にも、次の例のとおり、AWS CLI で aws dms
describe-replication-tasks
コマンドを使用して、タスクのステータスを含む現在のレプリケーションタスクの説明の出力を取得できます。
{
"ReplicationTasks": [
{
"ReplicationTaskIdentifier": "moveit2",
"SourceEndpointArn": "arn:aws:dms:us-east-1:123456789012:endpoint:6GGI6YPWWGAYUVLKIB732KEVWA",
"TargetEndpointArn": "arn:aws:dms:us-east-1:123456789012:endpoint:EOM4SFKCZEYHZBFGAGZT3QEC5U",
"ReplicationInstanceArn": "arn:aws:dms:us-east-1:123456789012:rep:T3OM7OUB5NM2LCVZF7JPGJRNUE",
"MigrationType": "full-load",
"TableMappings": ...output omitted... ,
"ReplicationTaskSettings": ...output omitted... ,
"Status": "stopped",
"StopReason": "Stop Reason FULL_LOAD_ONLY_FINISHED",
"ReplicationTaskCreationDate": 1590524772.505,
"ReplicationTaskStartDate": 1590619805.212,
"ReplicationTaskArn": "arn:aws:dms:us-east-1:123456789012:task:K55IUCGBASJS5VHZJIINA45FII",
"ReplicationTaskStats": {
"FullLoadProgressPercent": 100,
"ElapsedTimeMillis": 0,
"TablesLoaded": 0,
"TablesLoading": 0,
"TablesQueued": 0,
"TablesErrored": 0,
"FreshStartDate": 1590619811.528,
"StartDate": 1590619811.528,
"StopDate": 1590619842.068
}
}
]
}
タスク実行中のテーブルの状態
AWS DMS コンソールは、移行中のテーブルの状態に関する情報を更新します。以下の表では、表示される可能性のある状態値を示しています。

状態 | 説明 |
---|---|
テーブルが存在しません |
AWS DMS はソースエンドポイントでテーブルを見つけることができません。 |
ロード前 |
フルロードプロセスが有効になっていますが、まだ開始されていません。 |
Full load |
全ロードプロセスが進行中です。 |
テーブル完了 |
全ロードが完了しました。 |
テーブル取消 |
テーブルのロードがキャンセルされました。 |
テーブルエラー |
テーブルのロード時にエラーが発生しました。 |
Amazon CloudWatch を使用したレプリケーション モニタリングタスク
Amazon CloudWatch のアラームやイベントを使用して移行をより詳細に追跡できます。Amazon CloudWatch の詳細については、[Amazon CloudWatch ユーザーガイド]の「Amazon CloudWatch、Amazon CloudWatch Events、Amazon CloudWatch Logs とは」をご参照ください。Amazon CloudWatch の使用には料金が発生することにご注意ください。
レプリケーションタスクで CloudWatch ログが作成されない場合は、「トラブルシューティングガイド」の「AWS DMS は CloudWatch Logs を作成しません」を参照してください。
AWS DMS コンソールには、次に示すように、タスクのステータス、完了率、経過時間、テーブル統計など、各タスクの基本的な CloudWatch 統計が表示されます。レプリケーションタスクを選択して、[CloudWatch メトリクス] タブをクリックします。
CloudWatchタスクログ設定を確認して変更するには、[タスクログ記録の変更] を選択します。詳細については、「ロギングタスク設定」を参照してください。

AWS DMS コンソールでは、テーブル統計タブを選択すると、挿入数、削除数、更新数など、各テーブルのパフォーマンス統計が表示されます。

さらに、[レプリケーションインスタンス] ページでレプリケーションインスタンスを選択して、[CloudWatch メトリクス] タブをクリックすると、インスタンスのパフォーマンスメトリクスを確認できます。

AWS Database Migration Service メトリクス
AWS DMS は、次の統計を提供します。
[Host Metrics] (ホストメトリクス) – Amazon CloudWatch により提供されるレプリケーション ホストのパフォーマンスおよび使用状況の統計。使用可能なメトリクスの完全なリストについては、「レプリケーションインスタンスのメトリクス」をご参照ください。
[Replication Task Metrics] (レプリケーション タスク メトリクス) – 受信した変更とコミットされた変更、レプリケーション ホストとソースおよびターゲットデータベースの間のレイテンシーなど、レプリケーション タスクの統計。使用可能なメトリクスの完全なリストについては、「レプリケーションタスクのメトリクス」をご参照ください。
[Table Metrics] (テーブルメトリクス) 挿入、更新、削除、完了した DDL ステートメントの数など、移行が進行中のテーブルの統計。
タスクメトリクスは、レプリケーションホストおよびソースエンドポイント間の統計と、レプリケーションホストおよびターゲットエンドポイント間の統計に分けられます。関連する 2 つの統計を一緒に追加することで、タスクの統計の合計を調べることもできます。たとえば、CDCLatencySource 値と CDCLatencyTarget 値を組み合わせることで、タスクの合計レイテンシー (レプリカラグ) を調べることができます。
タスクメトリック値は、ソースデータベースにおける現在のアクティビティの影響を受ける可能性があります。たとえば、トランザクションが開始したが、コミットされていない場合、CDCLatencySource メトリクスはトランザクションがコミットされるまで大きくなり続けます。
レプリケーションインスタンスの場合、FreeableMemory メトリクスには説明が必要です。解放可能なメモリは、実際の使用可能な空きメモリを示しているわけではありません。これは、解放して他の用途に使用できる現在使用中のメモリであり、レプリケーションインスタンスで使用されているバッファとキャッシュの組み合わせです。
FreeableMemory メトリクスに実際の使用可能な空きメモリは反映されませんが、FreeableMemory および SwapUsage メトリクスの組み合わせにより、レプリケーションインスタンスが過負荷になっているかどうかがわかります。
次の状態について、これらの 2 つのメトリクスをモニタリングします。
FreeableMemory メトリクスが 0 に近づいている。
SwapUsage メトリクスが増加または変動する。
これらの 2 つの状態のいずれかが表示された場合は、より大きなレプリケーションインスタンスへの移行を検討する必要があります。また、レプリケーションインスタンスで実行中のタスクの数とタイプを減らすことも検討してください。全ロードタスクは、変更をレプリケートするだけのタスクよりも多くのメモリを必要とします。
AWS DMS 移行タスクの実際のメモリ要件を概算するには、次のパラメータを使用できます。
- LOB 列
移行範囲の各テーブルの LOB 列の平均数
- 並列にロードするテーブルの最大数
が 1 つのタスクで並列に AWS DMS ロードするテーブルの最大数。
デフォルト値は 8 です。
- LOB チャンクのサイズ
がターゲットデータベースにデータをレプリケート AWS DMS するために使用する LOB チャンクのサイズをキロバイト単位で指定します。
- フルロード時のレートの確定
が並行して転送 AWS DMS できるレコードの最大数。
デフォルト値は 10,000 です。
- LOB のサイズ
個々の LOB のキロバイト単位の最大サイズ
- 一括の配列のサイズ
エンドポイントドライバーがフェッチまたは処理する行の最大数。この値は、ドライバーの設定によって異なります。
デフォルト値は 1,000 です。
上記の値を決定したら、次のいずれかの方法を使用して、移行タスクに必要なメモリ量を見積もることができます。これらの方法は、移行タスクの [LOB 列設定] で選択したオプションによって異なります。
-
[完全 LOB モード] の場合は、次の式を使用します。
Required memory = (LOB columns) * (Maximum number of tables to load in parallel) * (LOB chunk size) * (Commit rate during full load)
ソーステーブルに平均 2 つの LOB 列があり、LOB チャンクのサイズが 64 KB である例を想定します。
Maximum number of tables to load in parallel
とCommit rate during full load
のデフォルト値を使用する場合、タスクに必要なメモリの量は、次のとおりです。Required memory = 2 * 8 * 64 * 10,000 = 10,240,000 KB
注記
全ロード中のコミットレートの値を減らすには、 AWS DMS コンソールを開き、データベース移行タスクを選択し、タスクを作成または変更します。[詳細設定] を展開して、[フルロード時のレートの確定] 値を入力します。
-
[制限付き LOB モード] の場合は、次の式を使用します。
Required memory = (LOB columns) * (Maximum number of tables to load in parallel) * (LOB size) * (Bulk array size)
ソーステーブルに平均 2 つの LOB 列があり、個々の LOB の最大サイズが 4,096 KB である例を想定します。
Maximum number of tables to load in parallel
とBulk array size
のデフォルト値を使用する場合、タスクに必要なメモリの量は、次のとおりです。Required memory = 2 * 8 * 4,096 * 1,000 = 65,536,000 KB
AWS DMS が変換を最適に実行するには、変換が発生したときに CPU が使用可能である必要があります。CPU をオーバーロードし、十分な CPU リソースがないと、移行が遅くなる可能性があります。特に Oracle から PostgreSQL への移行などの異種移行やレプリケーションを実行する場合、 は CPU を大量に消費 AWS DMS する可能性があります。C4 レプリケーション インスタンスはこのような状況に適しています。詳細については、「移行に適した DMS AWS レプリケーションインスタンスの選択」を参照してください。
レプリケーションインスタンスのメトリクス
レプリケーションインスタンスのモニタリングには、次の統計に関する Amazon CloudWatch メトリクスがあります。
メトリクス |
説明 |
---|---|
AvailableMemory (利用可能メモリ) |
スワップなしで新しいアプリケーションの開始に使用可能なメモリ容量の推定。詳細については、Linux man ページ 単位: バイト |
[CPUAllocated](割り当て済み CPU) |
タスクに最大割り当てられた CPU のパーセンテージ (0 は無制限を意味する)。 AWS DMS は、CloudWatch コンソール 単位: パーセント |
CPUUtilization |
割り当てられた vCPU (仮想 CPU) のうち、現在インスタンス上に使用されているものに対する比率。 単位: パーセント |
DiskQueueDepth |
ディスクアクセス待機中未処理の読み取り/書き込みリクエスト) (I/O) の数。 単位: カウント |
FreeStorageSpace |
使用可能なストレージ領域の容量。 単位: バイト |
[FreeMemory](空きメモリ) |
アプリケーションおよびページキャッシュ、カーネル独自のデータ構造で使用できる物理メモリ量。詳細については、Linux man ページ 単位: バイト |
FreeableMemory |
使用可能な RAM の容量。 単位: バイト |
[MemoryAllocated](割り当てメモリ) |
タスクの最大割り当てメモリ (0 は無制限を意味する)。 AWS DMS は、CloudWatch コンソール 単位: MiB |
WriteIOPS |
1 秒あたりのディスク書き込み I/O オペレーションの平均回数。 単位: カウント/秒 |
ReadIOPS |
1 秒あたりのディスク読み取り I/O オペレーションの平均回数。 単位: カウント/秒 |
WriteThroughput |
1 秒あたりのディスクへの平均書き込みバイト数。 単位: バイト/秒 |
ReadThroughput |
1 秒あたりのディスクからの平均読み取りバイト数。 単位: バイト/秒 |
WriteLatency |
1 回のディスク I/O (出力) 操作にかかる平均時間。 単位: ミリ秒 |
ReadLatency |
1 回のディスク I/O (入力) 操作にかかる平均時間。 単位: ミリ秒 |
SwapUsage |
レプリケーションインスタンスで使用されるスワップ領域の量。 単位: バイト |
NetworkTransmitThroughput |
モニタリングとレプリケーションに使用される顧客データベース トラフィックと AWS DMS トラフィックの両方を含むレプリケーション インスタンスの送信 (Transmit) ネットワーク トラフィック。 単位: バイト/秒 |
NetworkReceiveThroughput |
モニタリングとレプリケーションに使用される顧客データベース トラフィックと AWS DMS トラフィックの両方を含むレプリケーション インスタンスの受信 (Receive) ネットワーク トラフィック。 単位: バイト/秒 |
レプリケーションタスクのメトリクス
レプリケーションタスクのモニタリングには、次の統計のメトリクスがあります。
メトリクス |
説明 |
---|---|
FullLoadThroughputBandwidthTarget |
ターゲットに送信される全ロードによるネットワーク帯域幅 (1 秒あたりの KB 数)。 |
FullLoadThroughputRowsTarget |
ターゲットに送信される全ロードによる変更 (1 秒あたりの行数)。 |
CDCIncomingChanges |
ターゲットへの適用を待機している、特定の時点での変更イベントの合計数。これは、ソースエンドポイントのトランザクション変更レートの測定と同じではありません。通常、このメトリクスの大多数は、 AWS DMS をキャプチャされた変更にタイムリーに適用できず、ターゲットのレイテンシーが高くなっていることを示します。 |
CDCChangesMemorySource |
メモリに累積され、ソースからのコミットを待機している行の数。このメトリックは CDCChangesDiskSource とともに表示できます。 |
CDCChangesMemoryTarget (CDC変更メモリターゲット) |
メモリに累積され、ターゲットへのコミットを待機している行の数。このメトリックは CDCChangesDiskTarget とともに表示できます。 |
CDCChangesDiskSource (CDC変更ディスクソース) |
ディスクに累積され、ソースからのコミットを待機している行の数。このメトリックは CDCChangesMemorySource とともに表示できます。 |
CDCChangesDiskTarget (CDC変更ディスクターゲット) |
ディスクに累積され、ターゲットへのコミットを待機している行の数。このメトリックは CDCChangesMemoryTarget とともに表示できます。 |
CDCThroughputBandwidthTarget (CDCスループット帯域幅ターゲット) |
ターゲットに送信される送信データ (KB/秒)。CDCThroughputBandwidth は、サンプリングポイントで送信された送信データを記録 ネットワーク トラフィックが見つからない場合、値は 0 です。CDC は長時間実行トランザクションを発行しないため、ネットワークトラフィックは記録されない場合があります。 |
CDCThroughputRowsSource (CDCスループット行ソース) |
ソースから受信したタスクの変更 (1 秒あたりの行数)。 |
CDCThroughputRowsTarget (CDCスループット行ターゲット) |
ターゲットに送信されるタスクの変更 (1 秒あたりの行数)。 |
CDCLatencySource (CDCレイテンシーソース) |
ソース エンドポイントからキャプチャされた最後のイベントと、 AWS DMS インスタンスの現在のシステム タイムスタンプの間の間隔 (秒)。CDCLatencySource は、ソースインスタンスとレプリケーション インスタンス間のレイテンシーを表します。高い CDCLatencySource は、ソースからの変更をキャプチャするプロセスが遅延することを意味します。進行中のレプリケーションのレイテンシーを特定するには、このメトリクスを CDCLatencyTarget とともに表示できます。CDCLatencySource と CDCLatencyTarget の両方が高い場合は、まず CDCLatencySource を調べてください。 ソースとレプリケーションインスタンスの間にレプリケーションの遅延がない場合、CDCSourceLatency は 0 になることがある。レプリケーションタスクがソースのトランザクションログの次のイベントを読み取ろうとし、最後にソースから読み取った時と比較して新しいイベントがない場合にも、CDCSourceLatency がゼロになる可能性がある。このような状況の場合、タスクは CDCSourceLatency を 0 にリセットする。 |
CDCLatencyTarget (CDCレイテンシーターゲット) |
ターゲットのコミットを待機中の最初のイベント タイムスタンプと AWS DMS インスタンスの現在のタイムスタンプの間の間隔 (秒)。ターゲットのレイテンシーは、レプリケーションインスタンスのサーバー時間と、ターゲットコンポーネントに転送された最も古い未確定のイベント ID との差。つまり、ターゲットのレイテンシーは、レプリケーションインスタンスと、適用されても TRG エンドポイントがまだ確認していない最も古いイベントとの間のタイムスタンプの差 (99%)。CDCLatencyTarget が高い場合は、ターゲットに変更イベントを適用するプロセスが遅延していることを示します。進行中のレプリケーションのレイテンシーを特定するには、このメトリクスを CDCLatencySource とともに表示できます。CDCLatencyTarget が高くても CDCLatencySource が高くない場合は、次の場合に調査してください。
|
CPUUtilization (CPU使用度) |
複数のコアでタスクによって使用されている CPU の割合。タスク CPUUtilizaion のセマンティクスは、レプリケーション CPUUtilization とは少し異なります。1 つの vCPU が完全に使用されている場合は 100% を示しますが、複数の vCPUs が使用されている場合は 100% を超える可能性があります。 単位: パーセント |
SwapUsage |
タスクで使用されるスワップの量。 単位: バイト |
MemoryUsage |
タスクが使用した制御グループ (cgroup) の memory.usage_in_bytes。DMS は cgroup を使用して、メモリや CPU などのシステムリソースの使用を制御する。このメトリクスは、タスクに割り当てられた cgroup 内のタスクのメモリ使用量をメガバイト単位で示す。cgroup の制限は、DMS レプリケーションインスタンスクラスで利用できるリソースに基づいている。memory.usage_in_bytes は、メモリの常駐セット サイズ (RSS)、キャッシュ、スワップコンポーネントで構成される。オペレーティングシステムは、必要に応じてキャッシュメモリを再利用できる。レプリケーションインスタンスメトリクス AvailableMemory もモニタリングすることが推奨される。 AWS DMS は、CloudWatch コンソール |
DMS AWS タスクログの表示と管理
Amazon CloudWatch を使用して、 AWS DMS 移行プロセス中にタスク情報をログに記録できます。タスク設定を選択すると、ログ記録が有効になります。詳細については、「ロギングタスク設定」を参照してください。
実行されたタスクのログを表示するには、以下の手順に従います。
-
AWS DMS コンソールを開き、ナビゲーションペインからデータベース移行タスクを選択します。[データベース移行タスク] ダイアログが表示されます。
-
タスクの名前を選択します。[概要の詳細] ダイアログが表示されます。
-
[移行タスクログ] セクションを見つけ、[CloudWatch ログの表示] を選択します。
さらに、 AWS CLI または AWS DMS API を使用して、タスクログに関する情報を表示できます。これを行うには、 describe-replication-instance-task-logs
AWS CLI コマンドまたは AWS DMS API アクション を使用しますDescribeReplicationInstanceTaskLogs
。
例えば、次の AWS CLI コマンドは、タスクログメタデータを JSON 形式で表示します。
$ aws dms describe-replication-instance-task-logs \
--replication-instance-arn arn:aws:dms:us-east-1:237565436:rep:CDSFSFSFFFSSUFCAY
コマンドからのレスポンス例を次に示します。
{
"ReplicationInstanceTaskLogs": [
{
"ReplicationTaskArn": "arn:aws:dms:us-east-1:237565436:task:MY34U6Z4MSY52GRTIX3O4AY",
"ReplicationTaskName": "mysql-to-ddb",
"ReplicationInstanceTaskLogSize": 3726134
}
],
"ReplicationInstanceArn": "arn:aws:dms:us-east-1:237565436:rep:CDSFSFSFFFSSUFCAY"
}
このレスポンスでは、1 つのタスクログ (mysql-to-ddb
) がレプリケーションインスタンスに関連付けられています。このログのサイズは、3,726,124 バイトです。
describe-replication-instance-task-logs
により返される情報を使用して、タスクログの問題を診断およびトラブルシューティングできます。たとえば、タスクの詳細なデバッグログを有効にした場合、タスクログはすぐに大きくなるため、レプリケーション インスタンスに使用可能なストレージを消耗し、インスタンスステータスが storage-full
に変化する可能性があります。タスクログを記述することによって、必要ないタスクログを判断できます。これにより、それらのタスクログを削除してストレージ領域を解放できます。
タスクのタスクログを削除するには、タスク設定 DeleteTaskLogs
を true に設定します。たとえば、次の JSON は、 コマンドまたは AWS DMS API ModifyReplicationTask
アクションを使用して AWS CLI modify-replication-task
タスクを変更するときにタスクログを削除します。
{
"Logging": {
"DeleteTaskLogs":true
}
}
注記
レプリケーションインスタンスごとに、 は 10 日以上経過したログ AWS DMS を削除します。
を使用した AWS DMS API コールのログ記録 AWS CloudTrail
AWS DMS は、ユーザー AWS CloudTrail、ロール、または のサービスによって実行されたアクションを記録する AWS サービスである と統合されています AWS DMS。CloudTrail は、 AWS DMS コンソールからの呼び出しや API オペレーションへのコード呼び出しを含む、 のすべての AWS DMS API コールをイベント AWS DMS としてキャプチャします。証跡を作成する場合は、 イベントなど、Amazon S3 バケットへの CloudTrail イベントの継続的な配信を有効にすることができます AWS DMS。証跡を設定しない場合でも、CloudTrail コンソールの [イベント履歴] で最新のイベントを表示できます。CloudTrail によって収集された情報を使用して、リクエストの実行元の IP アドレス AWS DMS、リクエストの実行者、リクエストの実行日時などの詳細を確認できます。
CloudTrail の詳細については、「AWS CloudTrail ユーザーガイド」を参照してください。
AWS DMS CloudTrail の情報
CloudTrail は、 AWS アカウントの作成時にアカウントで有効になります。でアクティビティが発生すると AWS DMS、そのアクティビティはイベント履歴の他の AWS サービスイベントとともに CloudTrail イベントに記録されます。 AWS アカウントで最近のイベントを表示、検索、ダウンロードできます。詳細については、「Viewing events with CloudTrail event history」(CloudTrail イベント履歴でのイベントの表示) を参照してください。
のイベントなど、 AWS アカウントのイベントの継続的な記録については AWS DMS、証跡を作成します。追跡により、CloudTrail はログファイルを Amazon S3 バケットに配信できます。デフォルトでは、コンソールで証跡を作成すると、証跡はすべての AWS リージョンに適用されます。証跡は、 AWS パーティション内のすべての AWS リージョンからのイベントをログに記録し、指定した Amazon S3 バケットにログファイルを配信します。さらに、CloudTrail ログで収集されたイベントデータをより詳細に分析し、それに基づいて行動するように、他の AWS サービスを設定できます。詳細については、以下を参照してください。
すべての AWS DMS アクションは CloudTrail によってログに記録され、 AWS Database Migration Service API リファレンスに記載されています。例えば、CreateReplicationInstance
、TestConnection
、StartReplicationTask
の各アクションを呼び出すと、CloudTrail ログファイルにエントリが生成されます。
各イベントまたはログエントリには、誰がリクエストを生成したかという情報が含まれます。同一性情報は次の判断に役立ちます。
-
リクエストが、ルートと IAM ユーザー認証情報のどちらを使用して送信されたか。
-
リクエストがロールまたはフェデレーションユーザーの一時的なセキュリティ認証情報を使用して行われたかどうか。
-
リクエストが別の AWS サービスによって行われたかどうか。
詳細については、「CloudTrail userIdentity エレメント」を参照してください。
AWS DMS ログファイルエントリについて
「トレイル」は、指定した Amazon S3 バケットにイベントをログファイルとして配信するように設定できます。CloudTrail のログファイルは、単一か複数のログエントリを含みます。イベントはあらゆるソースからの単一のリクエストを表し、リクエストされたアクション、アクションの日時、リクエストのパラメータなどの情報が含まれます。CloudTrail ログファイルは、パブリック API コールの順序付けられたスタックトレースではないため、特定の順序では表示されません。
次は、RebootReplicationInstance
アクションを示す CloudTrail ログエントリの例です。
{
"eventVersion": "1.05",
"userIdentity": {
"type": "AssumedRole",
"principalId": "AKIAIOSFODNN7EXAMPLE:johndoe",
"arn": "arn:aws:sts::123456789012:assumed-role/admin/johndoe",
"accountId": "123456789012",
"accessKeyId": "ASIAIOSFODNN7EXAMPLE",
"sessionContext": {
"attributes": {
"mfaAuthenticated": "false",
"creationDate": "2018-08-01T16:42:09Z"
},
"sessionIssuer": {
"type": "Role",
"principalId": "AKIAIOSFODNN7EXAMPLE",
"arn": "arn:aws:iam::123456789012:role/admin",
"accountId": "123456789012",
"userName": "admin"
}
}
},
"eventTime": "2018-08-02T00:11:44Z",
"eventSource": "dms.amazonaws.com",
"eventName": "RebootReplicationInstance",
"awsRegion": "us-east-1",
"sourceIPAddress": "72.21.198.64",
"userAgent": "console.amazonaws.com",
"requestParameters": {
"forceFailover": false,
"replicationInstanceArn": "arn:aws:dms:us-east-1:123456789012:rep:EX4MBJ2NMRDL3BMAYJOXUGYPUE"
},
"responseElements": {
"replicationInstance": {
"replicationInstanceIdentifier": "replication-instance-1",
"replicationInstanceStatus": "rebooting",
"allocatedStorage": 50,
"replicationInstancePrivateIpAddresses": [
"172.31.20.204"
],
"instanceCreateTime": "Aug 1, 2018 11:56:21 PM",
"autoMinorVersionUpgrade": true,
"engineVersion": "2.4.3",
"publiclyAccessible": true,
"replicationInstanceClass": "dms.t2.medium",
"availabilityZone": "us-east-1b",
"kmsKeyId": "arn:aws:kms:us-east-1:123456789012:key/f7bc0f8e-1a3a-4ace-9faa-e8494fa3921a",
"replicationSubnetGroup": {
"vpcId": "vpc-1f6a9c6a",
"subnetGroupStatus": "Complete",
"replicationSubnetGroupArn": "arn:aws:dms:us-east-1:123456789012:subgrp:EDHRVRBAAAPONQAIYWP4NUW22M",
"subnets": [
{
"subnetIdentifier": "subnet-cbfff283",
"subnetAvailabilityZone": {
"name": "us-east-1b"
},
"subnetStatus": "Active"
},
{
"subnetIdentifier": "subnet-d7c825e8",
"subnetAvailabilityZone": {
"name": "us-east-1e"
},
"subnetStatus": "Active"
},
{
"subnetIdentifier": "subnet-6746046b",
"subnetAvailabilityZone": {
"name": "us-east-1f"
},
"subnetStatus": "Active"
},
{
"subnetIdentifier": "subnet-bac383e0",
"subnetAvailabilityZone": {
"name": "us-east-1c"
},
"subnetStatus": "Active"
},
{
"subnetIdentifier": "subnet-42599426",
"subnetAvailabilityZone": {
"name": "us-east-1d"
},
"subnetStatus": "Active"
},
{
"subnetIdentifier": "subnet-da327bf6",
"subnetAvailabilityZone": {
"name": "us-east-1a"
},
"subnetStatus": "Active"
}
],
"replicationSubnetGroupIdentifier": "default-vpc-1f6a9c6a",
"replicationSubnetGroupDescription": "default group created by console for vpc id vpc-1f6a9c6a"
},
"replicationInstanceEniId": "eni-0d6db8c7137cb9844",
"vpcSecurityGroups": [
{
"vpcSecurityGroupId": "sg-f839b688",
"status": "active"
}
],
"pendingModifiedValues": {},
"replicationInstancePublicIpAddresses": [
"18.211.48.119"
],
"replicationInstancePublicIpAddress": "18.211.48.119",
"preferredMaintenanceWindow": "fri:22:44-fri:23:14",
"replicationInstanceArn": "arn:aws:dms:us-east-1:123456789012:rep:EX4MBJ2NMRDL3BMAYJOXUGYPUE",
"replicationInstanceEniIds": [
"eni-0d6db8c7137cb9844"
],
"multiAZ": false,
"replicationInstancePrivateIpAddress": "172.31.20.204",
"patchingPrecedence": 0
}
},
"requestID": "a3c83c11-95e8-11e8-9d08-4b8f2b45bfd5",
"eventID": "b3c4adb1-e34b-4744-bdeb-35528062a541",
"eventType": "AwsApiCall",
"recipientAccountId": "123456789012"
}
AWS DMS コンテキストログ記録
AWS DMS はコンテキストログ記録を使用して、進行中の移行に関する情報を提供します。コンテキストのログ記録がタスクの CloudWatch ログに書き込む情報は次のとおりです。
ソースデータベースとターゲットデータベースへのタスクの接続に関する情報
レプリケーションタスクの動作。このタスクログを使用して、レプリケーションの問題を診断できます。
ソースデータベースとターゲットデータベースで AWS DMS 実行されるデータのない SQL ステートメント。この SQL ログを使用して、予期しない移行の動作を診断できます。
各 CDC イベントのストリーム位置の詳細
コンテキストログ記録は、 AWS DMS バージョン 3.5.0 以降でのみ使用できます。
AWS DMS はデフォルトでコンテキストログ記録を有効にします。コンテキストのログ記録を制御するには、EnableLogContext
タスク設定を true
または false
に設定するか、コンソールでタスクを変更します。
AWS DMS は、コンテキストログ情報を CloudWatch ログのレプリケーションタスクに 3 分ごとに書き込みます。レプリケーションインスタンスにアプリケーションログのための十分なスペースがあることを確認します。タスクログの管理の詳細については、「DMS AWS タスクログの表示と管理」を参照してください。
オブジェクトタイプ
AWS DMS は、以下のオブジェクトタイプについて CloudWatch でコンテキストログを作成します。
オブジェクトタイプ | 説明 |
---|---|
TABLE_NAME |
このログエントリには、現在のタスクマッピング ルールの範囲内にあるテーブルに関する情報が含まれている。このようなエントリを使用して、移行中の特定の期間のテーブルイベントを調べることができる。 |
SCHEMA_NAME |
このログエントリには、現在のタスクマッピング ルールで使用されるスキーマに関する情報が含まれている。これらのエントリを使用して、移行中に特定の期間に AWS DMS が使用しているスキーマを判断できます。 |
TRANSACTION_ID |
このログエントリには、ソースデータベースからキャプチャされた各 DML/DDL 変更のトランザクション ID が含まれている。このようなエントリを使用して、特定のトランザクション中にどのような変更が発生したかを判断できる。 |
CONNECTION_ID |
このエントリには接続 ID が含まれる。これらのログエントリを使用して、移行ステップごとに AWS DMS が使用する接続を決定できます。 |
STATEMENT |
このエントリには、各移行変更をフェッチ、処理、適用するために使用される SQL コードが含まれている。 |
STREAM_POSITION |
このエントリには、ソースデータベースの各移行アクションのトランザクションログファイル内の位置が含まれる。このエントリの形式は、ソースデータベースエンジンタイプによって異なる。このような情報を使用して、CDC のみのレプリケーションを設定する際に復旧チェックポイントの開始位置を決定することもできる。 |
ログ記録の例
このセクションでは、レプリケーションのモニタリングとレプリケーションの問題の診断に使用できるログレコードの例を説明します。
接続ログの例
このセクションでは、接続 ID を含むログのサンプルを記載しています。
2023-02-22T10:09:29 [SOURCE_CAPTURE ]I: Capture record 1 to internal queue from Source {operation:START_REGULAR (43),
connectionId:27598
, streamPosition:0000124A/6800A778.NOW} (streamcomponent.c:2920) 2023-02-22T10:12:30 [SOURCE_CAPTURE ]I: Capture record 0 to internal queue from Source {operation:IDLE (51),connectionId:27598
} (streamcomponent.c:2920) 2023-02-22T11:25:27 [SOURCE_CAPTURE ]I: Capture record 0 to internal queue from Source {operation:IDLE (51), columnName:region,connectionId:27598
} (streamcomponent.c:2920)
タスク動作ログの例
このセクションでは、レプリケーションタスクログの動作に関するログのサンプルを記載しています。このような情報を使用して、IDLE
ステータスのタスクなど、レプリケーションの問題を診断できます。
次の SOURCE_CAPTURE
ログは、ソースデータベースのログファイルから読み取ることができるイベントがないことを示しており、ターゲットデータベースに適用する AWS DMS CDC コンポーネントから受信したイベントがないことを示す TARGET_APPLY
レコードが含まれています。上記のイベントには、以前に適用したイベント関連のコンテキストの詳細も含まれています。
2023-02-22T11:23:24 [SOURCE_CAPTURE ]I: No Event fetched from wal log (postgres_endpoint_wal_engine.c:1369)
2023-02-22T11:24:29 [TARGET_APPLY ]I: No records received to load or apply on target , waiting for data from upstream. The last context is {operation:INSERT (1), tableName:sales_11, schemaName:public, txnId:18662441, connectionId:17855, statement:INSERT INTO "public"."sales_11"("sales_no","dept_name","sale_amount","sale_date","region") values (?,?,?,?,?),
SQL ステートメントログの例
このセクションでは、ソースデータベースとターゲットデータベースで実行される SQL ステートメントに関するログサンプルを記載しています。ログに表示される SQL ステートメントには SQL ステートメントのみが表示され、データは表示されません。次の TARGET_APPLY
ログは、ターゲット上で実行された INSERT
ステートメントを示しています。
2023-02-22T11:26:07 [TARGET_APPLY ]I: Applied record 2193305 to target {operation:INSERT (1), tableName:sales_111, schemaName:public, txnId:18761543, connectionId:17855, statement:INSERT INTO "public"."sales_111"("sales_no","dept_name","sale_amount","sale_date","region") values (?,?,?,?,?),
制限
AWS DMS コンテキストログ記録には、次の制限が適用されます。
はすべてのエンドポイントタイプに対して最小限のログ記録 AWS DMS を作成しますが、広範なエンジン固有のコンテキストログ記録は、次のエンドポイントタイプでのみ使用できます。このようなエンドポイントタイプを使用する場合は、コンテキストのログ記録を有効にすることをお勧めします。
MySQL
PostgreSQL
Oracle
Microsoft SQL Server
MongoDB と Amazon DocumentDB
Amazon S3