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 поддерживает три основных режима работы:
- Полная загрузка (Full Load) — копирование всех существующих данных из источника в цель. Выполняется однократно, после чего задача завершается. Подходит для миграции с длительным простоем.
- Полная загрузка + непрерывная репликация (Full Load + CDC) — после копирования существующих данных сервис продолжает отслеживать изменения в источнике (вставки, обновления, удаления) и применяет их к целевой базе в реальном времени. Это позволяет минимизировать простой приложений.
- Только непрерывная репликация (CDC Only) — используется для синхронизации двух баз данных без начальной загрузки, например, для создания реплики для чтения или для переключения трафика.
Поддерживаемые СУБД и платформы
AWS DMS поддерживает широкий спектр баз данных, разделённых на категории источника и цели.
Источники (Source)
- Реляционные: Oracle, Microsoft SQL Server, MySQL, MariaDB, PostgreSQL, IBM Db2 LUW, SAP ASE, Amazon RDS (все версии).
- NoSQL: MongoDB, Amazon DynamoDB.
- Документные: Amazon DocumentDB.
- Прочие: Microsoft Azure SQL Database, Google Cloud SQL (ограниченная поддержка).
Цели (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 →