AWS DMS 복제 DB 인스턴스가 ‘스토리지가 가득 참’ 상태인 이유는 무엇입니까?

최종 업데이트 날짜: 2020년 10월 7일

AWS Database Migration Service(AWS DMS) 복제 DB 인스턴스가 ‘스토리지가 가득 참’ 상태인 이유는 무엇입니까?

간략한 설명

AWS DMS 복제 DB 인스턴스에는 스토리지가 있으며, 복제 DB 인스턴스를 생성할 때 할당된 스토리지를 지정할 수 있습니다. 기본적으로 dms.t2.* 및 dms.r4.* 복제 DB 인스턴스 유형의 볼륨 크기는 50GiB입니다. 또한 dms.c4.* 복제 DB 인스턴스 유형의 볼륨 크기는 100GiB입니다. FreeStorageSpace에 대한 Amazon CloudWatch 지표를 모니터링하여 복제 DB 인스턴스의 여유 스토리지 공간을 모니터링합니다.

복제 DB 인스턴스 스토리지는 주로 진행 중인 복제를 위해 수집되는 작업 로그 및 캐시된 변경 사항에 사용됩니다.

전체 부하만 있는 마이그레이션

작업 로그가 많은 경우, 예를 들어 작업에 대한 상세 디버그 로깅을 활성화한 경우, 작업 로그는 스토리지 가득 참 문제를 일으킬 수 있습니다. 기본적으로 AWS DMS 작업 로그 기록 수준은 최소한이지만 마이그레이션 오류 또는 실패의 원인을 파악하기 위해 간혹 더 세부적인 로깅이 필요할 때가 있습니다. 그러나 AWS DMS는 모든 개별 이벤트를 로그 파일에 기록하기 때문에 상세한 디버그 로깅은 복제 스토리지를 소비할 수 있습니다. 또한, 작업 로그가 너무 많으면 복제 DB 인스턴스가 스토리지가 가득 참 상태가 될 수 있습니다.

복제가 진행 중인 마이그레이션

캐시된 이벤트는 전체 로드 단계 중에 스토리지 문제를 일으킬 수 있습니다. 특히StopTaskCachedChangesNotApplied 작업 설정을 사용하도록 마이그레이션을 구성하는 경우 그렇습니다. 자세한 내용은 복제 인스턴스 생성을 참조하십시오. 스토리지 크기가 너무 작아 캐시된 변경 사항을 저장할 수 없는 경우, 복제 DB 인스턴스는 스토리지 가득 참 상태입니다.

변경 데이터 캡처(CDC) 단계 중에 스왑된 이벤트로 인해 원본에서 캡처한 변경 사항을 대상에 적용할 수 없을 때 스토리지 문제가 발생할 수 있습니다. AWS DMS는 먼저 캐시된 이벤트를 메모리에 저장한 다음, MemoryKeepTime 또는 MemoryLimitTotal 파라미터에 정의된 값이 초과될 경우(기본적으로 각각 60초 및 1GiB) 스토리지로 스왑합니다. 스왑된 데이터에 대한 스토리지가 충분하지 않은 경우 복제 DB 인스턴스는 스토리지가 가득 참 상태입니다. 자세한 내용은 처리 조정 설정 변경을 참조하십시오.

해결 방법

참고: AWS 명령줄 인터페이스(AWS CLI) 명령을 실행할 때 오류가 발생하는 경우, AWS CLI의 가장 최신 버전을 사용하고 있는지 확인하세요.

작업 로그 삭제

복제 DB 인스턴스가 사용 가능 상태인 경우 작업 로그를 삭제할 수 있습니다.

  1. AWS DMS 콘솔을 엽니다.
  2. 탐색 창에서 [Replication instances(복제 인스턴스)]를 선택합니다.
  3. 복제 DB 인스턴스의 이름을 선택합니다.
  4. [Log management(로그 관리)] 섹션에서 모든 작업과 개별 작업의 Log size(로그 크기)를 확인합니다.
  5. 로그를 삭제할 작업을 선택한 다음 [Delete(삭제)]를 선택합니다.

자세한 내용은 AWS DMS 작업 로그 관리를 참조하십시오.

CLI를 사용한 작업 설정 수정

작업 설정을 수정하여 AWS 명령줄 인터페이스 (AWS CLI)를 사용하여 DMS 작업 로그를 삭제할 수도 있습니다. 먼저 다음 명령을 사용하여 tasksetting.json JSON 파일을 만듭니다.

"Logging": {
    "DeleteTaskLogs": true
    }
}

JSON 파일을 만든 후 아래 명령을 실행하여 작업 설정을 수정합니다.

참고: 작업을 수정하려면 작업이 [Stopped(중지됨)] 또는 [Failed(실패)] 상태여야 합니다.

aws dms modify-replication-task --replication-task-arn  --replication-task-settings file://tasksetting.json

위의 명령은 매개 변수"DeleteTaskLogs": true를 변경하여 작업 설정을 수정합니다. 이 매개 변수와 값을 작업 설정에 추가한 후 작업에 대해 존재하는 모든 로그가 복제 DB 인스턴스에서 삭제됩니다. 로그가 삭제되면 작업 설정은 "DeleteTaskLogs": true 매개 변수를 제거합니다. 이 명령을 실행한 후 복제 DB 인스턴스에서 로그가 삭제되고 작업 설정에서 “DeleteTaskLogs”: true 매개 변수가 제거되었는지 확인합니다.

로그를 주기적으로 삭제하려면 매번 "DeleteTaskLogs": true 매개 변수를 사용하여 작업 설정을 수정해야 합니다. 구현 방식에 따라 cronjob 또는 Lambda 스케줄러를 사용하여 이 명령을 주기적으로 실행하도록 예약할 수 있습니다.

자세한 내용은 modify-replication-task를 참조하십시오.

복제 DB 인스턴스의 스토리지 크기 증가

복제 DB 인스턴스가 스토리지가 가득 참 상태인 경우 로그를 삭제할 수 없습니다. 할당된 스토리지 크기를 늘리거나 복제 작업을 삭제해야 합니다. 복제 DB 인스턴스의 스토리지 크기를 늘리는 방법:

  1. AWS DMS 콘솔을 엽니다.
  2. 탐색 창에서 [Replication instances(복제 인스턴스)]를 선택합니다.
  3. 볼륨 크기를 수정할 복제 DB 인스턴스의 이름을 선택합니다.
  4. [Modify(수정)]를 선택합니다.
  5. [Allocated storage(할당된 스토리지) GB] 필드에 새 값을 입력합니다.
  6. [Apply changes immediately(변경 사항 즉시 적용)]를 선택하고 [Modify(수정)]를 선택합니다.

중요: 할당된 스토리지 크기를 늘린 후에는 줄일 수 없습니다.


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


결제 또는 기술 지원이 필요합니까?