AWS Database Migration Service 작업에 대한 작업 설정 지정 - AWS Database Migration Service

AWS Database Migration Service 작업에 대한 작업 설정 지정

각 작업에는 데이터베이스 마이그레이션의 요구 사항에 따라 구성할 수 있는 설정이 있습니다. JSON 파일로 이 설정을 생성하거나 AWS DMS 콘솔을 사용하여 일부 설정과 함께 이 설정을 지정할 수 있습니다. 작업 구성 파일을 사용하여 작업 설정을 지정하는 방법에 관한 자세한 내용은 작업 설정 예제을 참조하세요.

기본적인 작업 설정 유형은 다음과 같습니다.

작업 설정 관련 설명서

작업 평가 보고서 생성

마이그레이션 중에 문제를 유발할 수 있는 지원되지 않는 데이터 형식을 보여 주는 작업 평가 보고서를 생성할 수 있습니다. 작업을 실행하기 전에 잠재적인 문제를 알아보기 위해 작업에 대해 이 보고서를 실행할 수 있습니다.

작업에 대한 마이그레이션 전 평가 활성화 및 활용

작업 생성

작업 생성 시 마이그레이션 설정과 함께 소스, 대상 및 복제 인스턴스를 지정합니다.

작업 생성

지속적 복제 태스크 생성

원본과 대상 간에 지속적인 복제를 수행하는 작업을 설정할 수 있습니다.

AWS DMS를 사용하여 지속 복제를 위한 작업 생성

태스크 설정 적용

각 작업에는 데이터베이스 마이그레이션의 요구 사항에 따라 구성할 수 있는 설정이 있습니다. JSON 파일로 이 설정을 생성하거나 AWS DMS 콘솔을 사용하여 일부 설정과 함께 이 설정을 지정할 수 있습니다.

AWS Database Migration Service 작업에 대한 작업 설정 지정

데이터 유효성 검사

데이터 검증을 사용하여 AWS DMS가 원본 데이터 저장소의 데이터와 대상 데이터 저장소의 데이터 비교를 수행하도록 합니다.

AWS DMS 데이터 검증

작업 수정

작업이 중지되면 작업 설정을 수정할 수 있습니다.

작업 수정

작업 중 테이블 다시 로드

작업 중에 오류가 발생하면 작업 중에 테이블을 다시 로드할 수 있습니다.

작업 중 테이블 다시 로드

테이블 매핑 사용

테이블 매핑에서는 여러 유형의 규칙을 사용하여 데이터 소스, 원본 스키마, 데이터, 작업 중 발생하는 모든 변환 등에 대한 작업 설정을 지정합니다.

선택 규칙

선택 규칙 및 작업

변환 규칙

변환 규칙 및 작업

필터 적용

소스 필터를 사용하여 소스에서 대상으로 전송되는 레코드의 수와 유형을 제한할 수 있습니다. 예를 들어, 본사 사업장에서 근무하는 직원만이 대상 데이터베이스로 이동하도록 지정할 수 있습니다. 데이터 열에서 필터를 적용합니다.

소스 필터 사용

태스크 모니터링

작업에서 사용하는 테이블과 작업 성능에 관한 정보를 가져오는 방법에는 여러 가지가 있습니다.

AWS DMS 태스크 모니터링

태스크 로그 관리

AWS DMS API 또는 AWS CLI를 사용하여 작업 로그를 보고 삭제할 수 있습니다.

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

작업 설정 예제

AWS Management 콘솔 또는 AWS CLI를 사용하여 복제 작업을 생성할 수 있습니다. AWS CLI를 사용하는 경우, JSON 파일을 만든 다음 JSON 파일의 file://URI를 CreateReplicationTask 작업의 ReplicationTaskSettings 파라미터로 지정하여 작업 설정을 지정합니다.

다음 예제에서는 AWS CLI를 사용해 CreateReplicationTask 작업을 호출하는 방법을 보여줍니다.

aws dms create-replication-task \ --replication-task-identifier MyTask \ --source-endpoint-arn arn:aws:dms:us-west-2:123456789012:endpoint:ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890ABC \ --target-endpoint-arn arn:aws:dms:us-west-2:123456789012:endpoint:ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890ABC \ --replication-instance-arn arn:aws:dms:us-west-2:123456789012:rep:ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890ABC \ --migration-type cdc \ --table-mappings file://tablemappings.json \ --replication-task-settings file://settings.json

위 예제에서는 tablemappings.json이라는 테이블 매핑 파일을 사용합니다. 테이블 매핑 예는 작업 설정을 지정하기 위한 테이블 매핑 사용 섹션을 참조하세요.

작업 설정 JSON 파일은 다음과 같습니다.

{ "TargetMetadata": { "TargetSchema": "", "SupportLobs": true, "FullLobMode": false, "LobChunkSize": 64, "LimitedSizeLobMode": true, "LobMaxSize": 32, "InlineLobMaxSize": 0, "LoadMaxFileSize": 0, "ParallelLoadThreads": 0, "ParallelLoadBufferSize":0, "ParallelLoadQueuesPerThread": 1, "ParallelApplyThreads": 0, "ParallelApplyBufferSize": 100, "ParallelApplyQueuesPerThread": 1, "BatchApplyEnabled": false, "TaskRecoveryTableEnabled": false }, "FullLoadSettings": { "TargetTablePrepMode": "DO_NOTHING", "CreatePkAfterFullLoad": false, "StopTaskCachedChangesApplied": false, "StopTaskCachedChangesNotApplied": false, "MaxFullLoadSubTasks": 8, "TransactionConsistencyTimeout": 600, "CommitRate": 10000 }, "TTSettings" : { "EnableTT" : true, "TTS3Settings": { "EncryptionMode": "SSE_KMS", "ServerSideEncryptionKmsKeyId": "arn:aws:kms:us-west-2:112233445566:key/myKMSKey", "ServiceAccessRoleArn": "arn:aws:iam::112233445566:role/dms-tt-s3-access-role", "BucketName": "myttbucket", "BucketFolder": "myttfolder", "EnableDeletingFromS3OnTaskDelete": false }, "TTRecordSettings": { "EnableRawData" : true, "OperationsToLog": "DELETE,UPDATE", "MaxRecordSize": 64 } }, "Logging": { "EnableLogging": false }, "ControlTablesSettings": { "ControlSchema":"", "HistoryTimeslotInMinutes":5, "HistoryTableEnabled": false, "SuspendedTablesTableEnabled": false, "StatusTableEnabled": false }, "StreamBufferSettings": { "StreamBufferCount": 3, "StreamBufferSizeInMB": 8 }, "ChangeProcessingTuning": { "BatchApplyPreserveTransaction": true, "BatchApplyTimeoutMin": 1, "BatchApplyTimeoutMax": 30, "BatchApplyMemoryLimit": 500, "BatchSplitSize": 0, "MinTransactionSize": 1000, "CommitTimeout": 1, "MemoryLimitTotal": 1024, "MemoryKeepTime": 60, "StatementCacheSize": 50 }, "ChangeProcessingDdlHandlingPolicy": { "HandleSourceTableDropped": true, "HandleSourceTableTruncated": true, "HandleSourceTableAltered": true }, "LoopbackPreventionSettings": { "EnableLoopbackPrevention": true, "SourceSchema": "LOOP-DATA", "TargetSchema": "loop-data" }, "CharacterSetSettings": { "CharacterReplacements": [ { "SourceCharacterCodePoint": 35, "TargetCharacterCodePoint": 52 }, { "SourceCharacterCodePoint": 37, "TargetCharacterCodePoint": 103 } ], "CharacterSetSupport": { "CharacterSet": "UTF16_PlatformEndian", "ReplaceWithCharacterCodePoint": 0 } }, "BeforeImageSettings": { "EnableBeforeImage": false, "FieldName": "", "ColumnFilter": "pk-only" }, "ErrorBehavior": { "DataErrorPolicy": "LOG_ERROR", "DataTruncationErrorPolicy":"LOG_ERROR", "DataMaskingErrorPolicy": "STOP_TASK", "DataErrorEscalationPolicy":"SUSPEND_TABLE", "DataErrorEscalationCount": 50, "TableErrorPolicy":"SUSPEND_TABLE", "TableErrorEscalationPolicy":"STOP_TASK", "TableErrorEscalationCount": 50, "RecoverableErrorCount": 0, "RecoverableErrorInterval": 5, "RecoverableErrorThrottling": true, "RecoverableErrorThrottlingMax": 1800, "ApplyErrorDeletePolicy":"IGNORE_RECORD", "ApplyErrorInsertPolicy":"LOG_ERROR", "ApplyErrorUpdatePolicy":"LOG_ERROR", "ApplyErrorEscalationPolicy":"LOG_ERROR", "ApplyErrorEscalationCount": 0, "FullLoadIgnoreConflicts": true }, "ValidationSettings": { "EnableValidation": false, "ValidationMode": "ROW_LEVEL", "ThreadCount": 5, "PartitionSize": 10000, "FailureMaxCount": 1000, "RecordFailureDelayInMinutes": 5, "RecordSuspendDelayInMinutes": 30, "MaxKeyColumnSize": 8096, "TableFailureMaxCount": 10000, "ValidationOnly": false, "HandleCollationDiff": false, "RecordFailureDelayLimitInMinutes": 1, "SkipLobColumns": false, "ValidationPartialLobSize": 0, "ValidationQueryCdcDelaySeconds": 0 } }