
[database] AWS DMS
서비스를 멈추지 않고 DB를 통째로 옮기기. 심지어 다른 엔진으로 갈아타는 것까지, DMS가 어떻게 해내는지 봅니다.
DB 선택 큰 그림은 database-overview. 파일/객체 이전은 data-transfer(DataSync/Snow) — DMS는 데이터베이스 전용.
One-Line Summary
AWS DMS는 데이터베이스를 AWS로(또는 AWS 간에) 최소 다운타임으로 이전·복제하는 서비스다. 마이그레이션 중에도 원본 DB는 계속 운영되고, CDC(변경 데이터 캡처) 로 원본↔대상을 계속 동기화하다가 짧게 전환한다. 시험 핵심은 최소 다운타임 마이그레이션 / 동종 vs 이종(+SCT) / 지속 복제(CDC) 다.
뭔지 (What / Why)
DB를 옮길 때 가장 어려운 건 "서비스를 멈추지 않고" 옮기는 것이다. 덤프-복원 방식은 그 사이 데이터 변경을 놓치고 다운타임이 길다.
DMS는 복제 인스턴스가 원본에서 데이터를 읽어 대상에 적재하고, 그 뒤 CDC로 변경분을 계속 따라 붙인다. 원본과 대상이 동기화된 상태를 유지하다가 커트오버 순간만 짧게 전환한다.
원본 DB(운영 중) ─► [DMS 복제 인스턴스] ─► 대상 DB(AWS)
1) Full Load: 기존 데이터 통째 이전
2) CDC: 이후 변경분을 지속 반영(원본은 계속 서비스)
3) 동기화 상태에서 짧게 커트오버
"DB를 최소 다운타임으로 이전" = DMS. 파일/객체 대량 전송은 DataSync·Snow(→ data-transfer).
Abbreviations
| 약어 | 풀네임 | 의미 |
|---|---|---|
DMS | Database Migration Service | DB 마이그레이션/복제 |
CDC | Change Data Capture | 변경분 지속 캡처·복제 |
SCT | Schema Conversion Tool | 스키마/코드 변환 도구 |
동종 vs 이종 마이그레이션 (빈출)
| 구분 | 예 | 스키마 변환 |
|---|---|---|
| 동종(homogeneous) | Oracle → RDS Oracle, MySQL → Aurora MySQL | 불필요(엔진 동일) |
| 이종(heterogeneous) | Oracle → Aurora PostgreSQL, SQL Server → MySQL | SCT(Schema Conversion) 필요 |
- 이종은 스키마·저장 프로시저·타입이 달라서, SCT로 대상 엔진에 맞게 변환한 뒤 DMS로 데이터를 옮긴다.
"Oracle/SQL Server 상용 DB에서 오픈소스/Aurora로 갈아탄다" = 이종 → DMS + SCT.
Full Load vs CDC
| 모드 | 역할 |
|---|---|
| Full Load | 기존 데이터를 통째로 이전 |
| Full Load + CDC | 통째 이전 후 변경분 지속 반영(최소 다운타임 커트오버) |
| CDC only | 이미 옮긴 뒤 지속 복제만(원본↔대상 동기 유지) |
"마이그레이션 중에도 원본이 계속 바뀐다/다운타임을 최소화" = Full Load + CDC.
실무 활용 사례
- 온프레미스 → AWS 이전: 상용 Oracle을 Aurora PostgreSQL로(비용 절감) — DMS + SCT, CDC로 무중단에 가깝게 커트오버.
- 지속 복제: 운영 DB를 다른 리전/계정으로 CDC 상시 복제(리포팅·DR).
- DB 통합: 여러 소스 DB를 하나의 대상으로 모으기.
Common Wrong Directions
| 오답 방향 | 왜 부족한가 |
|---|---|
| DB 이전을 DataSync로 | DataSync는 파일/객체 → DB는 DMS |
| 이종 마이그레이션에 DMS만 | 스키마 변환은 SCT 필요 |
| 덤프-복원으로 무중단 기대 | 변경분 놓침·다운타임 김 → DMS + CDC |
| 마이그레이션에 원본 정지 필수라고 봄 | DMS는 원본 운영 중 이전 가능 |
Exam Triggers
| 문제에서 이런 표현이 나오면 | 떠올릴 것 |
|---|---|
| "migrate a database with minimal downtime" | DMS |
| "source database stays available during migration" | DMS (CDC) |
| "Oracle/SQL Server to Aurora/PostgreSQL/MySQL" | DMS + SCT(이종) |
| "continuously replicate a database" | DMS CDC |
| "keep source and target in sync until cutover" | Full Load + CDC |
Memory Sentence
DMS는 DB를 원본 운영 중에 최소 다운타임으로 이전한다: Full Load로 통째 옮기고 CDC로 변경분을 따라 붙이다 짧게 커트오버. 동종은 그대로, 이종(Oracle→Aurora PostgreSQL 등)은 SCT로 스키마 변환. 파일/객체 이전은 DataSync/Snow, DB는 DMS.
References
댓글
아직 댓글이 없습니다.