AWS Solutions Architect · 강의

Database Migration Service(DMS) 및 Schema Conversion Tool

DMS를 사용해 전체 로드 또는 CDC 방식으로 동종 및 이기종 데이터베이스를 마이그레이션하고, Schema Conversion Tool로 스키마 방언을 변환합니다.

레슨 4/413개 단계

Database Migration Service(DMS) 및 Schema Conversion Tool은(는) CoddyKit의 무료 AWS Solutions Architect 강의입니다. 이것은 4개 중 4번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 AWS Solutions Architect 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. AWS Solutions Architect 강의에는 총 4개의 강의가 포함되어 있습니다.

AWS DMS란 무엇입니까?

AWS Database Migration Service (DMS)는 최소한의 다운타임으로 데이터베이스를 AWS로 마이그레이션합니다. 동종 마이그레이션(예: Oracle에서 Oracle로, MySQL에서 MySQL로)과 이기종 마이그레이션(예: Oracle에서 Aurora PostgreSQL로, SQL Server에서 MySQL로)을 모두 지원합니다. DMS는 복제 인스턴스를 사용하여 소스에서 데이터를 읽고, 필요한 경우 데이터를 변환한 후 target에 씁니다. 복제 인스턴스가 실행된 시간에 대해서만 비용을 지불합니다.

DMS 구성 요소: 엔드포인트와 복제 인스턴스

DMS에는 세 가지 주요 구성 요소가 있습니다. 소스 엔드포인트는 소스 데이터베이스 연결(JDBC URL, 자격 증명, TLS)을 정의합니다. 대상 엔드포인트는 대상 데이터베이스를 정의합니다. 복제 인스턴스는 마이그레이션 작업을 실행하기 위해 DMS가 VPC에 프로비저닝하는 EC2 기반 관리형 서버입니다. 마이그레이션할 데이터의 양과 복제 인스턴스 자체에 다중 AZ를 사용할지 여부를 기준으로 복제 인스턴스 크기를 선택합니다.

# Create a DMS replication instance
aws dms create-replication-instance \
  --replication-instance-identifier my-dms-instance \
  --replication-instance-class dms.t3.medium \
  --allocated-storage 50 \
  --vpc-security-group-ids sg-abc123 \
  --replication-subnet-group-identifier my-dms-subnet-group \
  --multi-az false \
  --publicly-accessible false

Full Load와 CDC 마이그레이션 비교

DMS는 두 가지 마이그레이션 모드를 지원합니다. Full Load는 소스의 기존 데이터를 모두 대상에 복사하므로, 다운타임을 감수할 수 있거나 마이그레이션 중 소스가 읽기 전용일 때 적합합니다. Change Data Capture (CDC)는 Full Load가 완료된 후 소스 트랜잭션 로그에서 계속 발생하는 변경 사항을 캡처하여 소스와 대상을 동기화된 상태로 유지합니다. Full Load + CDC를 함께 사용하면 다운타임을 최소화할 수 있습니다. 소스를 운영 상태로 유지하면서 데이터를 마이그레이션한 다음 대상이 최신 상태가 되면 전환합니다.

# Create a DMS replication task with Full Load + CDC
aws dms create-replication-task \
  --replication-task-identifier sales-migration \
  --source-endpoint-arn arn:aws:dms:us-east-1:123:endpoint:SOURCE \
  --target-endpoint-arn arn:aws:dms:us-east-1:123:endpoint:TARGET \
  --replication-instance-arn arn:aws:dms:us-east-1:123:rep:my-dms-instance \
  --migration-type full-load-and-cdc \
  --table-mappings '{"rules": [{"rule-type": "selection", "rule-id": "1", "rule-name": "all", "object-locator": {"schema-name": "%", "table-name": "%"}, "rule-action": "include"}]}'

스키마 변환 도구(SCT)

AWS Schema Conversion Tool (SCT)은 소스 데이터베이스 스키마(DDL)를 대상 데이터베이스 엔진과 호환되는 형식으로 자동 변환하는 무료 다운로드 애플리케이션입니다. 테이블 정의, 뷰, 저장 프로시저, 함수 및 트리거를 처리합니다. 이기종 마이그레이션(예: Oracle에서 PostgreSQL로)의 경우 SCT가 대부분의 객체를 자동으로 변환하고, 지원되지 않는 구문 차이로 인해 수동 검토가 필요한 항목을 표시합니다.

# SCT is a GUI desktop tool, but here is the workflow:
# 1. Connect SCT to source Oracle database
# 2. Connect SCT to target Aurora PostgreSQL database
# 3. Run schema assessment: SCT rates conversion complexity per object
# 4. Convert schema automatically (SCT generates PostgreSQL DDL)
# 5. Apply converted DDL to target (SCT executes or exports SQL script)
# 6. Review and manually fix flagged items (e.g., PL/SQL procedures with Oracle-specific syntax)

동종 마이그레이션과 이기종 마이그레이션 비교

동종 마이그레이션(동일한 엔진, 예: 온프레미스 MySQL에서 RDS for MySQL로)에서는 스키마가 직접 호환되므로 SCT가 일반적으로 필요하지 않습니다. DMS에서 즉시 Full Load + CDC를 실행할 수 있습니다. 이기종 마이그레이션(서로 다른 엔진)에서는 먼저 SCT가 스키마를 변환하고, DMS가 데이터 마이그레이션을 처리합니다. 대상 엔진에 대응하는 기능이 없는 저장 프로시저와 트리거는 수동으로 다시 작성해야 할 수 있습니다.

# Example heterogeneous migration workflow:
# On-premises Oracle -> Amazon Aurora PostgreSQL
#
# Step 1: SCT converts Oracle DDL to PostgreSQL DDL
# Step 2: Apply PostgreSQL DDL to Aurora target
# Step 3: DMS Full Load + CDC copies Oracle table data to Aurora
# Step 4: Validate row counts and checksums
# Step 5: Cut over application connections to Aurora endpoint
# Step 6: Terminate DMS task and replication instance

지원되는 소스 및 대상 데이터베이스

DMS는 Oracle, SQL Server, MySQL, MariaDB, PostgreSQL, SAP ASE, MongoDB, IBM Db2, S3를 비롯한 다양한 소스를 지원합니다. 지원되는 대상에는 위 항목에 더해 Amazon Redshift, DynamoDB, Kinesis Data Streams, Kafka가 포함됩니다. 따라서 DMS는 관계형 마이그레이션뿐 아니라 CDC를 사용하여 관계형 변경 이벤트를 Kinesis로 스트리밍하거나 이벤트 기반 아키텍처를 구축하는 데에도 유용합니다.

DMS 테이블 매핑 규칙

DMS는 테이블 매핑 규칙(JSON)을 사용하여 포함하거나 제외할 스키마와 테이블을 제어하고 데이터 변환을 적용합니다. 스키마 또는 테이블 이름을 변경하고, 열 값을 변환하고(예: 모든 문자열을 대문자로 변환), 파생 열을 추가하거나, 행을 필터링할 수 있습니다. 이는 이름 지정 규칙이 다른 대상으로 마이그레이션하거나 일부 테이블만 마이그레이션하려는 경우에 유용합니다.

# Table mapping: include only the 'orders' table, rename schema
{
  'rules': [
    {
      'rule-type': 'selection',
      'rule-id': '1',
      'rule-name': 'select-orders',
      'object-locator': {'schema-name': 'prod_db', 'table-name': 'orders'},
      'rule-action': 'include'
    },
    {
      'rule-type': 'transformation',
      'rule-id': '2',
      'rule-name': 'rename-schema',
      'rule-action': 'convert-uppercase',
      'rule-target': 'schema',
      'object-locator': {'schema-name': 'prod_db'}
    }
  ]
}

DMS 마이그레이션 진행률 모니터링

DMS는 지표를 CloudWatch에 게시합니다. FullLoadThroughputRowsSource(초당 로드된 행 수), CDCLatencySource(소스 트랜잭션 로그와 DMS가 이를 읽는 시점 간의 지연 시간), CDCLatencyTarget(DMS가 읽는 시점과 대상에 쓰는 시점 간의 지연 시간)입니다. 동기화 단계에서는 CDCLatencyTarget을 면밀히 모니터링하십시오. 이 값이 0에 가까워지면 대상이 소스를 따라잡은 것이므로 전환할 준비가 된 것입니다.

# Monitor CDC latency via CloudWatch CLI
aws cloudwatch get-metric-statistics \
  --namespace AWS/DMS \
  --metric-name CDCLatencyTarget \
  --dimensions Name=ReplicationInstanceIdentifier,Value=my-dms-instance \
  --start-time 2024-01-01T00:00:00Z \
  --end-time 2024-01-01T01:00:00Z \
  --period 60 \
  --statistics Average

DMS Serverless

DMS Serverless는 마이그레이션 작업량에 따라 복제 용량을 자동으로 프로비저닝하고 조정하므로, 복제 인스턴스 크기를 선택하고 관리할 필요가 없습니다. 최소 및 최대 DMS 용량 단위(DCU)를 지정하면 DMS가 해당 범위 내에서 자동으로 확장하거나 축소합니다. 작업량이 변동하거나 마이그레이션이 가장 바쁠 때 복제 인스턴스의 크기를 너무 작게 설정할 위험을 피하고 싶을 때 적합합니다.

# Create a DMS Serverless replication
aws dms create-replication \
  --replication-config-identifier my-serverless-migration \
  --replication-type full-load-and-cdc \
  --source-endpoint-arn arn:aws:dms:us-east-1:123:endpoint:SOURCE \
  --target-endpoint-arn arn:aws:dms:us-east-1:123:endpoint:TARGET \
  --compute-config '{
    "MinCapacityUnits": 2,
    "MaxCapacityUnits": 64,
    "MultiAZ": false,
    "ReplicationSubnetGroupId": "my-subnet-group",
    "VpcSecurityGroupIds": ["sg-abc123"]
  }'

마이그레이션 완전성 검증

마이그레이션 후에는 DMS의 Data Validation을 사용하여 데이터가 완전한지 검증하십시오. 작업 설정에서 이를 활성화하면 DMS가 소스와 대상 테이블의 행 수 및 체크섬을 비교하고, 불일치 항목을 별도의 검증 테이블에 보고합니다. 이기종 마이그레이션의 경우 애플리케이션 수준의 스모크 테스트도 실행하십시오. 검증 결과 불일치가 0건이 될 때까지 절대 전환하지 마십시오. 잘못된 전환 후 데이터를 조정하는 비용은 검증에 시간을 더 들이는 비용보다 훨씬 큽니다.

# Enable validation in DMS task settings (JSON)
{
  'TargetMetadata': {'SupportLobs': true, 'FullLobMode': false},
  'ValidationSettings': {
    'EnableValidation': true,
    'ValidationMode': 'ROW_LEVEL',
    'ValidationOnly': false,
    'FailureMaxCount': 10000
  }
}

일반적인 DMS 시험 시나리오

SAA-C03 시험에서 DMS는 최소한의 다운타임으로 데이터베이스를 마이그레이션해야 하는 시나리오에 등장합니다. 주요 단서는 다음과 같습니다. '지속적인 복제를 사용하여 데이터베이스 마이그레이션' → DMS Full Load + CDC. '데이터베이스 엔진 변경' → 먼저 SCT를 사용한 다음 DMS를 사용합니다. '변경 사항을 거의 실시간으로 데이터 레이크에 복제' → Kinesis 또는 S3로 DMS CDC를 사용합니다. '여러 소스 데이터베이스를 하나의 대상으로 통합' → 하나의 대상 엔드포인트에 여러 DMS 작업을 사용합니다. DMS는 특히 데이터베이스 마이그레이션을 위한 서비스입니다. 서버 마이그레이션에는 MGN을, 대량 데이터 전송에는 DataSync 또는 Snowball을 사용하십시오.

빠른 확인

이 레슨에서 배운 AWS Solutions Architect (SAA-C03) 개념을 제대로 이해했는지 확인해 보십시오.

레슨 요약

이 레슨에서는 다음을 배웠습니다. DMS는 Full Load 및 CDC 모드를 사용하여 동종 및 이기종 데이터베이스 마이그레이션을 모두 지원합니다. SCT는 엔진 변경 마이그레이션을 위한 스키마 변환을 자동화하고 수동 검토가 필요한 항목을 표시합니다. 또한 DMS Serverless는 복제 용량을 자동으로 조정하여 인스턴스 크기를 결정할 필요를 없앱니다. 다음으로 이벤트 기반 라우팅과 버스 아키텍처를 위한 Amazon EventBridge를 살펴보겠습니다.

무료로 시작

AI 튜터와 함께 AWS Solutions Architect을(를) 배우세요 — 무료

브라우저에서 실제 코드를 작성하고 실행하며, 24/7 AI 튜터로부터 즉각적인 도움을 받고, 웹이나 앱에서 중단한 부분부터 계속 학습하세요.

코스
30
레슨
120

자주 묻는 질문

“Database Migration Service(DMS) 및 Schema Conversion Tool” 강의는 무료인가요?

네 — “Database Migration Service(DMS) 및 Schema Conversion Tool” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 AWS Solutions Architect 강의 전체를 잠금 해제할 수 있습니다. AWS Solutions Architect 강의에는 총 4개의 강의가 포함되어 있습니다.

“Database Migration Service(DMS) 및 Schema Conversion Tool”에서 뭘 배우나요?

DMS를 사용해 전체 로드 또는 CDC 방식으로 동종 및 이기종 데이터베이스를 마이그레이션하고, Schema Conversion Tool로 스키마 방언을 변환합니다. 브라우저에서 직접 실행하는 실습 코드로 AWS Solutions Architect을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

AWS Solutions Architect을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 AWS Solutions Architect은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 4번째 강의입니다.

“Database Migration Service(DMS) 및 Schema Conversion Tool” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 AWS Solutions Architect 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 AWS Solutions Architect 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. 마이그레이션 전략의 7가지 R
  2. AWS Migration Hub 및 Application Discovery Service
  3. Application Migration Service(MGN)
  4. Database Migration Service(DMS) 및 Schema Conversion Tool
← AWS Solutions Architect(으)로 돌아가기