모니터링 AWS DMS임무 - AWS Database Migration Service

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

모니터링 AWS DMS임무

모니터링은 안정성, 가용성 및 성능을 유지하는 데 중요한 부분입니다. AWS DMS 그리고 AWS 솔루션. 모든 부서에서 모니터링 데이터를 수집해야 합니다. AWS 다지점 장애가 발생할 경우 이를 보다 쉽게 디버깅할 수 있는 솔루션입니다. AWS 모니터링을 위한 여러 도구를 제공합니다. AWS DMS 작업 및 리소스, 잠재적 사고에 대한 대응:

AWS DMS 이벤트 및 알림

AWS DMS Amazon 심플 알림 서비스 (AmazonSNS) 를 사용하여 다음과 같은 경우 알림을 제공합니다. AWS DMS 이벤트 발생 (예: 복제 인스턴스 생성 또는 삭제). AWS DMS 구독할 수 있는 카테고리별로 이벤트를 그룹화하여 해당 카테고리의 이벤트가 발생하면 알림을 받을 수 있습니다. 예를 들어 임의의 복제 인스턴스에 대한 생성 카테고리를 구독할 경우 생성 관련 이벤트가 발생하여 복제 인스턴스에 영향을 끼칠 때마다 알림 메시지가 수신됩니다. 다음과 같은 경우 Amazon에서 지원하는 모든 양식으로 이러한 알림을 SNS 사용할 수 있습니다. AWS 지역 (예: 이메일 메시지, 문자 메시지 또는 HTTP 엔드포인트 통화). 자세한 내용은 AWS Database Migration Service에서 Amazon SNS 이벤트 및 알림 사용 단원을 참조하세요.

작업 상태

작업 상태를 확인하고 작업의 제어 테이블을 확인하여 작업 진행률을 모니터링할 수 있습니다. 작업 상태는 상태를 나타냅니다. AWS DMS 작업 및 관련 리소스. 여기에는 작업이 생성, 시작, 실행 또는 중지되는 경우와 같은 표시가 포함됩니다. 또한 테이블 전체 로드가 시작되었거나 진행 중인 경우와 같이 작업이 마이그레이션하는 테이블의 현재 상태와 테이블에서 발생한 삽입, 삭제 및 업데이트 횟수와 같은 세부 정보가 포함됩니다. 작업 및 작업 리소스 상태 모니터링에 대한 자세한 내용은 작업 상태작업 중 테이블 상태 섹션을 참조하세요. 제어 테이블에 대한 자세한 내용은 제어 테이블 작업 설정 섹션을 참조하세요.

아마존 CloudWatch 알람 및 로그

Amazon CloudWatch 경보를 사용하면 지정한 기간 동안 하나 이상의 작업 지표를 관찰할 수 있습니다. 지표가 지정된 임계값을 초과하는 경우 Amazon SNS 주제로 알림이 전송됩니다. CloudWatch 경보는 특정 상태에 있기 때문에 조치를 호출하지 않습니다. 대신, 상태가 변경되어 지정된 기간 동안 유지되어야 합니다. AWS DMS 마이그레이션 프로세스 중에 작업 정보를 CloudWatch 기록하는 데에도 사용됩니다. 를 사용할 수 있습니다. AWS CLI 또는 AWS DMS API작업 로그에 대한 정보를 보려면 CloudWatch 와 함께 사용하는 방법에 대한 자세한 내용은 AWS DMS을 참조하십시오Amazon을 사용한 복제 작업 모니터링 CloudWatch. 모니터링에 대한 자세한 내용은 AWS DMS 메트릭은 을 참조하십시오AWS Database Migration Service 지표. 사용에 대한 자세한 내용은 AWS DMS 작업 로그는 을 참조하십시오보기 및 관리 AWS DMS태스크 로그.

Time Travel 로그

복제 작업을 기록하고 디버깅하려면 다음을 사용할 수 있습니다. AWS DMS 시간 여행. 이 방식에서는 Amazon S3를 사용하여 로그를 저장하고 암호화 키를 사용하여 로그를 암호화합니다. 날짜-시간 필터를 사용하여 S3 로그를 검색한 다음, 필요에 따라 로그를 보고 다운로드하고 난독화할 수 있습니다. 이렇게 하면 ‘과거로 이동’하여 데이터베이스 활동을 조사할 수 있습니다.

타임 트래블은 DMS -지원되는 Postgre SQL 소스 엔드포인트 및 DMS -지원되는 SQL Postgre 및 내 타겟 엔드포인트와 함께 사용할 수 있습니다. SQL Time Travel은 전체 로드 및 태스크 및 태스크에만 사용할 수 있으며 태스크에만 사용할 수 있습니다. CDC CDC Time Travel을 활성화하거나 기존의 Time Travel 설정을 수정하려면 태스크를 중지해야 합니다.

Time Travel 로그에 대한 자세한 내용은 Time Travel 작업 설정 섹션을 참조하세요. Time Travel 로그 사용에 대한 모범 사례는 Time Travel을 통한 복제 태스크 문제 해결 섹션을 참조하세요.

AWS CloudTrail 로그

AWS DMS 다음과 통합되어 있습니다. AWS CloudTrail, 사용자, IAM 역할 또는 담당자가 수행한 작업의 기록을 제공하는 서비스 AWS 의 서비스 AWS DMS. CloudTrail에 대한 모든 API 통화를 캡처합니다. AWS DMS 에서 걸려오는 전화를 포함한 이벤트로 AWS DMS 콘솔 및 코드 호출에서 AWS DMS API오퍼레이션. 트레일을 생성하면 다음과 같은 이벤트를 포함하여 Amazon S3 버킷으로 CloudTrail 이벤트를 지속적으로 전송할 수 있습니다. AWS DMS. 트레일을 구성하지 않아도 CloudTrail 콘솔의 이벤트 기록에서 가장 최근 이벤트를 계속 볼 수 있습니다. 에서 수집한 CloudTrail 정보를 사용하여 어떤 요청을 받았는지 확인할 수 있습니다. AWS DMS, 요청이 이루어진 IP 주소, 요청한 사람, 요청 시기 및 추가 세부 정보. 자세한 내용은 로깅 AWS DMS API다음과 같은 전화 AWS CloudTrail 단원을 참조하십시오.

데이터베이스 로그

를 사용하여 작업 엔드포인트의 데이터베이스 로그를 보고, 다운로드하고, 시청할 수 있습니다. AWS Management Console, AWS CLI또는 다음과 같은 API 경우 AWS 데이터베이스 서비스. 자세한 내용은 데이터베이스 서비스 설명서를 참조하십시오. AWS 설명서.

자세한 내용은 다음 항목을 참조하십시오.

작업 상태

태스크 상태는 말 그대로 태스크의 상태를 나타냅니다. 다음 테이블은 작업이 가질 수 있는 가능한 상태를 나타냅니다.

작업 상태 설명

[생성 중]

AWS DMS 작업을 생성하는 중입니다.

[실행 중]

작업이 지정된 마이그레이션 업무를 수행하고 있습니다.

[중지됨]

작업이 중지됩니다.

[중지 중]

작업이 중지되고 있습니다. 대개 작업에서 사용자 개입을 나타냅니다.

[삭제 중]

보통 사용자 개입 요청을 통해 작업이 삭제되고 있습니다.

실패

작업에 실패했습니다. 자세한 내용은 태스크 로그 파일을 참조하세요.

오류

오류로 인해 태스크가 중지되었습니다. 태스크 오류에 대한 간략한 설명은 개요 탭의 마지막 실패 메시지 섹션에 나와 있습니다.

실행 중(오류 포함)

태스크가 오류 상태로 실행 중입니다. 이는 일반적으로 태스크에 있는 하나 이상의 테이블을 마이그레이션할 수 없음을 나타냅니다. 태스크는 선택 규칙에 따라 다른 테이블을 계속 로드합니다.

[시작됨]

작업이 복제 인스턴스와 원본 및 대상 엔드포인트에 연결되고 있습니다. 모든 필터와 변환이 적용되고 있습니다.

[준비됨]

작업을 실행할 준비가 되어 있습니다. 이 상태 다음에는 대개 "생성" 상태가 나옵니다.

수정 중

작업이 수정되고 있습니다. 대개 작업 설정을 수정한 사용자 작업으로 인한 것입니다.

이동 중

태스크가 다른 복제 인스턴스로 이동하는 중입니다. 이동이 완료될 때까지 복제는 이 상태로 유지됩니다. 복제 태스크가 이동 중인 동안에는 태스크 삭제 작업만 허용됩니다.

이동 실패

어떤 이유로든 태스크 이동이 실패했습니다(예: 대상 복제 인스턴스에 스토리지 공간이 부족). 복제 태스크가 이 상태일 때는 태스크를 시작, 수정, 이동 또는 삭제할 수 있습니다.

테스트

또는 작업 실행에 대한 응답으로 이 작업에 지정된 데이터베이스 마이그레이션을 테스트하고 StartReplicationTaskAssessment있습니다. StartReplicationTaskAssessmentRun

작업 상태 표시줄은 작업 진행률의 추정치를 나타냅니다. 이 추정치의 품질은 소스 데이터베이스의 테이블 통계 품질에 따라 달라지며, 테이블 통계 품질이 좋을수록 추정 정확도가 높아집니다. 추정 행 통계 없이 단 하나의 테이블을 사용하는 작업의 경우, 모든 유형의 완료율 추정치를 제공할 수 없습니다. 이 경우에 작업 상태와 로드되는 행 표시를 사용하여 작업이 실제로 실행되고 진행되고 있음을 확인할 수 있습니다.

참고로 DMS 콘솔의 “마지막 업데이트” 열에는 해당 시간만 표시됩니다. AWS DMS 테이블의 테이블 통계 레코드를 마지막으로 업데이트했습니다. 테이블에 대한 마지막 업데이트 시간을 표시하지 않습니다.

DMS콘솔을 사용하는 것 외에도 의 aws dms describe-replication-tasks 명령을 사용하여 작업 상태를 비롯한 현재 복제 작업에 대한 설명을 출력할 수 있습니다. AWS CLI다음 예와 같습니다.

{ "ReplicationTasks": [ { "ReplicationTaskIdentifier": "moveit2", "SourceEndpointArn": "arn:aws:dms:us-east-1:123456789012:endpoint:6GGI6YPWWGAYUVLKIB732KEVWA", "TargetEndpointArn": "arn:aws:dms:us-east-1:123456789012:endpoint:EOM4SFKCZEYHZBFGAGZT3QEC5U", "ReplicationInstanceArn": "arn:aws:dms:us-east-1:123456789012:rep:T3OM7OUB5NM2LCVZF7JPGJRNUE", "MigrationType": "full-load", "TableMappings": ...output omitted... , "ReplicationTaskSettings": ...output omitted... , "Status": "stopped", "StopReason": "Stop Reason FULL_LOAD_ONLY_FINISHED", "ReplicationTaskCreationDate": 1590524772.505, "ReplicationTaskStartDate": 1590619805.212, "ReplicationTaskArn": "arn:aws:dms:us-east-1:123456789012:task:K55IUCGBASJS5VHZJIINA45FII", "ReplicationTaskStats": { "FullLoadProgressPercent": 100, "ElapsedTimeMillis": 0, "TablesLoaded": 0, "TablesLoading": 0, "TablesQueued": 0, "TablesErrored": 0, "FreshStartDate": 1590619811.528, "StartDate": 1590619811.528, "StopDate": 1590619842.068 } } ] }

작업 중 테이블 상태

The AWS DMS콘솔은 마이그레이션 중에 테이블 상태에 관한 정보를 업데이트합니다. 다음 표에는 가능한 상태 값이 나와 있습니다.

AWS Database Migration Service 복제 인스턴스
State 설명

테이블 없음

AWS DMS원본 엔드포인트에서 테이블을 찾을 수 없습니다.

로드 전

전체 로드 프로세스가 활성화되었지만, 아직 시작되지 않았습니다.

전체 로드

전체 로드 프로세스가 진행되고 있습니다.

테이블 완료

전체 로드가 완료되었습니다.

테이블 취소

테이블 로드가 취소되었습니다.

테이블 오류

테이블을 로드하는 동안 오류가 발생했습니다.

Amazon을 사용한 복제 작업 모니터링 CloudWatch

Amazon CloudWatch 알람 또는 이벤트를 사용하여 마이그레이션을 더 면밀히 추적할 수 있습니다. Amazon에 대한 자세한 내용은 Amazon CloudWatch, Amazon CloudWatch CloudWatch 이벤트 및 Amazon CloudWatch 로그란 무엇입니까? 를 참조하십시오. Amazon CloudWatch 사용 설명서에서 확인할 수 있습니다. Amazon 사용 시 요금이 부과된다는 점에 CloudWatch 유의하십시오.

복제 작업으로 CloudWatch 로그가 생성되지 않는 경우 문제 해결 안내서를 참조하십시오AWS DMS 로그를 CloudWatch 생성하지 않습니다..

The AWS DMS 콘솔에는 다음과 같이 작업 상태, 완료율, 경과 시간, 테이블 통계를 비롯한 각 작업에 대한 기본 CloudWatch 통계가 표시됩니다. 복제 작업을 선택한 다음 CloudWatch 지표 탭을 선택합니다.

CloudWatch 작업 로그 설정을 보고 수정하려면 작업 로깅 수정을 선택합니다. 자세한 내용은 작업 설정 로깅 단원을 참조하십시오.

AWS DMS모니터링

더 AWS DMS콘솔은 테이블 통계 탭을 선택하면 삽입, 삭제 및 업데이트 수를 포함하여 각 테이블의 성능 통계를 표시합니다.

AWS DMS모니터링

또한 복제 인스턴스 페이지에서 복제 인스턴스를 선택한 경우 측정 단위 탭을 선택하여 인스턴스에 대한 성능 측정 CloudWatch 단위를 볼 수 있습니다.

AWS DMS모니터링

AWS Database Migration Service 지표

AWS DMS는 다음 항목의 통계를 제공합니다.

  • 호스트 지표 — Amazon에서 제공하는 복제 호스트의 성능 및 사용률 CloudWatch 통계입니다. 사용 가능한 전체 측정치 목록은 복제 인스턴스 지표 섹션을 참조하세요.

  • 복제 태스크 지표 - 들어오는 변경 사항과 커밋된 변경 사항, 복제 호스트와 소스 및 대상 데이터베이스 사이의 지연 시간을 포함한 복제 태스크 통계. 사용 가능한 전체 측정치 목록은 복제 작업 지표 섹션을 참조하세요.

  • 테이블 지표 — 삽입, 업데이트, 삭제 및 완료된 DDL 명령문 수를 포함하여 마이그레이션 진행 중인 테이블에 대한 통계입니다.

작업 지표는 복제 호스트와 원본 엔드포인트 간의 통계, 그리고 복제 호스트와 대상 엔드포인트 간의 통계로 나뉩니다. 관련 통계 2개를 모두 추가하여 작업의 총 통계를 확인할 수 있습니다. 예를 들어, 및 값을 조합하여 작업의 총 지연 시간 또는 복제 지연을 확인할 수 있습니다. CDCLatencySourceCDCLatencyTarget

작업 지표 값은 원본 데이터베이스에서 현재 작업의 영향을 받을 수 있습니다. 예를 들어 트랜잭션이 시작되었지만 커밋되지 않은 경우 해당 트랜잭션이 커밋될 때까지 CDCLatencySource지표는 계속 증가합니다.

복제 인스턴스의 경우 FreeableMemory지표에 대한 설명이 필요합니다. 여유 메모리는 사용 가능한 실제 여유 메모리를 나타내지 않습니다. 해제하여 다른 용도로 사용할 수 있는 현재 사용 중인 메모리로, 여유 복제 인스턴스에 사용 중인 버퍼 및 캐시의 조합입니다.

FreeableMemory지표에 실제 사용 가능한 메모리가 반영되지는 않지만, FreeableMemorySwapUsage측정치를 조합하면 복제 인스턴스가 과부하되었는지 여부를 알 수 있습니다.

다음 조건에 대해 이 두 측정치를 모니터링합니다.

  • FreeableMemory지표가 0에 가까워졌습니다.

  • SwapUsage지표가 증가하거나 변동합니다.

이러한 두 가지 상태 중 하나에 해당하는 경우 이는 대규모 복제 인스턴스로 전환하는 것을 고려해야 함을 나타냅니다. 또한 복제 인스턴스에서 실행 중인 작업 수와 유형을 줄이기는 것도 고려해 보아야 합니다. 전체 로드 작업에는 변경 내용만을 복제하는 작업보다 더 많은 메모리가 요구됩니다.

의 실제 메모리 요구 사항을 대략적으로 추정하려면 AWS DMS 마이그레이션 작업에는 다음 매개변수를 사용할 수 있습니다.

LOB컬럼

마이그레이션 범위 내 각 테이블의 평균 LOB 열 수

[Maximum number of tables to load in parallel]

다음과 같은 최대 테이블 수 AWS DMS 한 작업에서 병렬로 로드됩니다.

기본값은 8입니다.

LOB청크 크기

LOB청크의 크기 (킬로바이트) AWS DMS 대상 데이터베이스에 데이터를 복제하는 데 사용합니다.

전체 로드 중 커밋 비율

다음과 같은 레코드의 최대 수 AWS DMS 병렬로 전송할 수 있습니다.

기본값은 10,000입니다.

LOB사이즈

개인의 LOB 최대 크기 (킬로바이트).

대량 배열 크기

엔드포인트 드라이버에서 가져오거나 처리하는 최대 행 수입니다. 이 값은 드라이버 설정에 따라 달라집니다.

기본값은 1,000입니다.

이러한 값을 결정한 후 다음 방법 중 하나를 사용하여 마이그레이션 태스크에 필요한 메모리 양을 추정할 수 있습니다. 이러한 방법은 마이그레이션 작업의 LOB열 설정에 대해 선택한 옵션에 따라 달라집니다.

  • 전체 LOB 모드의 경우 다음 공식을 사용하십시오.

    Required memory = (LOB columns) * (Maximum number of tables to load in parallel) * (LOB chunk size) * (Commit rate during full load)

    원본 테이블에 평균 2개의 LOB 열이 있고 LOB 청크 크기가 64KB인 경우를 예로 들어 보겠습니다. Maximum number of tables to load in parallelCommit rate during full load에 기본값을 사용하는 경우 태스크에 필요한 메모리 양은 다음과 같습니다.

    Required memory = 2 * 8 * 64 * 10,000 = 10,240,000 KB

    참고

    전체 로드 시 커밋 비율 값을 줄이려면 다음을 여십시오. AWS DMS 콘솔에서 데이터베이스 마이그레이션 작업을 선택하고 작업을 만들거나 수정합니다. 고급 설정을 확장하고 전체 로드 중 커밋 비율 값을 입력합니다.

  • 제한 LOB 모드의 경우 다음 공식을 사용하십시오.

    Required memory = (LOB columns) * (Maximum number of tables to load in parallel) * (LOB size) * (Bulk array size)

    원본 테이블에 평균 2개의 LOB 열이 있고 개인의 LOB 최대 크기가 4,096KB인 경우를 예로 들어 보겠습니다. Maximum number of tables to load in parallelBulk array size에 기본값을 사용하는 경우 태스크에 필요한 메모리 양은 다음과 같습니다.

    Required memory = 2 * 8 * 4,096 * 1,000 = 65,536,000 KB

에 대한 AWS DMS 변환을 최적으로 수행하려면 전환이 발생할 때 를 사용할 수 CPU 있어야 합니다. 과부하가 CPU 걸리고 CPU 리소스가 충분하지 않으면 마이그레이션 속도가 느려질 수 있습니다. AWS DMS 특히 CPU Oracle에서 Postgre로 마이그레이션하는 것과 같은 이기종 마이그레이션 및 복제를 수행할 때 많은 작업이 필요할 수 있습니다. SQL C4 복제 인스턴스 클래스 사용은 이러한 상황에서 훌륭한 선택이 될 수 있습니다. 자세한 내용은 올바른 선택 AWS DMS마이그레이션을 위한 복제 인스턴스 단원을 참조하십시오.

복제 인스턴스 지표

복제 인스턴스 모니터링에는 다음 통계에 대한 Amazon CloudWatch 지표가 포함됩니다.

지표

설명

AvailableMemory

스와핑 없이 새 애플리케이션을 시작하는 데 사용할 수 있는 메모리의 크기. 자세한 내용은 Linux man-pages 페이지의 /proc/memInfo 단원에서 MemAvailable 값을 참조하세요.

단위: 바이트

CPUAllocated

작업에 CPU 최대 할당된 비율입니다 (0은 제한 없음을 의미함).

AWS DMS CloudWatch 콘솔의 ReplicationInstanceIdentiferReplicationTaskIdentifier 크기를 합친 값과 비교하여 이 측정치를 높입니다. ReplicationInstanceIdentifier, ReplicationTaskIdentifier 범주를 사용하여 이 지표를 볼 수 있습니다.

단위: 백분율

CPUUtilization

인스턴스에서 현재 사용 중인 할당된 v CPU (가상CPU) 의 비율입니다.

단위: 백분율

DiskQueueDepth

디스크 액세스를 대기 중인 읽기/쓰기 요청(I/O) 수입니다.

단위: 개

FreeStorageSpace

사용 가능한 스토리지 공간 크기입니다.

단위: 바이트

FreeMemory

애플리케이션, 페이지 캐시, 커널 자체 데이터 구조에서 사용할 수 있는 물리적 메모리의 양입니다. 자세한 내용은 Linux man-pages 페이지의 /proc/memInfo 단원에서 MemFree 값을 참조하세요.

단위: 바이트

FreeableMemory

사용 가능한 RAM 크기입니다.

단위: 바이트

MemoryAllocated

태스크에 대한 최대 메모리 할당량입니다(0은 제한이 없음을 의미함).

AWS DMS CloudWatch 콘솔의 ReplicationInstanceIdentiferReplicationTaskIdentifier 크기를 합친 값과 비교하여 이 측정치를 높입니다. ReplicationInstanceIdentifier, ReplicationTaskIdentifier 범주를 사용하여 이 지표를 볼 수 있습니다.

단위: MiB

쓰기 IOPS

초당 평균 디스크 쓰기 I/O 연산 수

단위: 개수/초

읽기 IOPS

초당 평균 디스크 읽기 I/O 연산 수

단위: 개수/초

WriteThroughput

초당 디스크에 쓴 평균 바이트 수.

단위: 바이트/초

ReadThroughput

초당 디스크에서 읽은 평균 바이트 수입니다.

단위: 바이트/초

WriteLatency

디스크 I/O (출력) 연산당 평균 처리 시간.

단위: 밀리초

ReadLatency

디스크 I/O (입력) 연산당 평균 처리 시간.

단위: 밀리초

SwapUsage

복제 인스턴스에서 사용된 스왑 공간 크기.

단위: 바이트

NetworkTransmitThroughput

복제 인스턴스의 발신 (전송) 네트워크 트래픽 (고객 데이터베이스 트래픽 및 AWS DMS 모니터링 및 복제에 사용되는 트래픽.

단위: 바이트/초

NetworkReceiveThroughput

복제 인스턴스에서 들어오는 (수신) 네트워크 트래픽 (고객 데이터베이스 트래픽 및 AWS DMS 모니터링 및 복제에 사용되는 트래픽.

단위: 바이트/초

복제 작업 지표

복제 태스크 모니터링에는 다음 통계의 지표가 포함됩니다.

지표

설명

FullLoadThroughputBandwidthTarget

대상 전체 로드의 발신 데이터(초당 KB 단위).

FullLoadThroughputRowsTarget

대상 전체 로드의 발신 변경 사항(초당 행 수 단위).

CDCIncomingChanges

a에서 대상에 적용되기를 기다리고 point-in-time 있는 변경 이벤트의 총 수입니다. 이 값은 소스 엔드포인트의 트랜잭션 변경 비율 측정치와 같지 않습니다. 일반적으로 이 지표의 숫자가 크면 다음을 나타냅니다. AWS DMS 캡처된 변경 사항을 적시에 적용할 수 없으므로 대상 지연 시간이 길어집니다.

CDCChangesMemorySource

메모리에서 누적되면서 원본에서 커밋되기를 대기하는 행 개수. 이 지표는 와 함께 볼 수 CDCChangesDiskSource 있습니다.

CDCChangesMemoryTarget

메모리에서 누적되면서 대상으로 커밋되기를 대기하는 행 개수. 이 지표는 와 함께 볼 수 CDCChangesDiskTarget 있습니다.

CDCChangesDiskSource

디스크에서 누적되면서 원본에서 커밋되기를 대기하는 행 개수. 이 지표는 와 함께 볼 수 CDCChangesMemorySource 있습니다.

CDCChangesDiskTarget

디스크에서 누적되면서 대상으로 커밋되기를 대기하는 행 개수. 이 지표는 와 함께 볼 수 CDCChangesMemoryTarget 있습니다.

CDCThroughputBandwidthTarget

대상의 발신 데이터(초당 KB 단위). CDCThroughputBandwidth샘플링 포인트에서 전송된 송신 데이터를 기록합니다. 어떠한 태스크 네트워크 트래픽도 찾을 수 없다면 이 값은 0입니다. 장기 실행 트랜잭션을 발행하지 CDC 않기 때문에 네트워크 트래픽이 기록되지 않을 수 있습니다.

CDCThroughputRowsSource

원본의 수신 작업 수신 변경 사항 개수(초당 행 수 단위).

CDCThroughputRowsTarget

대상의 발신 작업 변경 사항 개수(초당 행 수 단위).

CDCLatencySource

소스 엔드포인트에서 캡처한 마지막 이벤트와 현재 시스템 타임스탬프 사이의 간격 (초) AWS DMS 인스턴스. CDCLatencySource소스 인스턴스와 복제 인스턴스 간의 지연 시간을 나타냅니다. 높으면 소스에서 변경 내용을 캡처하는 프로세스가 지연됨을 CDCLatencySource 의미합니다. 진행 중인 복제의 지연 시간을 식별하려면 이 지표를 와 CDCLatencyTarget 함께 볼 수 있습니다. CDCLatencyTarget둘 CDCLatencySource 다 높으면 CDCLatencySource 먼저 조사하세요.

CDCSourceLatency원본과 복제 인스턴스 간에 복제 지연이 없는 경우 0이 될 수 있습니다. CDCSourceLatency또한 복제 작업이 원본의 트랜잭션 로그에서 다음 이벤트를 읽으려고 시도하고 원본에서 마지막으로 읽은 시간과 비교하여 새 이벤트가 없는 경우에도 0이 될 수 있습니다. 이 경우 작업은 CDCSourceLatency 를 0으로 재설정합니다.

CDCLatencyTarget

타겟에서 커밋을 기다리는 첫 번째 이벤트 타임스탬프와 타겟의 현재 타임스탬프 사이의 간격 (초) AWS DMS 인스턴스. 대상 지연 시간은 복제 인스턴스 서버 시간과 대상 구성 요소에 전달된 확인되지 않은 가장 오래된 이벤트 ID 간의 차이입니다. 즉, 대상 지연 시간은 복제 인스턴스와 적용되었지만 TRG 엔드포인트에서 확인되지 않은 가장 오래된 이벤트 (99%) 간의 타임스탬프 차이입니다. CDCLatencyTarget이 높으면 대상에 변경 이벤트를 적용하는 프로세스가 지연되었음을 나타냅니다. 진행 중인 복제의 지연 시간을 식별하기 위해 이 지표를 와 함께 볼 수 CDCLatencySource 있습니다. 높지만 CDCLatencyTarget 높지는 CDCLatencySource 않은 경우 다음을 조사하십시오.

  • 대상에 프라이머리 키 또는 인덱스가 없음

  • 대상 또는 복제 인스턴스에서 리소스 병목 현상이 발생함

  • 복제 인스턴스와 대상 사이에 네트워크 문제가 있음

CPUUtilization

여러 코어에 걸친 태스크의 CPU 사용 비율. 작업의 CPUUtilization 의미는 복제와 약간 다릅니다. CPUUtilizaiton 1 CPU v를 완전히 사용하면 100% 를 나타내지만 여러 개를 사용하는 경우에는 vCPUs 값이 100% 를 초과할 수 있습니다.

단위: 백분율

SwapUsage

태스크가 사용하는 스왑의 양.

단위: 바이트

MemoryUsage

태스크에서 소비한 제어 그룹(cgroup) memory.usage_in_bytes DMScgroups를 사용하여 메모리 및 CPU 같은 시스템 리소스 사용량을 제어합니다. 이 지표는 해당 태스크에 할당된 cgroup 내에서 태스크의 메모리 사용량을 메가바이트 단위로 나타냅니다. cgroup 한도는 DMS 복제 인스턴스 클래스에 사용할 수 있는 리소스를 기반으로 합니다. memory.usage_in_bytes는 상주 세트 크기 ()RSS, 캐시 및 메모리의 스왑 구성 요소로 구성됩니다. 필요한 경우 운영 체제가 캐시 메모리를 회수할 수 있습니다. 복제 인스턴스 측정치, 도 모니터링하는 것이 좋습니다. AvailableMemory

AWS DMS CloudWatch 콘솔의 ReplicationInstanceIdentiferReplicationTaskIdentifier 크기를 합친 값과 비교하여 이 측정치를 높입니다. ReplicationInstanceIdentifier, ReplicationTaskIdentifier 범주를 사용하여 이 지표를 볼 수 있습니다.

보기 및 관리 AWS DMS태스크 로그

CloudWatch Amazon을 사용하여 작업 정보를 기록할 수 있습니다. AWS DMS 마이그레이션 프로세스. 작업 설정을 선택할 때 로깅을 활성화합니다. 자세한 내용은 작업 설정 로깅 단원을 참조하십시오.

실행된 작업의 로그를 보려면 다음 단계를 따르세요.

  1. 열기 AWS DMS 콘솔을 선택하고 탐색 창에서 데이터베이스 마이그레이션 작업을 선택합니다. 데이터베이스 마이그레이션 태스크 대화 상자가 나타납니다.

  2. 작업 이름을 선택합니다. 개요 세부 정보 대화 상자가 나타납니다.

  3. 마이그레이션 작업 로그 섹션을 찾아 CloudWatch 로그 보기를 선택합니다.

또한 다음을 사용할 수 있습니다. AWS CLI 또는 AWS DMS API작업 로그에 대한 정보를 보려면 이렇게 하려면 다음을 사용하십시오. describe-replication-instance-task-logs AWS CLI 명령 또는 AWS DMS API액션DescribeReplicationInstanceTaskLogs.

예를 들어, 다음과 같습니다. AWS CLI 명령은 작업 로그 메타데이터를 JSON 형식으로 표시합니다.

$ aws dms describe-replication-instance-task-logs \ --replication-instance-arn arn:aws:dms:us-east-1:237565436:rep:CDSFSFSFFFSSUFCAY

명령의 샘플 응답은 다음과 같습니다.

{ "ReplicationInstanceTaskLogs": [ { "ReplicationTaskArn": "arn:aws:dms:us-east-1:237565436:task:MY34U6Z4MSY52GRTIX3O4AY", "ReplicationTaskName": "mysql-to-ddb", "ReplicationInstanceTaskLogSize": 3726134 } ], "ReplicationInstanceArn": "arn:aws:dms:us-east-1:237565436:rep:CDSFSFSFFFSSUFCAY" }

이 응답에 복제 인스턴스와 관련된 한 가지 작업 로그(mysql-to-ddb)가 있습니다. 이 로그의 크기는 3,726,124바이트입니다.

describe-replication-instance-task-logs에서 반환한 정보를 사용하여 작업 로그 문제를 진단하고 해결할 수 있습니다. 예를 들어, 태스크의 상세 디버그 로깅을 활성화하면 태스크 로그가 빠르게 증가하게 되어 복제 인스턴스에서 사용 가능한 스토리지를 모두 소비하고 인스턴스 상태가 storage-full로 변경될 수 있습니다. 작업 로그를 기술하면 더 이상 필요 없는 항목을 파악해 삭제하여 스토리지 공간을 확보할 수 있습니다.

작업의 작업 로그를 삭제하려면 작업 설정 DeleteTaskLogs를 true로 설정하세요. 예를 들어, 다음은 를 사용하여 작업을 수정할 때 작업 로그를 JSON 삭제합니다. AWS CLI modify-replication-task명령 또는 AWS DMS APIModifyReplicationTask액션.

{ "Logging": { "DeleteTaskLogs":true } }
참고

각 복제 인스턴스에 대해 AWS DMS 10일이 지난 로그를 삭제합니다.

로깅 AWS DMS API다음과 같은 전화 AWS CloudTrail

AWS DMS 다음과 통합되어 있습니다. AWS CloudTrail, 사용자, 역할 또는 담당자가 수행한 작업의 기록을 제공하는 서비스 AWS 의 서비스 AWS DMS. CloudTrail 에 대한 모든 API 통화를 캡처합니다. AWS DMS 에서 걸려오는 전화를 포함한 이벤트로 AWS DMS 콘솔 및 코드 호출에서 AWS DMS API오퍼레이션. 트레일을 생성하면 다음과 같은 이벤트를 포함하여 Amazon S3 버킷으로 CloudTrail 이벤트를 지속적으로 전송할 수 있습니다. AWS DMS. 트레일을 구성하지 않아도 CloudTrail 콘솔의 이벤트 기록에서 가장 최근 이벤트를 계속 볼 수 있습니다. 에서 수집한 CloudTrail 정보를 사용하여 어떤 요청을 받았는지 확인할 수 있습니다. AWS DMS, 요청이 이루어진 IP 주소, 요청한 사람, 요청 시기 및 추가 세부 정보.

자세한 내용은 CloudTrail 다음을 참조하십시오. AWS CloudTrail 사용자 가이드.

AWS DMS 의 정보 CloudTrail

CloudTrail 사용자 계정에서 활성화되어 있습니다. AWS 계정 생성 시 계정. 에서 활동이 발생하는 경우 AWS DMS해당 활동은 다른 CloudTrail 이벤트와 함께 이벤트에 기록됩니다. AWS 이벤트 기록의 서비스 이벤트. 내 사이트에서 최근 이벤트를 보고, 검색하고, 다운로드할 수 있습니다. AWS 계정. 자세한 내용은 이벤트 기록으로 CloudTrail 이벤트 보기를 참조하십시오.

내 이벤트의 진행 중인 기록을 보려면 AWS 계정 (이벤트 포함) AWS DMS, 트레일을 만드세요. 트레일을 사용하면 CloudTrail Amazon S3 버킷으로 로그 파일을 전송할 수 있습니다. 기본적으로 콘솔에서 트레일을 생성하면 트레일이 모든 사용자에게 적용됩니다. AWS 지역. 트레일은 모든 이벤트를 기록합니다. AWS 내 지역 AWS 지정한 Amazon S3 버킷으로 로그 파일을 분할하고 전송합니다. 또한 다른 항목을 구성할 수 있습니다. AWS CloudTrail 로그에서 수집된 이벤트 데이터를 추가로 분석하고 이에 따라 조치를 취하기 위한 서비스입니다. 자세한 내용은 다음을 참조하세요.

모두 AWS DMS 활동은 다음에 CloudTrail 기록되고 문서화됩니다. AWS Database Migration Service API참조. 예를 들어,,CreateReplicationInstance, TestConnectionStartReplicationTask 호출하면 CloudTrail 로그 파일에 항목이 생성됩니다.

모든 이벤트 및 로그 항목에는 요청을 생성한 사용자에 대한 정보가 들어 있습니다. 보안 인증 정보를 이용하면 다음을 쉽게 판단할 수 있습니다.

  • 요청이 루트 또는 IAM 사용자 자격 증명으로 이루어졌는지 여부.

  • 역할 또는 페더레이션 사용자에 대한 임시 보안 보안 인증을 사용하여 요청이 생성되었는지 여부.

  • 다른 사람이 요청했는지 여부 AWS 서비스.

자세한 내용은 CloudTrail userIdentity요소를 참조하십시오.

이해 AWS DMS 로그 파일 항목

트레일은 지정한 Amazon S3 버킷에 이벤트를 로그 파일로 전송할 수 있는 구성입니다. CloudTrail 로그 파일은 하나 이상의 로그 항목을 포함합니다. 이벤트는 모든 소스의 단일 요청을 나타내며 요청된 작업, 작업 날짜 및 시간, 요청 매개 변수 등에 대한 정보를 포함합니다. CloudTrail 로그 파일은 공개 API 호출의 정렬된 스택 트레이스가 아니므로 특정 순서로 표시되지 않습니다.

다음 예제는 RebootReplicationInstance 작업을 보여주는 CloudTrail 로그 항목을 보여줍니다.

{ "eventVersion": "1.05", "userIdentity": { "type": "AssumedRole", "principalId": "AKIAIOSFODNN7EXAMPLE:johndoe", "arn": "arn:aws:sts::123456789012:assumed-role/admin/johndoe", "accountId": "123456789012", "accessKeyId": "ASIAYFI33SINADOJJEZW", "sessionContext": { "attributes": { "mfaAuthenticated": "false", "creationDate": "2018-08-01T16:42:09Z" }, "sessionIssuer": { "type": "Role", "principalId": "AKIAIOSFODNN7EXAMPLE", "arn": "arn:aws:iam::123456789012:role/admin", "accountId": "123456789012", "userName": "admin" } } }, "eventTime": "2018-08-02T00:11:44Z", "eventSource": "dms.amazonaws.com", "eventName": "RebootReplicationInstance", "awsRegion": "us-east-1", "sourceIPAddress": "72.21.198.64", "userAgent": "console.amazonaws.com", "requestParameters": { "forceFailover": false, "replicationInstanceArn": "arn:aws:dms:us-east-1:123456789012:rep:EX4MBJ2NMRDL3BMAYJOXUGYPUE" }, "responseElements": { "replicationInstance": { "replicationInstanceIdentifier": "replication-instance-1", "replicationInstanceStatus": "rebooting", "allocatedStorage": 50, "replicationInstancePrivateIpAddresses": [ "172.31.20.204" ], "instanceCreateTime": "Aug 1, 2018 11:56:21 PM", "autoMinorVersionUpgrade": true, "engineVersion": "2.4.3", "publiclyAccessible": true, "replicationInstanceClass": "dms.t2.medium", "availabilityZone": "us-east-1b", "kmsKeyId": "arn:aws:kms:us-east-1:123456789012:key/f7bc0f8e-1a3a-4ace-9faa-e8494fa3921a", "replicationSubnetGroup": { "vpcId": "vpc-1f6a9c6a", "subnetGroupStatus": "Complete", "replicationSubnetGroupArn": "arn:aws:dms:us-east-1:123456789012:subgrp:EDHRVRBAAAPONQAIYWP4NUW22M", "subnets": [ { "subnetIdentifier": "subnet-cbfff283", "subnetAvailabilityZone": { "name": "us-east-1b" }, "subnetStatus": "Active" }, { "subnetIdentifier": "subnet-d7c825e8", "subnetAvailabilityZone": { "name": "us-east-1e" }, "subnetStatus": "Active" }, { "subnetIdentifier": "subnet-6746046b", "subnetAvailabilityZone": { "name": "us-east-1f" }, "subnetStatus": "Active" }, { "subnetIdentifier": "subnet-bac383e0", "subnetAvailabilityZone": { "name": "us-east-1c" }, "subnetStatus": "Active" }, { "subnetIdentifier": "subnet-42599426", "subnetAvailabilityZone": { "name": "us-east-1d" }, "subnetStatus": "Active" }, { "subnetIdentifier": "subnet-da327bf6", "subnetAvailabilityZone": { "name": "us-east-1a" }, "subnetStatus": "Active" } ], "replicationSubnetGroupIdentifier": "default-vpc-1f6a9c6a", "replicationSubnetGroupDescription": "default group created by console for vpc id vpc-1f6a9c6a" }, "replicationInstanceEniId": "eni-0d6db8c7137cb9844", "vpcSecurityGroups": [ { "vpcSecurityGroupId": "sg-f839b688", "status": "active" } ], "pendingModifiedValues": {}, "replicationInstancePublicIpAddresses": [ "18.211.48.119" ], "replicationInstancePublicIpAddress": "18.211.48.119", "preferredMaintenanceWindow": "fri:22:44-fri:23:14", "replicationInstanceArn": "arn:aws:dms:us-east-1:123456789012:rep:EX4MBJ2NMRDL3BMAYJOXUGYPUE", "replicationInstanceEniIds": [ "eni-0d6db8c7137cb9844" ], "multiAZ": false, "replicationInstancePrivateIpAddress": "172.31.20.204", "patchingPrecedence": 0 } }, "requestID": "a3c83c11-95e8-11e8-9d08-4b8f2b45bfd5", "eventID": "b3c4adb1-e34b-4744-bdeb-35528062a541", "eventType": "AwsApiCall", "recipientAccountId": "123456789012" }

AWS DMS 컨텍스트 로깅

AWS DMS 컨텍스트 로깅을 사용하여 진행 중인 마이그레이션에 대한 정보를 제공합니다. 컨텍스트 로깅은 다음과 같은 정보를 작업 CloudWatch 로그에 기록합니다.

  • 태스크의 소스 및 대상 데이터베이스 연결에 대한 정보.

  • 복제 태스크 동작. 태스크 로그를 사용하여 복제 문제를 진단할 수 있습니다.

  • SQL다음과 같은 데이터가 없는 명령문 AWS DMS 소스 및 대상 데이터베이스에서 실행됩니다. SQL로그를 사용하여 예상치 못한 마이그레이션 동작을 진단할 수 있습니다.

  • 각 CDC 이벤트의 위치 세부 정보를 스트리밍할 수 있습니다.

컨텍스트 로깅은 다음에서만 사용할 수 있습니다. AWS DMS 버전 3.5.0 이상

AWS DMS 기본적으로 컨텍스트 로깅을 활성화합니다. 컨텍스트 로깅을 제어하려면 EnableLogContext 태스크 설정을 true 또는 false로 설정하거나 콘솔에서 태스크를 수정합니다.

AWS DMS 3분마다 컨텍스트 CloudWatch 로그 정보를 로그의 복제 작업에 씁니다. 복제 인스턴스에 애플리케이션 로그를 위한 충분한 공간이 있는지 확인하세요. 태스크 로그 관리에 대한 자세한 내용은 보기 및 관리 AWS DMS태스크 로그 섹션을 참조하세요.

객체 유형

AWS DMS 다음 객체 유형에 CloudWatch 대한 컨텍스트 로그인을 생성합니다.

객체 유형 설명
TABLE_NAME 이러한 로그 항목에는 현재 태스크 매핑 규칙의 범위 내에 있는 테이블에 대한 정보가 들어 있습니다. 이러한 항목을 사용하여 마이그레이션 중 특정 기간 동안의 테이블 이벤트를 검사할 수 있습니다.
SCHEMA_NAME 이러한 로그 항목에는 현재 태스크 매핑 규칙에서 사용하는 스키마에 대한 정보가 들어 있습니다. 이러한 항목을 사용하여 어떤 스키마를 결정할 수 있습니다. AWS DMS 마이그레이션 중 특정 기간 동안 사용됩니다.
TRANSACTION_ID 이러한 항목에는 원본 데이터베이스에서 캡처한 각 DML DDL /변경에 대한 트랜잭션 ID가 포함됩니다. 이러한 로그 항목을 사용하여 특정 트랜잭션 중에 발생한 변경 사항을 확인할 수 있습니다.
CONNECTION_ID 이러한 항목에는 연결 ID가 포함됩니다. 이러한 로그 항목을 사용하여 어떤 연결을 확인할 수 있습니다. AWS DMS 각 마이그레이션 단계에서 사용합니다.
STATEMENT 이러한 항목에는 각 마이그레이션 변경 사항을 가져오고, 처리하고, 적용하는 데 사용되는 SQL 코드가 포함됩니다.
STREAM_POSITION 이러한 항목에는 소스 데이터베이스에 대한 각 마이그레이션 작업의 트랜잭션 로그 파일 내 위치가 포함됩니다. 이러한 항목의 형식은 소스 데이터베이스 엔진 유형에 따라 다릅니다. 복제만 구성하는 경우 이 정보를 사용하여 복구 체크포인트의 시작 위치를 결정할 수도 있습니다CDC.

로깅 예제

이 섹션에는 복제를 모니터링하고 복제 문제를 진단하는 데 사용할 수 있는 로그 레코드 예제가 포함되어 있습니다.

연결 로그 예제

이 섹션에는 연결이 IDs 포함된 로그 샘플이 포함되어 있습니다.

2023-02-22T10:09:29 [SOURCE_CAPTURE ]I: Capture record 1 to internal queue from Source {operation:START_REGULAR (43), connectionId:27598, streamPosition:0000124A/6800A778.NOW} (streamcomponent.c:2920) 2023-02-22T10:12:30 [SOURCE_CAPTURE ]I: Capture record 0 to internal queue from Source {operation:IDLE (51), connectionId:27598} (streamcomponent.c:2920) 2023-02-22T11:25:27 [SOURCE_CAPTURE ]I: Capture record 0 to internal queue from Source {operation:IDLE (51), columnName:region, connectionId:27598} (streamcomponent.c:2920)

태스크 동작 로그 예제

이 섹션에는 복제 태스크 로그 동작에 대한 로그 샘플이 포함되어 있습니다. 이 정보를 사용하여 IDLE 상태의 태스크와 같은 복제 문제를 진단할 수 있습니다.

다음 SOURCE_CAPTURE 로그는 원본 데이터베이스 로그 파일에서 읽을 수 있는 이벤트가 없음을 나타내며, 수신된 이벤트가 없음을 나타내는 TARGET_APPLY 레코드를 포함합니다. AWS DMS CDC대상 데이터베이스에 적용할 구성 요소. 이러한 이벤트에는 이전에 적용된 이벤트 관련 컨텍스트 세부 정보도 포함됩니다.

2023-02-22T11:23:24 [SOURCE_CAPTURE ]I: No Event fetched from wal log (postgres_endpoint_wal_engine.c:1369) 2023-02-22T11:24:29 [TARGET_APPLY ]I: No records received to load or apply on target , waiting for data from upstream. The last context is {operation:INSERT (1), tableName:sales_11, schemaName:public, txnId:18662441, connectionId:17855, statement:INSERT INTO "public"."sales_11"("sales_no","dept_name","sale_amount","sale_date","region") values (?,?,?,?,?),

SQL명령문 로그 예제

이 섹션에는 소스 및 대상 데이터베이스에서 실행되는 SQL 명령문에 대한 로그 샘플이 포함되어 있습니다. 로그에 표시되는 SQL 명령문에는 SQL 명령문만 표시되고 데이터는 표시되지 않습니다. 다음 TARGET_APPLY 로그는 대상에서 실행된 INSERT 문을 보여줍니다.

2023-02-22T11:26:07 [TARGET_APPLY ]I: Applied record 2193305 to target {operation:INSERT (1), tableName:sales_111, schemaName:public, txnId:18761543, connectionId:17855, statement:INSERT INTO "public"."sales_111"("sales_no","dept_name","sale_amount","sale_date","region") values (?,?,?,?,?),

제한 사항

다음 제한 사항이 적용됩니다. AWS DMS 컨텍스트 로깅:

  • 동안 AWS DMS 모든 엔드포인트 유형에 대해 최소 로깅을 생성하지만, 광범위한 엔진별 컨텍스트 로깅은 다음 엔드포인트 유형에만 사용할 수 있습니다. 이러한 엔드포인트 유형을 사용할 때는 컨텍스트 로깅을 활성화하는 것이 좋습니다.

    • 내 SQL

    • 포스트그레 SQL

    • Oracle

    • 마이크로소프트 SQL 서버

    • MongoDB/Amazon DocumentDB

    • Amazon S3