aws dms · migration guide · checked October 2026

AWS Database Migration Service (DMS): move a live database to AWS with minutes of downtime.

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.

cutover downtime
minutes, not hours
replication mode
full load + CDC
DMS Schema Conversion
free (S3 storage only)
TL;DR
  • AWS DMS does two jobs: a one-time full load of existing data, then change data capture (CDC) that streams every new insert, update and delete from the source until you cut over. Because the source stays live, cutover downtime is usually minutes: stop writes, let CDC drain, repoint the app.
  • Same-engine (homogeneous) moves, such as PostgreSQL to RDS for PostgreSQL or MySQL to Aurora MySQL, are mostly a data move. Engine changes (heterogeneous), such as Oracle or SQL Server to Aurora PostgreSQL, need schema conversion first with DMS Schema Conversion or the Schema Conversion Tool (SCT). What they cannot convert automatically is the real work.
  • The DMS bill is usually small. The cost is the engineering: schema conversion, CDC validation and cutover rehearsal. For a qualifying migration to AWS, an AWS partner can file MAP funding to offset that work, and AWS decides.
the core mechanism

IWhat AWS DMS does: full load, then CDC

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.

homogeneous vs heterogeneous

IIThe two shapes of migration, and where schema conversion enters

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.

Schema conversion: DMS Schema Conversion and SCT

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.

common moves

IIICommon source and target pairs

Most startup database migrations to AWS are one of these.

common DMS migrations · what changes · 2026
FromCommon AWS targetShapeWhat to watch
Self-managed or cloud PostgreSQLRDS or Aurora PostgreSQLHomogeneousExtensions, logical replication settings, large tables
MySQL or MariaDBRDS or Aurora MySQLHomogeneousBinlog retention and format, LOB columns
SQL ServerRDS for SQL Server, or Aurora PostgreSQLHomogeneous or heterogeneousT-SQL conversion if you change engines; licensing
OracleAurora PostgreSQL or RDS for OracleMostly heterogeneousPL/SQL packages, sequences, CLOBs; Oracle licensing
MongoDBAmazon DocumentDBHomogeneous (compatible API)Feature compatibility, index builds
Run a schema assessment before committing a timeline for any engine change.
the end-to-end workflow

IVThe DMS workflow, step by step

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.

  • Assess: Inventory size, table count, largest tables, LOB columns, keys, stored code and write volume. For engine changes, run the schema assessment. Choose and size the target. Output: a sizing and convertibility readout and a downtime budget.
  • Convert the schema: Same engine: dump and reload with native tools. Engine change: convert with DMS Schema Conversion or SCT, resolve the flagged items, deploy to the empty target. Secondary indexes and foreign keys are often added after the full load.
  • Full load: Create the replication instance or DMS Serverless configuration, the source and target endpoints, and a task with table mappings and rules. Enable CDC so the start log position is recorded before the first row moves.
  • CDC replication: DMS streams changes from the source log to the target. The system stays in this state, source live and target caught up, for as long as you need to validate.
  • Cutover: In a quiet window, stop writes to the source, wait for CDC lag to reach zero, re-enable deferred constraints, validate, repoint the application and resume writes. Keep the source intact for rollback.
  • Validate: Use DMS data validation (row counts and checksums), application smoke tests and a monitoring soak. Then decommission the source, the task and the replication capacity.
rollback is a first-class step

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.

instances, endpoints, serverless

VReplication instances, endpoints and DMS Serverless

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.

where migrations break

VIThe pitfalls that derail real DMS migrations

A handful of known issues cause most stalled migrations. An experienced team plans around them from day one.

  • LOBs (large objects): BLOB, CLOB, TEXT and BYTEA columns are the most common cause of slow or failed tasks. Limited LOB mode is fast but truncates values past a size cap; full LOB mode is lossless but slow. Pick the mode per table from the real maximum object size.
  • Very large tables: Split them into parallel segments, add secondary indexes after the load, and give the load phase more capacity.
  • Schema edge cases: What conversion cannot handle (complex PL/SQL, sequences and identity semantics, proprietary functions) must be rewritten and tested by hand. Size it from the assessment report before you commit.
  • Tables without a primary key: CDC needs to identify rows to apply updates and deletes. Add a key or plan special handling.
  • Sequences and triggers: DMS copies rows, not sequence state. Advance sequences past the highest migrated value at cutover, and disable target triggers during the load.
  • Source log retention: If the source purges log entries faster than DMS reads them, CDC breaks and you restart the full load. Extend retention to cover the migration window.
what it costs

VIIWhat DMS costs, and when AWS funding applies

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.

Who files it
FundingWho files itAmountWhen 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) fundingYour 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) fundingYour 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 FoundersFounder applies$1,000 to start, up to $5,000Self-funded startups with no investor or accelerator behind them.
AWS Activate PortfolioFounder appliesup to $200,000Startups backed by a VC firm, accelerator or angel investor that is an AWS Activate Provider.
Facts checked on October 10, 2026. AWS decides every application.
who runs it for you

VIIIHow CloudRoute fits

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.

homogeneous vs heterogeneous

Homogeneous vs heterogeneous migration with DMS

Same engine or a different one. Homogeneous is mostly a data move; heterogeneous adds schema conversion, manual code work and real schedule risk.

FactorHomogeneous (e.g. MySQL to Aurora MySQL)Heterogeneous (e.g. Oracle to Aurora PostgreSQL)
Engine changeSame engine and dialectDifferent engine and dialect
ToolsDMS (or homogeneous data migrations) plus native schema dumpDMS Schema Conversion or SCT, then DMS
SchemaCarries overConverted; some of it by hand
Stored codeCompatible as-isConverted; complex code rewritten
Main effortData volume, LOBs, large tablesThe manual conversion remainder and validation
Cutover downtimeMinutes (full load + CDC)Minutes (same mechanics)
RiskLower, well-troddenHigher; assess first
Both shapes use the same full load + CDC engine and the same short cutover. The difference is upstream, in the schema.
scoping a database migration?
Get matched with a partner who has run your source and target with DMS
Get matched free with a vetted AWS partner who can file it
how a match works

How a match works (example)

  1. You tell us about the work

    You fill in a short form: what you run today, what you want to move, test or build, your stage and your region.

  2. We pick one partner

    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.

  3. The partner checks MAP funding

    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.

  4. The partner files, AWS decides

    If the work qualifies, the partner files the funding request with AWS. AWS reviews it and decides. The amount depends on the workload.

  5. You pay nothing

    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.

faq

Common questions

What is the difference between AWS DMS and schema conversion (SCT or DMS Schema Conversion)?
They do different jobs. DMS moves data: a full load, then CDC until cutover. Schema conversion translates tables, types, stored procedures and triggers from one engine's dialect to another. Same-engine moves only need DMS. Engine changes need schema conversion first, then DMS to move the data into the converted schema.
How much downtime does a DMS migration need?
Usually minutes. The data and ongoing changes are already on the target before cutover, so cutover is: stop writes, wait for CDC lag to reach zero, validate, repoint the application, scheduled into a quiet window.
Can DMS migrate a database with zero downtime?
Near zero, not literally zero, in the standard pattern: there is a brief write freeze at cutover. True zero-downtime cutovers are possible with bidirectional replication or application dual-writes, but they add real complexity.
What is DMS Serverless and should I use it?
DMS Serverless provisions and scales replication capacity for you within a range you set in DMS capacity units, billed by the hour. It is a sensible default for most teams because it removes instance sizing. A provisioned instance can still win for very large, steady loads.
How long does an Oracle to Aurora PostgreSQL migration take?
It depends mostly on schema complexity, not data size. A clean schema that converts mostly automatically can take a few weeks; one full of PL/SQL packages and proprietary features takes longer because engineers rewrite that code by hand. Run the schema assessment first so the timeline is based on your actual schema.
What does AWS DMS cost?
You pay by the hour for replication capacity (an 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 bigger cost is the engineering around the migration.
Can AWS fund a database migration?
For a qualifying migration to AWS, yes: an AWS partner files MAP (Migration Acceleration Program) funding and AWS decides. For startups, partner-filed funding is typically $50K to $150K. Depends on the workload; AWS approves. CloudRoute matches you with a vetted partner who has done your source and target pair and can file it. CloudRoute is free for startups.

Migrate your database to AWS with DMS, run by a vetted partner

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.

we reply within24 hours
cutover downtimeminutes
CloudRoute fee for startups$0