기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
모니터링은 AWS DMS 및 AWS 솔루션의 안정성, 가용성 및 성능을 유지하는 데 중요한 부분입니다. 다중 지점 장애가 발생할 경우 더 쉽게 디버깅할 수 있도록 AWS 솔루션의 모든 부분에서 모니터링 데이터를 수집해야 합니다.는 AWS DMS 작업 및 리소스를 모니터링하고 잠재적 인시던트에 대응하기 위한 여러 도구를 AWS 제공합니다.
- AWS DMS 이벤트 및 알림
-
AWS DMS 는 Amazon Simple Notification Service(Amazon SNS)를 사용하여 복제 인스턴스의 생성 또는 삭제와 같은 AWS DMS 이벤트가 발생할 때 알림을 제공합니다.는 이벤트를 구독할 수 있는 범주로 AWS DMS 그룹화하므로 해당 범주의 이벤트가 발생할 때 알림을 받을 수 있습니다. 예를 들어 임의의 복제 인스턴스에 대한 생성 카테고리를 구독할 경우 생성 관련 이벤트가 발생하여 복제 인스턴스에 영향을 끼칠 때마다 알림 메시지가 수신됩니다. 이메일 메시지, 문자 메시지 또는 HTTP 엔드포인트 호출과 같이 AWS 리전에 SNS 대해 Amazon에서 지원하는 모든 형식으로 이러한 알림을 사용할 수 있습니다. 자세한 내용은 AWS Database Migration Service에서 Amazon SNS 이벤트 및 알림 사용 단원을 참조하세요.
- 작업 상태
-
작업 상태를 확인하고 작업의 제어 테이블을 확인하여 작업 진행률을 모니터링할 수 있습니다. 작업 상태는 AWS DMS 작업의 조건과 관련 리소스를 나타냅니다. 여기에는 작업이 생성, 시작, 실행 또는 중지되는 경우와 같은 표시가 포함됩니다. 또한 테이블 전체 로드가 시작되었거나 진행 중인 경우와 같이 작업이 마이그레이션하는 테이블의 현재 상태와 테이블에서 발생한 삽입, 삭제 및 업데이트 횟수와 같은 세부 정보가 포함됩니다. 작업 및 작업 리소스 상태 모니터링에 대한 자세한 내용은 작업 상태 및 작업 중 테이블 상태 섹션을 참조하세요. 제어 테이블에 대한 자세한 내용은 제어 테이블 작업 설정 섹션을 참조하세요.
- Amazon CloudWatch 경보 및 로그
-
Amazon CloudWatch 경보를 사용하면 지정한 기간 동안 하나 이상의 작업 지표를 볼 수 있습니다. 지표가 지정된 임계값을 초과하면 Amazon SNS 주제로 알림이 전송됩니다. CloudWatch 경보는 특정 상태이므로 작업을 호출하지 않습니다. 대신 상태가 변경되어 지정된 기간 동안 유지되어야 합니다. AWS DMS 또한는를 사용하여 CloudWatch 마이그레이션 프로세스 중에 작업 정보를 로깅합니다. 또는 AWS DMS API를 AWS CLI 사용하여 작업 로그에 대한 정보를 볼 수 있습니다. CloudWatch 와 함께를 사용하는 방법에 대한 자세한 내용은 섹션을 AWS DMS참조하세요Amazon을 사용하여 복제 작업 모니터링 CloudWatch. AWS DMS 지표 모니터링에 대한 자세한 내용은 섹션을 참조하세요AWS Database Migration Service 지표. AWS DMS 작업 로그 사용에 대한 자세한 내용은 섹션을 참조하세요AWS DMS 작업 로그 보기 및 관리.
- Time Travel 로그
-
복제 작업을 로깅하고 디버깅하려면 AWS DMS Time Travel을 사용할 수 있습니다. 이 방식에서는 Amazon S3를 사용하여 로그를 저장하고 암호화 키를 사용하여 로그를 암호화합니다. 날짜-시간 필터를 사용하여 S3 로그를 검색한 다음, 필요에 따라 로그를 보고 다운로드하고 난독화할 수 있습니다. 이렇게 하면 ‘과거로 이동’하여 데이터베이스 활동을 조사할 수 있습니다.
DMS지원되는 PostgreSQL 소스 엔드포인트와 지원되는 DMSPostgreSQL 및 내SQL 대상 엔드포인트에서 Time Travel을 사용할 수 있습니다. 전체 로드 및 CDC 작업과 CDC 작업에만 Time Travel을 켤 수 있습니다. 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. 추적을 생성하는 경우에 대한 CloudTrail 이벤트를 포함하여 Amazon S3 버킷으로 이벤트를 지속적으로 전송할 수 있습니다 AWS DMS. 추적을 구성하지 않은 경우에도 CloudTrail 콘솔의 이벤트 기록에서 최신 이벤트를 볼 수 있습니다. 에서 수집한 정보를 사용하여에 수행된 요청 CloudTrail, 요청이 수행된 AWS DMS IP 주소, 요청을 수행한 사람, 요청이 수행된 시간 및 추가 세부 정보를 확인할 수 있습니다. 자세한 내용은 를 사용하여 통화 로깅 AWS DMS API AWS CloudTrail 단원을 참조하십시오.
- 데이터베이스 로그
-
AWS Management Console AWS CLI또는 데이터베이스 서비스에 대한를 사용하여 작업 엔드포인트의 AWS 데이터베이스 로그API를 보고, 다운로드하고, 볼 수 있습니다. 자세한 내용은 AWS 설명서에서 해당 데이터베이스 서비스 설명서를 참조하세요.
자세한 정보는 다음 주제를 참조하세요.
주제
작업 상태
태스크 상태는 말 그대로 태스크의 상태를 나타냅니다. 다음 테이블은 작업이 가질 수 있는 가능한 상태를 나타냅니다.
작업 상태 | 설명 |
---|---|
[생성 중] |
AWS DMS 가 작업을 생성합니다. |
[실행 중] |
작업이 지정된 마이그레이션 업무를 수행하고 있습니다. |
[중지됨] |
작업이 중지됩니다. |
[중지 중] |
작업이 중지되고 있습니다. 대개 작업에서 사용자 개입을 나타냅니다. |
[삭제 중] |
보통 사용자 개입 요청을 통해 작업이 삭제되고 있습니다. |
실패 |
작업에 실패했습니다. 자세한 내용은 태스크 로그 파일을 참조하세요. |
오류 |
오류로 인해 태스크가 중지되었습니다. 태스크 오류에 대한 간략한 설명은 개요 탭의 마지막 실패 메시지 섹션에 나와 있습니다. |
실행 중(오류 포함) |
태스크가 오류 상태로 실행 중입니다. 이는 일반적으로 태스크에 있는 하나 이상의 테이블을 마이그레이션할 수 없음을 나타냅니다. 태스크는 선택 규칙에 따라 다른 테이블을 계속 로드합니다. |
[시작됨] |
작업이 복제 인스턴스와 원본 및 대상 엔드포인트에 연결되고 있습니다. 모든 필터와 변환이 적용되고 있습니다. |
[준비됨] |
작업을 실행할 준비가 되어 있습니다. 이 상태 다음에는 대개 "생성" 상태가 나옵니다. |
수정 중 |
작업이 수정되고 있습니다. 대개 작업 설정을 수정한 사용자 작업으로 인한 것입니다. |
이동 중 |
태스크가 다른 복제 인스턴스로 이동하는 중입니다. 이동이 완료될 때까지 복제는 이 상태로 유지됩니다. 복제 태스크가 이동 중인 동안에는 태스크 삭제 작업만 허용됩니다. |
이동 실패 |
어떤 이유로든 태스크 이동이 실패했습니다(예: 대상 복제 인스턴스에 스토리지 공간이 부족). 복제 태스크가 이 상태일 때는 태스크를 시작, 수정, 이동 또는 삭제할 수 있습니다. |
테스트 |
이 작업에 지정된 데이터베이스 마이그레이션은 StartReplicationTaskAssessmentRun 또는 StartReplicationTaskAssessment 작업을 실행하는 것에 대한 응답으로 테스트되고 있습니다. |
작업 상태 표시줄은 작업 진행률의 추정치를 나타냅니다. 이 추정치의 품질은 소스 데이터베이스의 테이블 통계 품질에 따라 달라지며, 테이블 통계 품질이 좋을수록 추정 정확도가 높아집니다. 추정 행 통계 없이 단 하나의 테이블을 사용하는 작업의 경우, 모든 유형의 완료율 추정치를 제공할 수 없습니다. 이 경우에 작업 상태와 로드되는 행 표시를 사용하여 작업이 실제로 실행되고 진행되고 있음을 확인할 수 있습니다.
DMS 콘솔의 “마지막 업데이트” 열에는 테이블에 대한 테이블 통계 레코드를 마지막으로 업데이트한 AWS DMS 시간만 표시됩니다. 테이블에 대한 마지막 업데이트 시간을 표시하지 않습니다.
DMS콘솔을 사용하는 것 외에도 다음 예제와 AWS CLI같이의 aws dms describe-replication-tasks
명령을 사용하여 작업 상태를 포함한 현재 복제 작업에 대한 설명을 출력할 수 있습니다.
{
"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
}
}
]
}
작업 중 테이블 상태
AWS DMS 콘솔은 마이그레이션 중에 테이블 상태에 대한 정보를 업데이트합니다. 다음 표에는 가능한 상태 값이 나와 있습니다.

State | 설명 |
---|---|
테이블 없음 |
AWS DMS에서 소스 엔드포인트로부터 테이블을 찾을 수 없습니다. |
로드 전 |
전체 로드 프로세스가 활성화되었지만, 아직 시작되지 않았습니다. |
전체 로드 |
전체 로드 프로세스가 진행되고 있습니다. |
테이블 완료 |
전체 로드가 완료되었습니다. |
테이블 취소 |
테이블 로드가 취소되었습니다. |
테이블 오류 |
테이블을 로드하는 동안 오류가 발생했습니다. |
Amazon을 사용하여 복제 작업 모니터링 CloudWatch
Amazon CloudWatch 경보 또는 이벤트를 사용하여 마이그레이션을 더 자세히 추적할 수 있습니다. Amazon에 대한 자세한 내용은 Amazon CloudWatch 사용 설명서의 Amazon, CloudWatchAmazon CloudWatch Events 및 Amazon CloudWatch Logs란 무엇입니까?를 CloudWatch참조하세요. Amazon 사용에는 요금이 부과됩니다 CloudWatch.
복제 작업이 CloudWatch 로그를 생성하지 않는 경우 문제 해결 안내서AWS DMS가 CloudWatch 로그를 생성하지 않음의 섹션을 참조하세요.
AWS DMS 콘솔에는 다음과 같이 작업 상태, 완료율, 경과 시간 및 테이블 CloudWatch 통계를 포함하여 각 작업에 대한 기본 통계가 표시됩니다. 복제 작업을 선택한 다음 CloudWatch 지표 탭을 선택합니다.
CloudWatch 작업 로그 설정을 보고 수정하려면 작업 로깅 수정을 선택합니다. 자세한 내용은 작업 설정 로깅 단원을 참조하십시오.

AWS DMS 콘솔에서 테이블 통계 탭을 선택하면 삽입, 삭제, 업데이트 개수 등 각 테이블별로 성능 통계가 표시됩니다.

또한 복제 인스턴스 페이지에서 복제 인스턴스를 선택하면 지표 탭을 선택하여 인스턴스의 성능 CloudWatch 지표를 볼 수 있습니다.

AWS Database Migration Service 지표
AWS DMS는 다음 항목의 통계를 제공합니다.
호스트 지표 - Amazon에서 제공하는 복제 호스트의 성능 및 사용률 통계입니다 CloudWatch. 사용 가능한 전체 측정치 목록은 복제 인스턴스 지표 섹션을 참조하세요.
복제 태스크 지표 - 들어오는 변경 사항과 커밋된 변경 사항, 복제 호스트와 소스 및 대상 데이터베이스 사이의 지연 시간을 포함한 복제 태스크 통계. 사용 가능한 전체 측정치 목록은 복제 작업 지표 섹션을 참조하세요.
테이블 지표 - 삽입, 업데이트, 삭제 및 완료된 DDL 문 수를 포함하여 마이그레이션 중인 테이블에 대한 통계입니다.
작업 지표는 복제 호스트와 원본 엔드포인트 간의 통계, 그리고 복제 호스트와 대상 엔드포인트 간의 통계로 나뉩니다. 관련 통계 2개를 모두 추가하여 작업의 총 통계를 확인할 수 있습니다. 예를 들어, CDCLatencySource 및 CDCLatencyTarget 값을 결합하여 작업의 총 지연 시간 또는 복제본 지연을 확인할 수 있습니다.
작업 지표 값은 원본 데이터베이스에서 현재 작업의 영향을 받을 수 있습니다. 예를 들어 트랜잭션이 시작되었지만 커밋되지 않은 경우 해당 트랜잭션이 커밋될 때까지 CDCLatencySource 지표가 계속 증가합니다.
복제 인스턴스의 경우 FreeableMemory 지표에 설명이 필요합니다. 여유 메모리는 사용 가능한 실제 여유 메모리를 나타내지 않습니다. 해제하여 다른 용도로 사용할 수 있는 현재 사용 중인 메모리로, 여유 복제 인스턴스에 사용 중인 버퍼 및 캐시의 조합입니다.
FreeableMemory 지표는 사용 가능한 실제 가용 메모리를 반영하지 않지만 FreeableMemory 및 SwapUsage 지표의 조합은 복제 인스턴스가 과부하되었는지 여부를 나타낼 수 있습니다.
다음 조건에 대해 이 두 측정치를 모니터링합니다.
0에 근접하는 FreeableMemory 지표입니다.
SwapUsage 지표가 증가하거나 변동합니다.
이러한 두 가지 상태 중 하나에 해당하는 경우 이는 대규모 복제 인스턴스로 전환하는 것을 고려해야 함을 나타냅니다. 또한 복제 인스턴스에서 실행 중인 작업 수와 유형을 줄이기는 것도 고려해 보아야 합니다. 전체 로드 작업에는 변경 내용만을 복제하는 작업보다 더 많은 메모리가 요구됩니다.
AWS DMS 마이그레이션 작업에 대한 실제 메모리 요구 사항을 대략적으로 추정하려면 다음 파라미터를 사용할 수 있습니다.
- LOB 열
마이그레이션 범위의 각 테이블에 있는 평균 LOB 열 수입니다.
- [Maximum number of tables to load in parallel]
한 태스크에서 병렬로 AWS DMS 로드되는 최대 테이블 수입니다.
기본값은 8입니다.
- LOB 청크 크기
가 대상 데이터베이스에 데이터를 복제하는 데 AWS DMS 사용하는 LOB 청크의 크기입니다.
- 전체 로드 중 커밋 비율
가 병렬로 전송할 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 parallel
및Commit 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 열이 포함되어 있고 개인의 최대 크기가 4,096KBLOB인 예를 생각해 보십시오.
Maximum number of tables to load in parallel
및Bulk array size
에 기본값을 사용하는 경우 태스크에 필요한 메모리 양은 다음과 같습니다.Required memory = 2 * 8 * 4,096 * 1,000 = 65,536,000 KB
가 변환을 최적으로 수행 AWS DMS 하려면 변환이 발생할 때를 사용할 수 있어야 CPU 합니다. 를 오버로드CPU하고 CPU 리소스가 충분하지 않으면 마이그레이션 속도가 느려질 수 AWS DMS 있습니다. 특히 Oracle에서 Postgre로 마이그레이션하는 것과 같은 이기종 마이그레이션 및 복제를 수행할 때 CPU가 집중적일 수 있습니다SQL. C4 복제 인스턴스 클래스 사용은 이러한 상황에서 훌륭한 선택이 될 수 있습니다. 자세한 내용은 마이그레이션에 적합한 AWS DMS 복제 인스턴스 선택 단원을 참조하십시오.
복제 인스턴스 지표
복제 인스턴스 모니터링에는 다음 통계에 대한 Amazon CloudWatch 지표가 포함됩니다.
지표 |
설명 |
---|---|
AvailableMemory |
스와핑 없이 새 애플리케이션을 시작하는 데 사용할 수 있는 메모리의 크기. 자세한 내용은 Linux man-pages 단위: 바이트 |
CPUAllocated |
작업에 CPU 최대로 할당된 비율입니다(0은 제한이 없음을 의미함). AWS DMS 는 콘솔에서 단위: 백분율 |
CPUUtilization |
인스턴스에서 현재 사용 중인 할당된 vCPU(가상 CPU)의 백분율입니다. 단위: 백분율 |
DiskQueueDepth |
디스크에 액세스하기 위해 대기 중인 미해결 read/write requests (I/Os) 수입니다. 단위: 개 |
FreeStorageSpace |
사용 가능한 스토리지 공간 크기입니다. 단위: 바이트 |
FreeMemory |
애플리케이션, 페이지 캐시, 커널 자체 데이터 구조에서 사용할 수 있는 물리적 메모리의 양입니다. 자세한 내용은 Linux man-pages 단위: 바이트 |
FreeableMemory |
사용 가능한 RAM 크기입니다. 단위: 바이트 |
MemoryAllocated |
태스크에 대한 최대 메모리 할당량입니다(0은 제한이 없음을 의미함). AWS DMS 는 콘솔에서 단위: 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 |
대상에 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. CDCLatencySource 및 CDCLatencyTarget가 모두 높으면 CDCLatencySource 먼저 조사합니다. CDCSourceLatency는 소스와 복제 인스턴스 간에 복제 지연이 없는 경우 0이 될 CDCSourceLatency 수 있습니다.는 복제 작업이 소스의 트랜잭션 로그에서 다음 이벤트를 읽으려고 하고 소스에서 마지막으로 읽은 시간과 비교하여 새 이벤트가 없는 경우에도 0이 될 수 있습니다. 이 경우 작업은를 0CDCSourceLatency으로 재설정합니다. |
CDCLatencyTarget |
대상에 커밋되기를 대기하는 첫 이벤트 타임스탬프와 AWS DMS 인스턴스의 현재 타임스탬프 사이의 간격(초)입니다. 대상 지연 시간은 복제 인스턴스 서버 시간과 대상 구성 요소에 전달된 확인되지 않은 가장 오래된 이벤트 ID 간의 차이입니다. 즉, 대상 지연 시간은 복제 인스턴스와 적용되었지만 TRG 엔드포인트에 의해 확인되지 않은 가장 오래된 이벤트(99%) 간의 타임스탬프 차이입니다. CDCLatencyTarget가 높으면 대상에 변경 이벤트를 적용하는 프로세스가 지연되었음을 나타냅니다. 진행 중인 복제에서 지연 시간을 식별하려면와 함께이 지표를 볼 수 있습니다CDCLatencySource. CDCLatencyTarget가 높지만 CDCLatencySource높지 않은 경우 다음 사항을 조사합니다.
|
CPUUtilization |
여러 코어에서 태스크가 CPU 사용하는 비율입니다. 작업의 의미 체계CPUUtilization는 복제와 약간 다릅니다CPUUtilizaiton. 1vCPU가 완전히 사용된 경우 100%를 나타내지만 여러 vCPUs 가 사용 중인 경우 값이 100%를 초과할 수 있습니다. 단위: 백분율 |
SwapUsage |
태스크가 사용하는 스왑의 양. 단위: 바이트 |
MemoryUsage |
태스크에서 사용하는 제어 그룹(cgroup) memory.usage_in_bytes입니다.는 cgroup을 DMS 사용하여 메모리 및와 같은 시스템 리소스의 사용을 제어합니다CPU. 이 지표는 해당 태스크에 할당된 cgroup 내에서 태스크의 메모리 사용량을 메가바이트 단위로 나타냅니다. cgroup 제한은 DMS 복제 인스턴스 클래스에 사용할 수 있는 리소스를 기반으로 합니다. memory.usage_in_bytes는 메모리의 상주 세트 크기(RSS), 캐시 및 스왑 구성 요소로 구성됩니다. 필요한 경우 운영 체제가 캐시 메모리를 회수할 수 있습니다. 복제 인스턴스 지표인 도 모니터링하는 것이 좋습니다AvailableMemory. AWS DMS 는 콘솔에서 |
AWS DMS 작업 로그 보기 및 관리
Amazon CloudWatch 을 사용하여 AWS DMS 마이그레이션 프로세스 중에 작업 정보를 로깅할 수 있습니다. 작업 설정을 선택할 때 로깅을 활성화합니다. 자세한 내용은 작업 설정 로깅 단원을 참조하십시오.
실행된 작업의 로그를 보려면 다음 단계를 따르세요.
-
AWS DMS 콘솔을 열고 탐색 창에서 데이터베이스 마이그레이션 작업을 선택합니다. 데이터베이스 마이그레이션 태스크 대화 상자가 나타납니다.
-
작업 이름을 선택합니다. 개요 세부 정보 대화 상자가 나타납니다.
-
마이그레이션 작업 로그 섹션을 찾아 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로 설정하세요. 예를 들어, 다음은 명령 또는 ModifyReplicationTask
작업을 사용하여 AWS CLI modify-replication-task
작업을 수정할 때 작업 로그를 JSON AWS DMS API 삭제합니다.
{
"Logging": {
"DeleteTaskLogs":true
}
}
참고
각 복제 인스턴스에 대해는 10일이 지난 로그를 AWS DMS 삭제합니다.
를 사용하여 통화 로깅 AWS DMS API AWS CloudTrail
AWS DMS 는 사용자 AWS CloudTrail, 역할 또는 AWS 서비스가 수행한 작업의 레코드를 제공하는 서비스와 통합됩니다 AWS DMS.는 AWS DMS 콘솔 및 코드 호출에서 작업에 대한 API 호출을 포함하여에 대한 모든 호출을 AWS DMS API 이벤트 AWS DMS 로 CloudTrail 캡처합니다. 추적을 생성하는 경우에 대한 CloudTrail 이벤트를 포함하여 Amazon S3 버킷으로 이벤트를 지속적으로 전송할 수 있습니다 AWS DMS. 추적을 구성하지 않은 경우에도 CloudTrail 콘솔의 이벤트 기록에서 최신 이벤트를 볼 수 있습니다. 에서 수집한 정보를 사용하여에 수행된 요청 CloudTrail, 요청이 수행된 AWS DMS IP 주소, 요청을 수행한 사람, 요청이 수행된 시간 및 추가 세부 정보를 확인할 수 있습니다.
자세한 내용은 AWS CloudTrail 사용 설명서를 CloudTrail참조하세요.
AWS DMS 의 정보 CloudTrail
CloudTrail 는 AWS 계정을 생성할 때 계정에서 활성화됩니다. 에서 활동이 발생하면 AWS DMS해당 활동은 CloudTrail 이벤트 기록의 다른 AWS 서비스 이벤트와 함께 이벤트에 기록됩니다. AWS 계정에서 최근 이벤트를 보고 검색하고 다운로드할 수 있습니다. 자세한 내용은 이벤트 기록을 사용하여 CloudTrail 이벤트 보기를 참조하세요.
에 대한 이벤트를 포함하여 AWS 계정의 이벤트에 대한 지속적인 기록을 위해 추적을 AWS DMS생성합니다. 추적 CloudTrail 을 사용하면가 Amazon S3 버킷에 로그 파일을 전송할 수 있습니다. 기본적으로 콘솔에서 추적을 생성하면 추적이 모든 AWS 리전에 적용됩니다. 추적은 AWS 파티션의 모든 AWS 리전에서 이벤트를 로깅하고 지정한 Amazon S3 버킷으로 로그 파일을 전송합니다. 또한 CloudTrail 로그에 수집된 이벤트 데이터를 추가로 분석하고 이에 따라 조치를 취하도록 다른 AWS 서비스를 구성할 수 있습니다. 자세한 내용은 다음을 참조하세요.
모든 AWS DMS 작업은에서 로깅 CloudTrail 되며 AWS Database Migration Service API 참조에 문서화됩니다. 예를 들어를 호출CreateReplicationInstance
TestConnection
하고 StartReplicationTask
작업을 수행하면 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": "ASIAIOSFODNN7EXAMPLE",
"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
로그는 소스 데이터베이스 로그 파일에서 읽을 수 있는 이벤트가 없음을 나타내며, 대상 데이터베이스에 적용할 AWS DMS CDC 구성 요소에서 수신된 이벤트가 없음을 나타내는 TARGET_APPLY
레코드를 포함합니다. 이러한 이벤트에는 이전에 적용된 이벤트 관련 컨텍스트 세부 정보도 포함됩니다.
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
PostgreSQL
Oracle
Microsoft SQL 서버
MongoDB/Amazon DocumentDB
Amazon S3