AWS DMS タスクでソースレイテンシーが高い場合のトラブルシューティング方法を教えてください。
最終更新日: 2019 年 10 月 1 日
Amazon CloudWatch メトリクスを使用して AWS DMS タスクをモニタリングできます。移行中に、AWS DMS タスクの継続的なレプリケーションフェーズ (変更データキャプチャ (CDC)) 中にソースレイテンシーが発生することがあります。CDCLatencySource の CloudWatch サービスメトリクスを使用して、AWS DMS タスクのソースレイテンシーをモニタリングできます。AWS DMS タスクでソースレイテンシーが表示される場合、以下の 1 つ以上が原因である可能性があります。
- ソースデータベースのリソースが限られている。
- AWS DMS レプリケーションインスタンスのリソースが限られている。
- ソースデータベースと AWS DMS レプリケーションインスタンス間のネットワーク速度が遅い。
- AWS DMS が、継続的なレプリケーション中にソースデータベースのトランザクションログから新しい変更を読み取っている。
- AWS DMS タスク設定が不十分であるか、ラージオブジェクト (LOB) を移行中である。
- AWS DMS タスクに使用される Oracle ソースデータベースが、継続的なレプリケーションに LogMiner を使用している。
解決方法
ソースデータベースのリソースが限られている。ソース DB エンジンのネイティブモニタリングを使用して、データベースでパフォーマンスのボトルネック (CPU またはメモリの競合、IO 飽和など) が発生していないことを確認することをお勧めします。
AWS DMS レプリケーションインスタンスのリソースが限られている。CPUUtilization、FreeStorageSpace、FreeableMemory などのレプリケーションインスタンスメトリクスをモニタリングします。レプリケーションインスタンスに、タスクを管理するための十分なリソースがあることを確認します。
ソースデータベースと AWS DMS レプリケーションインスタンス間のネットワーク速度が遅い。 設計上、単一の AWS DMS タスクはネットワーク帯域幅全体を使用できません。変更率が高い、稼働中の本番データベースがある場合は、ネットワーク帯域幅を増やす必要があります。例えば、AWS Direct Connect 接続を使用します。
AWS DMS が、継続的なレプリケーション中にソースデータベースのトランザクションログから新しい変更を読み取っている。 ソース DB エンジンによっては、ソーストランザクションログにコミットされていないデータがある場合もあります。継続的なレプリケーション中、AWS DMS は受信した変更をトランザクションログから読み取りますが、AWS DMS はコミットされた変更だけをターゲットに転送します。最終的に、これによりソースレイテンシーが発生する可能性があります。
ただし、ソースデータベースが大きなデータセットを書き込み、実行するコミット数を減らすと、AWS DMS はトランザクションログからの読み取りを続行します。しかし、AWS DMS は、トランザクション全体がコミットされるまでターゲットの変更を適用しません。これにより、ソースのレイテンシーが発生する可能性もあります。ソースレイテンシーが増加するため、ターゲットレイテンシーも増加します。
AWS DMS タスク設定が不十分であるか、ラージオブジェクト (LOB) を移行中である。 AWS DMS は、2 つのフェーズで継続的なレプリケーション用に LOB データを移行します。まず、AWS DMS は、LOB がある列を除くすべての列を含むターゲットテーブルで新しい行を作成します。次に、AWS DMS は LOB がある行を更新します。LOB 列があるテーブルを頻繁に更新するソースデータベースがある場合、ソースレイテンシーが発生する可能性があります。詳細については、「ラージバイナリオブジェクト (LOB) の移行」を参照してください。
AWS DMS タスクに使用される Oracle ソースデータベースが、継続的なレプリケーションに LogMiner を使用している。 大量の REDO ログを生成するビジーなソースデータベースがある場合、またはソースデータベースが Oracle 自動ストレージ管理 (ASM) を使用している場合、進行中のレプリケーションにバイナリリーダー方式を使用する必要がある場合があります。詳細については、「変更データキャプチャ (CDC) に Oracle LogMiner または Oracle Binary Reader を使用する」を参照してください。