내 AWS DMS 복제 DB 인스턴스가 storage-full 상태인 이유는 무엇인가요?

3분 분량
0

AWS Database Migration Service(AWS DMS) 복제 DB 인스턴스가 storage-full 상태인 이유를 알고 싶습니다.

간략한 설명

AWS DMS 복제 DB 인스턴스의 경우 복제 DB 인스턴스를 생성할 때 할당된 스토리지를 지정할 수 있습니다. 기본적으로 dms.t2.* 및 dms.r4.* 복제 DB 인스턴스 유형의 볼륨 크기는 50GiB입니다. dms.c4.* 복제 DB 인스턴스 유형의 볼륨 크기는 100GiB입니다. 복제 DB 인스턴스의 사용 가능한 스토리지 공간을 모니터링하려면 FreeStorageSpace Amazon CloudWatch 지표를 검토하세요. 복제 DB 인스턴스 스토리지는 주로 진행 중인 복제를 위해 수집되는 작업 로그와 캐시된 변경 사항에 사용됩니다. AWS DMS 복제 DB 인스턴스가 storage-full 상태인 이유는 마이그레이션 유형에 따라 달라질 수 있습니다.

**전체 로드가 포함된 마이그레이션 **

작업 로그가 많은 경우 작업 로그로 인해 storage-full 문제가 발생할 수 있습니다. 예를 들어, 작업에 대한 세부 디버그 로깅을 활성화하면 DB 인스턴스에 더 많은 작업 로그가 있습니다.

**지속적인 복제를 통한 마이그레이션 **

캐시된 이벤트는 전체 로드 단계에서 스토리지 문제를 일으킬 수 있으며, 특히 StopTaskCachedChangesNotApplied 작업 설정을 사용하도록 마이그레이션을 구성하는 경우 더욱 그렇습니다. 스토리지 크기가 너무 작아 캐시된 변경 내용을 저장할 수 없는 경우 복제 DB 인스턴스는 storage-full 상태가 됩니다. CDC(변경 데이터 캡처) 단계 중에 스왑된 이벤트로 인해 원본의 변경 내용을 대상에 적용할 수 없는 경우 스토리지 문제가 발생할 수 있습니다. AWS DMS는 먼저 캐시된 이벤트를 메모리에 저장합니다. MemoryKeepTime 또는 MemoryLimitTotal 파라미터에 정의된 값이 초과되면 AWS DMS는 캐시된 이벤트를 스토리지로 스왑합니다. 스왑된 데이터를 저장할 스토리지가 충분하지 않은 경우 복제 DB 인스턴스는 storage-full 상태가 됩니다. 자세한 내용은 처리 튜닝 설정 변경을 참조하세요.

해결 방법

**참고:**AWS Command Line Interface(AWS CLI) 명령을 실행할 때 오류가 발생하는 경우 AWS CLI 오류 해결을 참고하세요. 또한 최신 AWS CLI 버전을 사용하고 있는지 확인하세요.

태스크 로그 삭제

복제 DB 인스턴스가 사용 가능한 상태인 경우 작업 로그를 삭제하세요.

  1. AWS DMS 콘솔을 엽니다.
  2. 탐색 창에서 복제 인스턴스를 선택합니다.
  3. 복제 DB 인스턴스의 이름을 선택합니다. 로그 관리 섹션에서 모든 작업과 각 작업의 로그 크기를 볼 수 있습니다.
  4. 로그를 삭제하려는 작업을 선택한 다음 삭제를 선택합니다.

자세한 내용은 AWS DMS 작업 로그 보기 및 관리를 참조하세요.

작업 설정 수정

AWS CLI를 사용하여 DMS 작업 로그를 삭제하려면 작업 설정을 수정하세요. 다음 명령을 실행하여 tasksetting.json JSON 파일을 생성합니다.

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

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

**참고:**작업을 수정하려면 작업의 상태가 중지됨 또는 실패함이어야 합니다.

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 인스턴스가 storage-full 상태인 경우 로그를 삭제할 수 없습니다. 할당된 스토리지 크기를 늘리거나 복제 작업을 삭제해야 합니다. 복제 DB 인스턴스의 스토리지 크기를 늘리려면:

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

**중요:**할당된 스토리지 크기는 증가된 후에는 줄일 수 없습니다.

관련 정보

AWS Database Migration Service(AWS DMS) 모범 사례