// Engineering Log
Migrating databases to the cloud: AWS DMS, Google DMS, and Yandex Data Transfer
Published on 2026-09-22
// Fast route
This article belongs to the topic Deploy and reliability.
Migrating a database to a cloud provider rarely boils down to dumping and loading. If the database is large and downtime must be measured in minutes, you need a service that first copies the data, then catches up the changes accumulated during copying, and keeps the copy up to date until the cutover. Major clouds have their own tools for this: AWS Database Migration Service, Google Cloud Database Migration Service, and Yandex Data Transfer.
How migration without long downtime works
Almost all such services operate using the same pattern:
- Initial copy — transfer existing data table by table.
- CDC (Change Data Capture) — read the source change log (WAL in PostgreSQL, binlog in MySQL, redo logs in Oracle) and apply changes to the target while copying is in progress and after it.
- Cutover — the application is briefly stopped, wait until the target catches up with the source, and point the application to the new database.
Migrations are divided into homogeneous (PostgreSQL → PostgreSQL) and heterogeneous (Oracle → PostgreSQL). In the latter case, besides data, you need to translate schema, procedures and types — and this is where services differ the most.
AWS Database Migration Service
The oldest and most universal of the three. Works in two modes:
- With a replication instance — a virtual machine that reads the source and writes to the target. Billed by the hour depending on the instance class, plus storage beyond the included volume.
- DMS Serverless — capacity is selected automatically and billed in DCU per hour.
For heterogeneous migrations there is DMS Schema Conversion: conversion of schema and code, e.g. from Oracle or SQL Server to PostgreSQL. According to AWS pricing pages this feature is free; you only pay for the S3 storage it uses.
Strengths of DMS — wide choice of sources and targets and mature support for commercial DBMSs. Weaknesses — you need to size the instance yourself, monitor tasks and deal with CDC nuances for each source.
Google Cloud Database Migration Service
The service is designed to move databases into Google Cloud and operates without dedicated virtual machines: Google handles the data snapshot and replication of changes.
Documentation lists support for:
- homogeneous migrations — MySQL to Cloud SQL for MySQL, PostgreSQL to Cloud SQL for PostgreSQL and AlloyDB, SQL Server to Cloud SQL for SQL Server;
- heterogeneous — Oracle and SQL Server to Cloud SQL for PostgreSQL or AlloyDB with schema conversion.
The main limitation is direction: the service moves data into Google-managed databases, not between arbitrary systems. Pricing depends on migration type; current figures are on the service’s pricing page.
Yandex Data Transfer
Yandex Cloud service for data transfer and continuous replication between databases, queues and storages. Supports three transfer types: copy, replication, and copy followed by replication.
Sources according to documentation: PostgreSQL, MySQL, Oracle, MongoDB, ClickHouse, Greenplum, YDB, Apache Kafka, Data Streams, Object Storage, Elasticsearch, OpenSearch and others. Targets: PostgreSQL, MySQL, MongoDB, ClickHouse, Greenplum, YDB, Kafka, Object Storage, Apache Iceberg, OpenSearch and others. Not all source-target combinations are available; some operate in Preview mode.
A distinguishing feature of Data Transfer is orientation not only to migration but also to continuous streams: for example, replicating from PostgreSQL to ClickHouse for analytics or exporting changes to Kafka.
Cost consists of worker compute resources (vCPU and memory billed hourly) and the number of rows transferred; the first 100M rows per month are not charged, and transfers in Preview are free.
Comparison
| AWS DMS | Google DMS | Yandex Data Transfer | |
|---|---|---|---|
| Model | instance or serverless | serverless | managed service |
| Direction | between many systems | into Cloud SQL and AlloyDB | between databases, queues and storages |
| Schema conversion | DMS Schema Conversion | for Oracle and SQL Server → PostgreSQL | mostly manual |
| Continuous replication | yes | for migration | yes, including to ClickHouse and Kafka |
| Pricing | instance hours or DCU | per Google pricing | worker resources and rows beyond 100M |
What is available to a Russian company
- Payment. You cannot pay AWS or Google Cloud with a Russian card: Visa and Mastercard have not worked abroad since March 2022, and Google Cloud does not accept new customers from Russia.
- Personal data. From July 1, 2025 the primary recording of personal data of Russian citizens must be maintained in databases located on the territory of Russia (more about 152-FZ). Moving such a database to a foreign cloud does not comply with this requirement.
Therefore, for a Russian company the realistic choices are Yandex Data Transfer, similar services from other Russian clouds, or a self-managed migration: PostgreSQL logical replication, MySQL replication, pg_dump followed by catching up changes. On the internals of these DBMSs — see the articles about MySQL and PostgreSQL.
How to prepare for migration
- Check that your source is supported and the required CDC mode: for PostgreSQL you typically need
wal_level = logical, for MySQL — binlog in ROW format. - Do a trial run on a copy: copying time, replication lag, volume of changes.
- Reconcile data after copying — row counts and checksums for key tables.
- Check what services do not transfer: users and privileges, sequences, triggers, extensions.
- Plan cutover and rollback: when writes are stopped, how long to wait for catch-up, and how to revert to the old database if something goes wrong.
Common mistakes
- No primary keys — CDC cannot correctly apply changes to the table.
- Replication lag not accounted for — cutover is performed while the target has not yet caught up to the source.
- Sequences not synchronized — after cutover new rows receive identifiers that are already taken.
- Exotic types and extensions in heterogeneous migration without a trial run.
- Personal data transferred abroad without assessing legal requirements.
// Similar task
If you are dealing with something similar
This article belongs to one of the main working topics. You can keep reading on the topic, go to the homepage to understand what I do, or open the service pages directly.
Article topic
Deploy and reliability
Docker, CI/CD, releases, monitoring, observability, and incident handling.
Typical tasks behind this topic
- Set up deployment without manual chaos
- Add monitoring, alerts, and baseline observability
- Investigate incidents and stabilize production
// Next step
If you need help with this topic, not just another article, it is better to go straight to the service page. The homepage and topic collection stay available as secondary routes.
Open services// Reviews
Related reviews
I came with an expensive request to configure a VPS server, but during the consultation Mikhail suggested a much simpler, more affordable solution. In the end I saved time and money. Mikhail — a true expert who works for the client's result, not for the fee. I recommend him!
I came with an expensive request to configure a VPS server, but during the consultation Mikhail suggested a much simpler and more cost-effective solution. In the end I saved budget and time. Mikhail — a true expert who …
VPS setup, server setup
2026-05-12 · ★ 5/5
Excellent work! Set up the server very quickly, installed the control panel, and configured the IP. Definitely recommend!
Excellent work! Very quickly set up the server, installed the panel, configured the IP I can definitely recommend it!
Everything was excellent; helped promptly and professionally. Thank you — I recommend them to the community.
Everything's great, helped promptly and professionally, thank you, I recommend it to the community
VPS setup, server setup
2026-04-16 · ★ 5/5
There were several issues concerning both the technical side and overall understanding. Mikhail responded quickly, resolved the technical problems, and helped me understand them — many thanks. I'm satisfied with the result.
There were several issues concerning both the technical side and overall understanding. Mikhail responded quickly to the request, helped sort things out and resolved the technical problems and helped clarify …
VPS setup, server setup
2026-02-18 · ★ 5/5
Everything was done quickly and efficiently. I recommend.
Everything was done quickly and efficiently. I recommend.
VPS setup, server setup
2026-01-17 · ★ 5/5
Everything went well; the contractor responded quickly to questions and helped resolve the issue. Thanks!
Everything went well, the contractor responded quickly to questions and helped resolve the issue. Thank you!
VPS setup, server setup
2025-12-16 · ★ 5/5
// Contact
Need help?
Get in touch with me and I'll help solve the problem
I reply within one business day (03:00-13:00 GMT)
Или оставьте заявку здесь:
// Related