Открыть сервис

AWS DMS

AWS Database Migration Service (AWS DMS) — это облачный сервис, предоставляемый Amazon Web Services (Amazon — организация, признанная в РФ нежелательной), предназначенный для миграции баз данных в облачную инфраструктуру AWS или между различными платформами. Сервис позволяет выполнять перенос данных с минимальным временем простоя (downtime) и поддерживает гетерогенные (между разными СУБД) и гомогенные (между одинаковыми СУБД) миграции.

История и развитие

Сервис AWS DMS был анонсирован компанией Amazon (организация, признанная в РФ нежелательной) в 2015 году на конференции AWS re:Invent. Первоначально он поддерживал миграцию между реляционными базами данных, такими как Oracle, Microsoft SQL Server и MySQL. В последующие годы функциональность была значительно расширена:

  • 2016 год: добавлена поддержка PostgreSQL, Amazon Aurora и Amazon Redshift.
  • 2017 год: внедрена функция непрерывной репликации изменений (CDC — Change Data Capture) для минимизации времени простоя.
  • 2018 год: появилась поддержка миграции из NoSQL-баз данных (MongoDB, DynamoDB) и возможность миграции в Amazon S3.
  • 2020-е годы: добавлены возможности для миграции из SAP ASE, IBM Db2 и других корпоративных систем.

Сервис стал ключевым инструментом в стратегии AWS по привлечению клиентов из локальных дата-центров (on-premises) в облако.

Архитектура и принцип работы

AWS DMS работает по принципу «репликационного инстанса» — виртуальной машины в облаке AWS, которая выполняет задачи по извлечению, преобразованию и загрузке данных (ETL).

Основные компоненты

  • Репликационный инстанс — выделенный вычислительный ресурс (EC2-инстанс), который управляет процессом миграции. Он может быть различных классов (например, dms.t2.medium, dms.c5.large) в зависимости от объёма данных.
  • Конечные точки (Endpoints) — конфигурации, описывающие источник и цель миграции. Они содержат информацию о типе базы данных, адресе, порте, учётных данных и параметрах подключения.
  • Задача миграции (Task) — набор инструкций, определяющих, какие таблицы, схемы или базы данных переносятся, как обрабатываются изменения и какие преобразования применяются.

Типы миграции

AWS DMS поддерживает три основных режима работы:

  1. Полная загрузка (Full Load) — копирование всех существующих данных из источника в цель. Выполняется однократно, после чего задача завершается. Подходит для миграции с длительным простоем.
  2. Полная загрузка + непрерывная репликация (Full Load + CDC) — после копирования существующих данных сервис продолжает отслеживать изменения в источнике (вставки, обновления, удаления) и применяет их к целевой базе в реальном времени. Это позволяет минимизировать простой приложений.
  3. Только непрерывная репликация (CDC Only) — используется для синхронизации двух баз данных без начальной загрузки, например, для создания реплики для чтения или для переключения трафика.

Поддерживаемые СУБД и платформы

AWS DMS поддерживает широкий спектр баз данных, разделённых на категории источника и цели.

Источники (Source)

Цели (Target)

  • Реляционные: Amazon RDS (MySQL, PostgreSQL, Oracle, SQL Server, MariaDB), Amazon Aurora (MySQL и PostgreSQL), Amazon Redshift, Amazon RDS for Db2.
  • Хранилища: Amazon S3, Amazon OpenSearch Service, Amazon Kinesis Data Streams.
  • NoSQL: Amazon DynamoDB, Amazon Neptune.
  • Локальные базы: любые СУБД, доступные через публичный IP или VPN (например, локальный PostgreSQL).

Классификация миграций

Гомогенная миграция

Перенос данных между одинаковыми СУБД (например, с локального PostgreSQL на Amazon RDS for PostgreSQL). В этом случае AWS DMS автоматически конвертирует типы данных и схемы без дополнительных настроек.

Гетерогенная миграция

Перенос между разными СУБД (например, с Oracle на Amazon Aurora PostgreSQL). Для этого требуется преобразование схемы (schema conversion) с помощью дополнительного инструмента AWS Schema Conversion Tool (AWS SCT). AWS SCT анализирует исходную схему, выявляет несовместимые типы данных, хранимые процедуры и функции, а затем генерирует эквивалентный код для целевой СУБД.

Применение

AWS DMS используется в следующих сценариях:

  • Миграция в облако: перенос корпоративных баз данных из локальных дата-центров в AWS для снижения затрат на инфраструктуру и повышения масштабируемости.
  • Создание реплик для чтения: организация непрерывной репликации данных в Amazon Redshift для аналитических нагрузок без влияния на продуктивную базу.
  • Резервное копирование и аварийное восстановление: поддержание синхронной или асинхронной реплики в другом регионе AWS.
  • Интеграция данных: объединение данных из нескольких источников в единое хранилище (например, Amazon S3) для последующей обработки.
  • Переход на managed-сервисы: замена самостоятельных инсталляций СУБД на управляемые сервисы Amazon RDS или Amazon Aurora.

Ограничения и особенности

  • Сетевые требования: репликационный инстанс должен иметь сетевой доступ к источнику и цели. Для локальных баз требуется настроить VPN или Direct Connect.
  • Производительность: скорость миграции зависит от класса репликационного инстанса, пропускной способности сети и размера данных. Для больших объёмов (сотни гигабайт) рекомендуется использовать параллельную загрузку.
  • Поддержка типов данных: не все типы данных поддерживаются при гетерогенной миграции. Например, некоторые пользовательские типы или расширения PostgreSQL (PostGIS) могут потребовать ручной обработки.
  • Транзакционная целостность: при использовании CDC гарантируется доставка изменений в том же порядке, в котором они были применены в источнике, но возможны задержки при высокой нагрузке.
  • Стоимость: оплачивается время работы репликационного инстанса (почасово) и объём передаваемых данных. Для длительных миграций затраты могут быть значительными.

Интересные факты

  • AWS DMS поддерживает миграцию из баз данных, работающих на платформе Windows, включая SQL Server, что упрощает переход для организаций, использующих legacy-системы.
  • Сервис может выполнять миграцию «на лету» (live migration) без остановки приложений, если источник поддерживает CDC (например, Oracle с включённым режимом архивирования логов).
  • Для баз данных объёмом до 1 ТБ полная загрузка обычно занимает от нескольких часов до суток в зависимости от конфигурации.
  • AWS DMS не поддерживает миграцию из IBM Db2 for z/OS (мейнфреймы) напрямую — для таких сценариев используются отдельные партнёрские решения.

Источники

  • Официальная документация AWS Database Migration Service (AWS DMS).
  • AWS re:Invent 2015: Launch Announcement for AWS DMS.
  • Руководство пользователя AWS Schema Conversion Tool (AWS SCT).
  • Статья «Migrating databases to AWS using AWS DMS» в блоге AWS Database Blog (2019).
  • Документация Amazon RDS и Amazon Aurora.

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →