AWS DMS copies a running database into RDS, Aurora or another target while the source keeps serving traffic: a full load, then change data capture (CDC) until you cut over. Same-engine moves are mostly a data job. Engine changes such as Oracle to Aurora PostgreSQL also need schema conversion, which is where the real work is. This guide covers the workflow, DMS Serverless, the pitfalls that derail migrations, and cost.
DMS is a managed replication service. You point it at a source and a target, and it moves the data in two phases back to back.
In the full load, DMS reads every row of the selected tables and writes them to the target, in parallel across tables. For a large database this is the slowest phase, depending on volume, indexes and replication capacity.
In change data capture (CDC), DMS reads the source's transaction log (redo on Oracle, binlog on MySQL, WAL on PostgreSQL, the transaction log on SQL Server) and replays each committed change on the target. CDC starts from a log position recorded when the full load began, so nothing is missed. The target stays close behind the source.
That design is why cutovers are short: stop writes on the source, wait for CDC lag to reach zero, validate, and repoint the application. DMS moves data only; networking, the application cutover and rollback planning sit around it.
Almost every DMS question comes down to one fork: same engine or a different one. The answer decides whether DMS alone is enough and drives most of the effort and risk.
A homogeneous migration keeps the engine: PostgreSQL to RDS for PostgreSQL, MySQL to Aurora MySQL, SQL Server to RDS for SQL Server, MongoDB to Amazon DocumentDB. Schema, types and stored procedures are already compatible. You move the schema with native tools and use DMS for the data. AWS also offers homogeneous data migrations, which use native database tools with no replication instance to size.
A heterogeneous migration changes the engine: Oracle or SQL Server to Aurora PostgreSQL, Db2 to Aurora. Oracle NUMBER, DATE, CLOB, sequences, PL/SQL packages and proprietary functions have no one-to-one PostgreSQL equivalent, so the schema must be converted first.
DMS Schema Conversion is the managed, in-console way to assess and convert schemas; AWS's pricing page says it is free to use, and you pay only for the S3 storage it uses. The downloadable AWS Schema Conversion Tool (SCT) does the same job on your own machine. Both produce an assessment report that shows how much converts automatically and itemizes the rest.
They translate tables, indexes, views, sequences and data types, and convert stored procedures, functions and triggers into the target dialect. Anything they cannot convert, such as complex PL/SQL packages or autonomous transactions, becomes an action item for an engineer. That manual remainder is the real schedule risk in a heterogeneous migration.
Order matters: convert and deploy the schema onto the empty target first, fix the manual items, then point DMS at the source to load and replicate into that schema.
Most startup database migrations to AWS are one of these.
| From | Common AWS target | Shape | What to watch |
|---|---|---|---|
| Self-managed or cloud PostgreSQL | RDS or Aurora PostgreSQL | Homogeneous | Extensions, logical replication settings, large tables |
| MySQL or MariaDB | RDS or Aurora MySQL | Homogeneous | Binlog retention and format, LOB columns |
| SQL Server | RDS for SQL Server, or Aurora PostgreSQL | Homogeneous or heterogeneous | T-SQL conversion if you change engines; licensing |
| Oracle | Aurora PostgreSQL or RDS for Oracle | Mostly heterogeneous | PL/SQL packages, sequences, CLOBs; Oracle licensing |
| MongoDB | Amazon DocumentDB | Homogeneous (compatible API) | Feature compatibility, index builds |
A production migration follows the same arc either way. Every step before cutover is repeatable, so teams rehearse on a staging target first and measure the timings.
Until validation passes, the original database stays untouched. If the target misbehaves, repoint the application back to the source. A migration without a tested rollback path is not a finished plan.
DMS has a small set of moving parts, and replication capacity is the lever that decides how fast the migration runs.
A replication instance is the managed compute that reads, transforms and writes, inside your VPC. Larger instances run full load and CDC faster and hold more in-flight changes; under-sizing is a common reason for slow loads or CDC backlogs. An endpoint holds connection details for the source or target, and you can test connectivity before running anything. A task binds them with table mappings, transformation rules, the migration type and LOB settings.
DMS Serverless removes instance sizing: you set a capacity range in DMS capacity units (DCUs; AWS says one DCU equals 2 GB of RAM) and DMS provisions and scales the compute, billed by the hour. It suits uneven loads and teams that do not want to hand-tune instances. A provisioned instance can still win for very large, steady loads where cost predictability matters.
A handful of known issues cause most stalled migrations. An experienced team plans around them from day one.
Per AWS's <a href="https://aws.amazon.com/dms/pricing/">DMS pricing page</a>, you pay by the hour for the replication capacity you use, whether a replication instance or DMS Serverless, plus storage and data transfer when the source is in another Region or outside AWS. DMS Schema Conversion is free to use apart from S3 storage.
The target RDS or Aurora database is an ongoing cost you would pay anyway. For Oracle to Aurora PostgreSQL, the business case is usually removing Oracle license and support costs, which is why those migrations are worth their engineering effort.
The real spend is people: schema conversion, the manual remainder, building and validating tasks, rehearsing and running the cutover.
That is the work MAP (Migration Acceleration Program) funding is meant to help with. For a qualifying migration to AWS, your matched AWS partner files MAP funding and AWS decides. For startups, partner-filed funding is typically $50K to $150K. Depends on the workload; AWS approves. AWS Activate credits are separate: you apply for them yourself, and they pay AWS usage, not partner fees.
| Funding | Who files it | Amount | When it fits |
|---|---|---|---|
| Migration Acceleration Program (MAP) | Your matched AWS partner | $50K to $150K for startups. Depends on the workload; AWS approves. | You are not on AWS yet and want to migrate. |
| Proof of concept (POC) funding | Your matched AWS partner | $50K to $150K for startups. Depends on the workload; AWS approves. | You want to test something, whether or not you are on AWS today. |
| Incremental workload (IW) funding | Your matched AWS partner | $50K to $150K for startups. Depends on the workload; AWS approves. | You are already on AWS and are launching new work: a new AI feature, a new customer or a new contract. |
| AWS Activate Founders | Founder applies | $1,000 to start, up to $5,000 | Self-funded startups with no investor or accelerator behind them. |
| AWS Activate Portfolio | Founder applies | up to $200,000 | Startups backed by a VC firm, accelerator or angel investor that is an AWS Activate Provider. |
You do not have to run DMS yourself, and for an engine change you probably should not learn schema conversion on your production database.
Tell us the source (Oracle, SQL Server, MySQL, PostgreSQL, MongoDB), the target, your rough data size and your downtime tolerance. We match you with one vetted AWS partner that has done that pair before. We reply within 24 hours; your matched partner reaches out within 5 business days. The partner runs the workflow (assessment, schema conversion, DMS tasks, CDC validation, rehearsed cutover, soak) and files MAP funding when the migration qualifies.
CloudRoute is free for startups. Partners pay CloudRoute a monthly membership plus 10% of AWS-approved funding. For the foundation a database lands in, see the AWS landing zone guide, and the migration track for how engagements run.
Same engine or a different one. Homogeneous is mostly a data move; heterogeneous adds schema conversion, manual code work and real schedule risk.
| Factor | Homogeneous (e.g. MySQL to Aurora MySQL) | Heterogeneous (e.g. Oracle to Aurora PostgreSQL) |
|---|---|---|
| Engine change | Same engine and dialect | Different engine and dialect |
| Tools | DMS (or homogeneous data migrations) plus native schema dump | DMS Schema Conversion or SCT, then DMS |
| Schema | Carries over | Converted; some of it by hand |
| Stored code | Compatible as-is | Converted; complex code rewritten |
| Main effort | Data volume, LOBs, large tables | The manual conversion remainder and validation |
| Cutover downtime | Minutes (full load + CDC) | Minutes (same mechanics) |
| Risk | Lower, well-trodden | Higher; assess first |
You fill in a short form: what you run today, what you want to move, test or build, your stage and your region.
We read your answers and pick one vetted AWS consulting partner that fits the work, the stack and the region. We reply within 24 hours; your matched partner reaches out within 5 business days.
Your matched partner scopes the migration with you. Then it checks whether the move qualifies for MAP (Migration Acceleration Program) funding. MAP is for teams that are not on AWS yet.
If the work qualifies, the partner files the funding request with AWS. AWS reviews it and decides. The amount depends on the workload.
CloudRoute is free for startups. Partners pay CloudRoute a monthly membership plus 10% of AWS-approved funding.
AWS Activate credits are separate, and you apply for them yourself. Use Activate Founders if no investor backs you. Use Activate Portfolio with the Org ID or invite from your VC, accelerator, incubator or angel group if it is an Activate Provider. A consulting partner cannot apply for Activate on your behalf.
Tell us your source and target. CloudRoute matches you with one vetted AWS partner who has run that migration with DMS: full load, CDC, rehearsed cutover, validation. For a qualifying migration the partner files MAP funding: typically $50K to $150K for startups. Depends on the workload; AWS approves. CloudRoute is free for startups.