You are viewing a free preview of this lesson.
Subscribe to unlock all 10 lessons in this course and every other course on LearningBro.
Moving databases to the cloud — or between AWS services — is a common task for organisations modernising their infrastructure. The AWS Database Migration Service (DMS) makes it possible to migrate databases with minimal downtime by continuously replicating data from the source to the target while your source database remains fully operational.
AWS DMS is a managed service that migrates data between databases. It supports:
| Component | Role |
|---|---|
| Source endpoint | Connection to the source database (on-premises, EC2, or another cloud) |
| Target endpoint | Connection to the target database (RDS, Aurora, DynamoDB, S3, Redshift, etc.) |
| Replication instance | An EC2 instance managed by DMS that runs the migration tasks |
| Migration task | Configuration that defines what to migrate, how, and when |
| Source | Versions | Notes |
|---|---|---|
| Oracle | 10g, 11g, 12c, 18c, 19c, 21c | Requires supplemental logging for CDC |
| SQL Server | 2008 R2 – 2022 | Requires MS-CDC or MS-Replication |
| MySQL | 5.5 – 8.0 | Binary logging must be enabled |
| PostgreSQL | 9.4 – 16 | Logical replication or pglogical plugin |
| MariaDB | 10.0 – 10.11 | Binary logging |
| MongoDB | 3.x, 4.x, 5.x, 6.x | Document mode or table mode |
| Amazon S3 | – | CSV, Parquet, or JSON files |
| Amazon Aurora | MySQL / PostgreSQL | Same as MySQL / PostgreSQL |
| Target | Notes |
|---|---|
| Amazon RDS (all engines) | Most common target for relational migrations |
| Amazon Aurora | Recommended for MySQL/PostgreSQL migrations |
| Amazon DynamoDB | Use for relational-to-NoSQL modernisation |
| Amazon S3 | Archive, data lake, or staging area |
| Amazon Redshift | Data warehouse ingestion |
| Amazon OpenSearch | Full-text search and analytics |
| Amazon Neptune | Graph database |
| Amazon Kinesis Data Streams | Real-time streaming target |
| Type | Behaviour | Use Case |
|---|---|---|
| Full load | Migrates all existing data in one pass | One-time migration, small databases |
| Full load + CDC | Migrates existing data, then captures and applies ongoing changes | Most common; supports cutover with minimal downtime |
| CDC only | Captures and replicates only changes (no initial data load) | When you've already loaded the data by another method |
Oracle → Oracle on RDS
MySQL → Aurora MySQL
PostgreSQL → Aurora PostgreSQL
These are straightforward: DMS reads from the source and writes to the target. Schema structures, data types, and SQL syntax are compatible.
Oracle → Aurora PostgreSQL
SQL Server → MySQL
Oracle → DynamoDB
Heterogeneous migrations require an additional step: schema conversion. You use the AWS Schema Conversion Tool (SCT) to convert:
SCT generates a report highlighting:
| Category | Meaning |
|---|---|
| 🟢 Green | Automatically converted — no action needed |
| 🟡 Yellow | Converted with minor manual adjustments |
| 🔴 Red | Cannot be automatically converted — requires manual rewriting |
Source: On-premises Oracle 19c
- Enable supplemental logging
- Create a DMS user with SELECT and CDC privileges
Target: Aurora PostgreSQL 15
- Create the database and schema (using SCT output)
- Configure security group to allow traffic from the DMS replication instance
Subscribe to continue reading
Get full access to this lesson and all 10 lessons in this course.