AWS Database Migration Service (DMS) is a managed service that helps migrate databases to AWS quickly and securely, with minimal downtime. It supports both homogeneous migrations (e.g., Oracle to Oracle, MySQL to MySQL) and heterogeneous migrations (e.g., Oracle to MySQL, SQL Server to PostgreSQL).
Minimal Downtime:
AWS DMS ensures minimal disruption to applications by keeping the source database operational during the migration process.
Wide Database Compatibility:
Supports popular databases, including:
- Source Databases: Oracle, SQL Server, MySQL, PostgreSQL, MariaDB, SAP ASE, MongoDB, etc.
- Target Databases: Amazon RDS, Aurora, Redshift, DynamoDB, S3, and other on-premises or cloud databases.
Continuous Replication:
Supports ongoing replication to keep the source and target databases in sync, enabling near-zero downtime migrations.
Data Transformation:
Basic transformations like column mapping, data type conversion, and filtering are built into the service.
For more complex transformations, AWS Schema Conversion Tool (SCT) can be used alongside DMS.
Sources
Relational Databases:
- Amazon RDS (Oracle, SQL Server, MySQL, PostgreSQL, MariaDB)
- Amazon Aurora (MySQL-compatible, PostgreSQL-compatible)
- Oracle (on-premises, AWS EC2, RDS)
- Microsoft SQL Server (on-premises, AWS EC2, RDS)
- MySQL (on-premises, AWS EC2, RDS)
- PostgreSQL (on-premises, AWS EC2, RDS)
- MariaDB (on-premises, AWS EC2, RDS)
- SAP ASE (formerly Sybase ASE)
- IBM Db2 for LUW (Linux, Unix, Windows)
NoSQL Databases:
- MongoDB (on-premises, EC2, or managed services)
- Amazon DocumentDB (with MongoDB compatibility)
Data Warehouses:
- Amazon Redshift
- Teradata
- Oracle Data Warehouse
- SQL Server Data Warehouse
Other Data Sources:
- Amazon S3 (to migrate from files stored in S3 buckets)
- HDFS (Hadoop Distributed File System)
Destinations
Relational Databases:
- Amazon RDS (Oracle, SQL Server, MySQL, PostgreSQL, MariaDB)
- Amazon Aurora (MySQL-compatible, PostgreSQL-compatible)
- Oracle (on-premises, AWS EC2, RDS)
- Microsoft SQL Server (on-premises, AWS EC2, RDS)
- MySQL (on-premises, AWS EC2, RDS)
- PostgreSQL (on-premises, AWS EC2, RDS)
- MariaDB (on-premises, AWS EC2, RDS)
NoSQL Databases:
- Amazon DynamoDB
Data Warehouses:
- Amazon Redshift
Object Storage:
- Amazon S3 (as a target for migrating data into object storage, often for analytics or archiving)
Streaming Services:
- Amazon Kinesis Data Streams
- Amazon Managed Streaming for Apache Kafka (MSK)
Other Targets:
- Elasticsearch Service (Amazon OpenSearch)
- AWS Glue (for ETL pipelines)
Combinations
Relational to Relational:
E.g., Oracle to Amazon Aurora, SQL Server to PostgreSQL, MySQL to MySQL.
Relational to NoSQL:
E.g., Oracle to DynamoDB, SQL Server to DynamoDB.
Relational to Data Warehouse:
E.g., Oracle to Redshift, MySQL to Redshift.
Relational to Object Storage:
E.g., PostgreSQL to Amazon S3, Oracle to S3 for archiving.
NoSQL to Relational:
E.g., MongoDB to Aurora, DynamoDB to RDS PostgreSQL.
NoSQL to Data Warehouse:
E.g., MongoDB to Redshift, DocumentDB to Redshift.
Data Warehouse to Data Warehouse:
E.g., Oracle Data Warehouse to Redshift, Teradata to Redshift.