AWS DMS 작업이 오류 없이 실패한 이유는 무엇입니까?

최종 업데이트 날짜: 2019년 9월 27일

AWS Database Migration Service(AWS DMS)를 사용하여 소스 엔진에서 대상 엔진으로 데이터를 마이그레이션하고 있습니다. 하지만 작업이 오류 없이 실패합니다. 이 문제를 해결하려면 어떻게 해야 합니까?

간략한 설명

AWS DMS 작업이 실패하면 작업 로그는 오류 메시지(E:) 또는 경고 메시지(W:)와 함께 실패 원인에 대한 정보를 제공합니다. 경우에 따라 AWS DMS 작업이 오류나 경고 없이 실패할 수 있으며, 이로 인해 원인을 해결하기가 어려울 수 있습니다. 대부분의 경우 다음 세 가지 이유 중 하나로 인해 발생합니다.

1. 복제 인스턴스의 리소스 경합

마이그레이션 작업에 필요한 가장 중요한 두 가지 리소스는 CPU와 메모리입니다.

  • 소스 데이터 형식을 AWS DMS 형식 데이터 형식으로 변환한 다음 마지막으로 대상 데이터 형식으로 변환하려면 CPU가 필요합니다.
  • AWS DMS가 소스 및 대상에 대한 스트림을 생성하기 때문에 메모리가 필요합니다. AWS DMS는 복제 인스턴스의 메모리에 있는 스트림 버퍼에 정보를 저장합니다.

또한 내부 모니터링 시스템에서 복제 인스턴스를 모니터링하는 데 CPU와 메모리도 사용합니다. CPU 또는 메모리에서 경합이 발생하면 마이그레이션 작업이 자동으로 실패할 수 있습니다.

2. 복제 인스턴스의 스토리지가 가득 찬 상태

복제 인스턴스 스토리지가 가득 찬 경우 마이그레이션 작업이 오류 없이 자동으로 실패할 수 있습니다. 자세한 내용은 AWS DMS 복제 인스턴스의 스토리지가 가득 찬 상태인 이유는 무엇입니까?를 참조하십시오.

3. 내부 오류가 발생했습니다.

AWS DMS 작업은 기본적으로 기록되는 작업 로그에 표시되지 않는 내부 오류가 있는 경우에도 자동으로 실패할 수 있습니다.

해결 방법

먼저 작업이 자동으로 실패한 후 작업 로그의 마지막 항목 시간을 확인합니다. 그런 다음 장애가 기록된 시기와 동시에 복제 인스턴스의 CPU, 메모리 및 디스크 사용률을 확인합니다.

낮은 FreeableMemory 및 높은 SwapUsage가 조합된 경우 복제 인스턴스에 메모리 경합이 있을 수 있습니다. 두 지표를 모두 확인해야 합니다. 자세한 내용은 Data Migration Service 지표를 참조하십시오.

CloudWatch 지표를 보려면 다음 단계를 따르십시오.

  1. AWS DMS 콘솔을 열고 탐색 창에서 [Database migration tasks]를 선택합니다. 
  2. 실패한 작업의 이름을 선택합니다.
    [Overview details] 섹션에서 [복제 인스턴스]의 이름을 기록해 둡니다.
  3. 탐색 창에서 [Replication instances]를 선택합니다.
  4. 3단계에서 기록한 복제 인스턴스의 이름을 선택합니다.
  5. [Migration task metrics] 섹션에서 CPUUtilization, SwapUsage, FreeableMemoryFreeStorageSpace 지표를 볼 수 있습니다.
  6. 세부 정보를 보려면 지표 위에 마우스 포인터를 놓고 추가 옵션 아이콘(세로 점 3개)을 선택합니다. 
  7. [View in metrics]를 선택합니다.

그러면 작업이 실패한 시기의 지표 사용률을 볼 수 있는 CloudWatch 콘솔이 열립니다.

CPU 또는 메모리 경합이 일정한 경우 복제 인스턴스에서 실행 중인 작업 수를 줄이는 것이 좋습니다. 이를 위해 새 복제 인스턴스를 시작하고 여러 복제 인스턴스에 작업을 분산할 수 있습니다. 또는 복제 인스턴스를 더 큰 인스턴스 유형으로 확장하는 것이 좋습니다.

참고: T2 인스턴스는 CPU 크레딧이 소진된 후 기본 성능을 제공합니다. 예를 들어 T2.마이크로 인스턴스는 10%의 기본 성능을 제공합니다. 따라서 사용된 인스턴스 유형을 고려하여 CPU 사용률을 적절히 확인합니다. CPU 크레딧 및 기준 성능에 대한 자세한 내용은 성능 순간 확장 가능 인스턴스의 CPU 크레딧 및 기준 성능을 참조하십시오.

자동 실패의 원인을 식별한 후 작업을 다시 시작합니다.

CPU, 메모리 또는 디스크 공간에 경합이 없으면 내부 오류로 인해 작업이 실패할 가능성이 높습니다. 내부 오류를 해결하려면 5가지 로그 구성 요소 모두에 대해 세부 디버깅을 활성화합니다. 세부 디버깅을 활성화한 후 작업을 다시 시작하고 작업 로그를 검토하여 작업이 실패한 이유를 확인합니다.


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

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


도움이 필요하십니까?