AWS DMS 작업에서 높은 대상 지연 시간 문제를 해결하려면 어떻게 해야 합니까?

최종 업데이트 날짜: 2020년 1월 23일

전체 로드와 변경 데이터 캡처(CDC) AWS Database Migration Service(AWS DMS) 작업을 실행하고 있습니다. 소스 지연 시간이 높지는 않지만 대상 지연 시간이 높거나 증가하고 있습니다. AWS DMS 마이그레이션 작업에서 높은 대상 지연 시간 문제를 해결하려면 어떻게 해야 합니까?

간략한 설명

Amazon CloudWatch 지표를 사용하여 복제 작업의 통계를 모니터링할 수 있습니다. 특히 CDCLatencySourceCDCLatencyTarget을 모니터링하여 지속적 복제 단계(CDC)에서 복제 지연 시간을 식별할 수 있습니다. CDCLatencySource 지표는 원본과 복제 인스턴스 간의 지연 시간입니다. CDCLatencyTarget 지표는 복제 인스턴스와 대상 간의 지연 시간입니다. 자세한 내용은 복제 작업 지표를 확인하십시오.

높은 CDCLatencySource는 소스에서 변경 사항을 캡처하는 프로세스가 지연됨을 의미합니다. CDCLatencyTarget이 높으면 변경 이벤트를 대상에 적용하는 프로세스가 지연된다는 의미입니다. CDCLatencySourceCDCLatencyTarget이 모두 높으면 대상 지연 시간이 항상 소스 지연 시간보다 크거나 같기 때문에 먼저 CDCLatencySource를 검사하십시오. CDCLatencyTarget이 높으면 소스에서 변경 이벤트를 캡처하는 데 지연이 발생할 가능성이 높습니다. CDCLatencySource가 높지 않지만 CDCLatencyTarget이 높으면 다음이 지연 시간의 원인일 수 있습니다.

  • 대상에 기본 키 또는 인덱스가 없음
  • 대상에 리소스 병목 현상이 있음
  • 복제 인스턴스에 리소스 병목 현상이 있음
  • 복제 인스턴스와 대상 간에 네트워크 문제가 있음

이러한 문제를 해결하려면 모범 사례 및 문제 해결을 참조하십시오.

해결 방법

대상에 기본 키 또는 인덱스가 없음

기본적으로 AWS DMS는 다른 애플리케이션과 마찬가지로 데이터 조작 언어(DML) 문(예: INSERT, UPDATE 또는 DELETE)을 통해 대상에 변경 사항을 기록합니다. 필요한 인덱스가 없는 경우 UPDATE와 DELETE와 같은 변경 사항으로 인해 전체 테이블 스캔이 발생할 수 있습니다. 전체 테이블 스캔은 대상에서 성능 문제를 일으킬 수 있습니다. 그런 다음 이러한 스캔은 대상 지연 시간을 초래합니다. 특히 대상 스키마를 수동으로 생성한 경우 대상 데이터베이스 스키마를 확인하십시오. MySQL의 느린 쿼리 로그, PostgreSQL의 pg_stat_activity 또는 쿼리 계획과 같은 대상 데이터베이스 메커니즘을 사용하여 느린 쿼리를 식별합니다. 대상이 Amazon Redshift인 경우 테이블의 분산 스타일도 확인하십시오. 테이블에 데이터를 삽입하거나 업데이트하는 데 더 오래 걸리기 때문에 모든 분산 스타일은 대상 지연 시간을 초래할 수 있습니다.

대상의 리소스 병목 현상

대상에 충분한 리소스가 없는 경우 대상은 AWS DMS가 전송하는 속도로 변경 사항을 수락할 수 없습니다. 이로 인해 대상 및 대상 지연 시간에 리소스 병목 현상이 발생할 수 있습니다. 이는 다른 프로세스가 대상의 리소스를 소비하는 경우에도 발생할 수 있습니다. AWS에서 대상을 호스팅하는 경우 CloudWatch 지표에서 리소스 통계를 확인합니다.

복제 인스턴스의 리소스 병목 현상

마이그레이션을 처리하기에 충분한 리소스가 있는 복제 인스턴스(CPU, 메모리, 네트워크 또는 iOPS)를 선택합니다 . CloudWatch 지표를 사용하여 복제 인스턴스 리소스를 모니터링할 수 있습니다.

복제 인스턴스와 대상 간에 네트워크 문제

네트워크 대역폭 및 지연 시간 문제는 특히 대상이 온프레미스 데이터베이스이거나 리전 간 복제에 AWS DMS를 사용하는 경우 지연 시간 문제를 야기할 수 있습니다.

모범 사례 및 문제 해결

대상이 Amazon Relational Database Service(Amazon RDS)인 경우 AWS DMS 마이그레이션의 성능 개선을 위한 모범 사례를 따르십시오. Amazon RDS에는 백업 기간 안에 시작하는 자동화된 백업 메커니즘이 있으며 Amazon RDS는 이동된 데이터를 백업합니다. 대상 DB 인스턴스의 스냅샷이 캡처 중이라면 AWS DMS에서 대상에 변경 사항을 적용하는 데 문제가 있을 수 있습니다. 따라서 스냅샷이 캡처될 때까지 대상 지연 시간이 증가합니다. 대상이 Amazon Elastic Compute Cloud(Amazon EC2) 또는 온프레미스 데이터베이스인 경우 대상 데이터베이스의 백업 메커니즘을 확인합니다.

일부 작업 설정으로 인해 변경 사항이 대상에 느리게 기록될 수 있습니다. 변경 비율이 높은 소스에서 지속적 복제를 실행하는 경우 BatchApplyEnabled를 사용하는 것이 좋습니다. 자세한 내용은 AWS DMS 마이그레이션 디버깅: 사물이 잘못되면 어떻게 해야 합니까?BatchApplyEnabled단원을 참조하십시오.

BatchApplyEnabledTrue로 설정하려면 AWS 명령줄 인터페이스(AWS CLI)를 사용하여 modify-replication-task 명령을 실행합니다.

aws dms modify-replication-task --replication-task-arn arn:aws:dms:ap-northeast-1:123456789012:task:ABCDEFGHIJKLMNOPQRSTUVWXYZ --replication-task-settings "{\"TargetMetadata\":{\"BatchApplyEnabled\":true}}"

이 문서가 도움이 되었습니까?

AWS에서 개선해야 할 부분이 있습니까?


도움이 필요하십니까?