Yandex Cloud
Поиск
Связаться с намиПодключиться
  • Документация
  • Блог
  • Все сервисы
  • Статус работы сервисов
    • Популярные
    • Инфраструктура и сеть
    • Платформа данных
    • Контейнеры
    • Инструменты разработчика
    • Бессерверные вычисления
    • Безопасность
    • Мониторинг и управление ресурсами
    • Машинное обучение
    • Бизнес-инструменты
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Облако для интеграторов
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Контент-программа
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Истории успеха
    • Тарифы Yandex Cloud
    • Промоакции и free tier
    • Правила тарификации
  • Документация
  • Блог
Проект Яндекса
© 2025 ООО «Яндекс.Облако»
Yandex Managed Service for PostgreSQL
  • Начало работы
    • Все руководства
    • Создание кластера PostgreSQL для 1С
    • Создание кластера Linux-серверов «1С:Предприятия» с кластером Managed Service for PostgreSQL
    • Выгрузка базы данных в Yandex Data Processing
    • Поиск проблем с производительностью кластера
    • Анализ производительности и оптимизация
    • Настройка подключения из контейнера Serverless Containers
    • Поставка данных в Yandex Managed Service for Apache Kafka® с помощью Yandex Data Transfer
    • Поставка данных в Yandex Managed Service for YDB с помощью Yandex Data Transfer
    • Поставка данных в Yandex Managed Service for Apache Kafka® с помощью Debezium
    • Захват изменений PostgreSQL и поставка в YDS
    • Поставка данных из Yandex Managed Service for Apache Kafka® с помощью Yandex Data Transfer
    • Перенос данных из Yandex Object Storage с использованием Yandex Data Transfer
    • Настройка отказоустойчивой архитектуры в Yandex Cloud
    • Мониторинг состояния географически распределенных устройств
    • Запись логов балансировщика в PostgreSQL
    • Создание сервера MLFlow для логирования экспериментов и артефактов
    • Работа с данными с помощью Query
    • Федеративные запросы к данным с помощью Query
    • Решение проблем с сортировкой строк после обновления glibc
    • Запись данных с устройства в базу данных
      • Логическая репликация PostgreSQL
      • Миграция базы данных в Managed Service for PostgreSQL
      • Миграция базы данных из Managed Service for PostgreSQL
      • Создание логической реплики Amazon RDS для PostgreSQL в Managed Service for PostgreSQL
      • Миграция базы данных из Yandex Managed Service for PostgreSQL в Yandex Object Storage
      • Миграция данных из Yandex Managed Service for MySQL® в Managed Service for PostgreSQL с помощью Yandex Data Transfer
      • Миграция данных из Managed Service for PostgreSQL в Yandex Managed Service for MySQL® с помощью Yandex Data Transfer
      • Миграция данных из AWS RDS for PostgreSQL в Managed Service for PostgreSQL с помощью Yandex Data Transfer
      • Миграция базы данных из Greenplum® в PostgreSQL
      • Миграция данных из Managed Service for PostgreSQL в Managed Service for OpenSearch с помощью Yandex Data Transfer
      • Асинхронная репликация данных из PostgreSQL в ClickHouse®
  • Управление доступом
  • Правила тарификации
  • Справочник Terraform
  • Метрики Monitoring
  • Аудитные логи Audit Trails
  • Публичные материалы
  • История изменений
  • Обучающие курсы

В этой статье:

  • Необходимые платные ресурсы
  • Перед началом работы
  • Подготовьте тестовые данные
  • Подготовьте и активируйте трансфер
  • Проверьте работоспособность трансфера
  • Проверьте работу копирования
  • Проверьте работу репликации
  • Удалите созданные ресурсы
  1. Практические руководства
  2. Репликация и миграция
  3. Миграция данных из AWS RDS for PostgreSQL в Managed Service for PostgreSQL с помощью Yandex Data Transfer

Миграция данных из AWS RDS for PostgreSQL в Managed Service for PostgreSQL с помощью Yandex Data Transfer

Статья создана
Yandex Cloud
Обновлена 17 марта 2025 г.
  • Необходимые платные ресурсы
  • Перед началом работы
  • Подготовьте тестовые данные
  • Подготовьте и активируйте трансфер
  • Проверьте работоспособность трансфера
    • Проверьте работу копирования
    • Проверьте работу репликации
  • Удалите созданные ресурсы

Чтобы настроить перенос данных из базы Amazon RDS for PostgreSQL в базу Managed Service for PostgreSQL с помощью сервиса Data Transfer:

  1. Подготовьте тестовые данные.
  2. Подготовьте и активируйте трансфер.
  3. Проверьте работоспособность трансфера.

Если созданные ресурсы вам больше не нужны, удалите их.

Перенос данных работает для версий PostgreSQL, начиная с 9.4. Версия PostgreSQL в Managed Service for PostgreSQL должна быть не старше, чем версия PostgreSQL в Amazon RDS.

Примечание

Использование сервисов Amazon не входит в условия использования Yandex Cloud и является предметом отдельного регулирования между клиентом и Amazon. Яндекс не несет ответственности за взаимоотношения клиента и Amazon, вытекающие из использования клиентом продуктов или услуг Amazon.

Необходимые платные ресурсыНеобходимые платные ресурсы

В стоимость поддержки описываемого решения входят:

  • Плата за кластер Managed Service for PostgreSQL: использование вычислительных ресурсов, выделенных хостам, и дискового пространства (см. тарифы Managed Service for PostgreSQL).
  • Плата за использование публичных IP-адресов для хостов кластера (см. тарифы Virtual Private Cloud).
  • Плата за трансфер: использование вычислительных ресурсов и количество переданных строк данных (см. тарифы Data Transfer).
  • Плата за использование NAT-шлюза (см. тарифы Virtual Private Cloud).

Перед началом работыПеред началом работы

Подготовьте инфраструктуру:

Вручную
Terraform
  1. Если у вас нет аккаунта AWS, создайте его.

  2. В Amazon RDS создайте группу параметров и установите в ней параметр rds.logical_replication в значение 1. Остальные параметры можно оставить по умолчанию.

  3. Создайте инстанс Amazon RDS for PostgreSQL (кластер-источник).

    При создании инстанса выполните необходимые настройки:

    • Включите для инстанса публичный доступ.
    • В группу безопасности инстанса добавьте правило, разрешающее входящий TCP-трафик с любых IP-адресов на порт инстанса PostgreSQL (по умолчанию — 5432).
    • Назначьте инстансу созданную ранее группу параметров.

    Примечание

    Если вы изменили группу параметров существующего инстанса, перезагрузите инстанс, чтобы изменения вступили в силу. На время перезагрузки инстанс станет недоступен.

  4. Создайте кластер-приемник Managed Service for PostgreSQL любой подходящей конфигурации с хостами в публичном доступе и следующими настройками:

    • Имя БД — mpg_db.
    • Имя пользователя — mpg_user.
    • Пароль — <пароль_приемника>.
  5. Убедитесь, что группа безопасности кластера Managed Service for PostgreSQL настроена правильно и допускает подключение к кластеру через интернет.

  6. Настройте NAT-шлюз в интернет для подсети, в которой расположен кластер-приемник.

  7. Скачайте сертификат AWS для региона, в котором расположен инстанс Amazon RDS for PostgreSQL.

  1. Если у вас еще нет Terraform, установите его.

  2. Получите данные для аутентификации. Вы можете добавить их в переменные окружения или указать далее в файле с настройками провайдера.

  3. Настройте AWS CLI. Провайдер AWS для Terraform использует конфигурацию AWS CLI для доступа к сервису.

  4. Настройте провайдер Terraform. Чтобы не создавать конфигурационный файл с настройками провайдера вручную, скачайте его и поместите в отдельную рабочую директорию.

  5. Отредактируйте файл provider.tf:

    • Укажите значения параметров для провайдера yandex. Если данные для аутентификации не были добавлены в переменные окружения, укажите их в конфигурационном файле.

    • Добавьте провайдер aws в блок required_providers:

      required_providers {
        ...
        aws = {
          source  = "hashicorp/aws"
          version = ">= 3.70"
        }
      }
      
    • Добавьте описание провайдера aws, указав в параметрах регион, в котором будет расположен инстанс Amazon RDS for PostgreSQL (в примере eu-north-1):

      provider "aws" {
        region = "eu-north-1"
      }
      
  6. Скачайте в ту же рабочую директорию файл конфигурации rds-pg-mpg.tf.

    В этом файле описаны:

    • Инфраструктура, необходимая для работы инстанса Amazon RDS for PostgreSQL:

      • группа подсетей;
      • правило для группы безопасности;
      • группа параметров.

      Инстанс будет использовать сеть, подсети и группу безопасности, существующие по умолчанию.

    • Инстанс Amazon RDS for PostgreSQL (кластер-источник).

    • Инфраструктура, необходимая для работы кластера-приемника Managed Service for PostgreSQL:

      • сеть и подсеть;
      • NAT-шлюз для доступа кластера в интернет;
      • группа безопасности.
    • Кластер-приемник Managed Service for PostgreSQL.

    • Эндпоинты для источника и приемника.

    • Трансфер.

  7. Скачайте сертификат AWS для региона, в котором будет расположен инстанс Amazon RDS for PostgreSQL.

  8. Укажите в файле rds-pg-mpg.tf:

    • Версии PostgreSQL для Amazon RDS for PostgreSQL и Managed Service for PostgreSQL.
    • Семейство параметров для группы параметров Amazon RDS.
    • Путь к скачанному ранее сертификату AWS.
    • Пароли пользователей Amazon RDS for PostgreSQL и Managed Service for PostgreSQL.
  9. Выполните команду terraform init в директории с конфигурационным файлом. Эта команда инициализирует провайдер, указанный в конфигурационных файлах, и позволяет работать с ресурсами и источниками данных провайдера.

  10. Проверьте корректность файлов конфигурации Terraform с помощью команды:

    terraform validate
    

    Если в файлах конфигурации есть ошибки, Terraform на них укажет.

  11. Создайте необходимую инфраструктуру:

    1. Выполните команду для просмотра планируемых изменений:

      terraform plan
      

      Если конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.

    2. Если вас устраивают планируемые изменения, внесите их:

      1. Выполните команду:

        terraform apply
        
      2. Подтвердите изменение ресурсов.

      3. Дождитесь завершения операции.

    В указанном каталоге будут созданы все требуемые ресурсы. Проверить появление ресурсов и их настройки можно в консоли управления.

Подготовьте тестовые данныеПодготовьте тестовые данные

  1. Установите утилиту psql:

    sudo apt update && sudo apt install --yes postgresql-client
    
  2. Подключитесь к базе данных в кластере-источнике Amazon RDS for PostgreSQL:

    psql "host=<URL_хоста> \
    port=<порт_PostgreSQL> \
    sslmode=verify-full \
    sslrootcert=<путь_к_файлу_сертификата> \
    dbname=<имя_БД> \
    user=<имя_пользователя>"
    

    По умолчанию порт PostgreSQL — 5432.

    Примечание

    Подключение к инстансу через интернет может стать доступно не сразу, а в течение часа с момента создания.

  3. Наполните базу тестовыми данными. В качестве примера используется простая таблица, содержащая информацию, поступающую от некоторых датчиков автомобиля.

    Создайте таблицу:

    CREATE TABLE measurements (
        device_id varchar(200) NOT NULL,
        datetime timestamp NOT NULL,
        latitude real NOT NULL,
        longitude real NOT NULL,
        altitude real NOT NULL,
        speed real NOT NULL,
        battery_voltage real,
        cabin_temperature real NOT NULL,
        fuel_level real,
        PRIMARY KEY (device_id)
    );
    

    Наполните таблицу данными:

    INSERT INTO measurements VALUES
    ('iv9a94th6rztooxh5ur2', '2022-06-05 17:27:00', 55.70329032, 37.65472196,  427.5,    0, 23.5, 17, NULL),
    ('rhibbh3y08qmz3sdbrbu', '2022-06-06 09:49:54', 55.71294467, 37.66542005, 429.13, 55.5, NULL, 18, 32);
    

Подготовьте и активируйте трансферПодготовьте и активируйте трансфер

Вручную
Terraform
  1. Создайте эндпоинт-источник типа PostgreSQL и укажите в нем параметры подключения к кластеру:

    • Тип инсталляции — Пользовательская инсталляция.
    • Хост — URL хоста.
    • Порт — 5432.
    • Сертификат CA — выберите файл сертификата AWS.
    • База данных — postgres.
    • Пользователь — postgres.
    • Пароль — <пароль_пользователя>.
  2. Создайте эндпоинт-приемник типа PostgreSQL и укажите в нем параметры подключения к кластеру:

    • Тип инсталляции — Кластер Managed Service for PostgreSQL.
    • Кластер Managed Service for PostgreSQL — <имя_кластера_приемника> из выпадающего списка.
    • База данных — mpg_db.
    • Пользователь — mpg_user.
    • Пароль — <пароль_пользователя>.
  3. Создайте трансфер типа Копирование и репликация, использующий созданные эндпоинты.

  4. Активируйте трансфер и дождитесь его перехода в статус Реплицируется.

  1. Укажите в файле rds-pg-mpg.tf значение 1 для параметра transfer_enabled.

  2. Проверьте корректность файлов конфигурации Terraform с помощью команды:

    terraform validate
    

    Если в файлах конфигурации есть ошибки, Terraform на них укажет.

  3. Создайте необходимую инфраструктуру:

    1. Выполните команду для просмотра планируемых изменений:

      terraform plan
      

      Если конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.

    2. Если вас устраивают планируемые изменения, внесите их:

      1. Выполните команду:

        terraform apply
        
      2. Подтвердите изменение ресурсов.

      3. Дождитесь завершения операции.

  4. Трансфер активируется автоматически. Дождитесь его перехода в статус Реплицируется.

Проверьте работоспособность трансфераПроверьте работоспособность трансфера

Чтобы убедиться в работоспособности трансфера, проверьте работу копирования и репликации.

Проверьте работу копированияПроверьте работу копирования

  1. Подключитесь к базе данных в кластере-приемнике Managed Service for PostgreSQL.

  2. Выполните запрос:

    SELECT * FROM measurements;
    

Проверьте работу репликацииПроверьте работу репликации

  1. Подключитесь к базе данных в кластере-источнике Amazon RDS for PostgreSQL:

    psql "host=<URL_хоста> \
    port=<порт_PostgreSQL> \
    sslmode=verify-full \
    sslrootcert=<путь_к_файлу_сертификата> \
    dbname=<имя_БД> \
    user=<имя_пользователя>"
    

    По умолчанию порт PostgreSQL — 5432.

  2. Добавьте данные в таблицу measurements:

    INSERT INTO measurements VALUES
    ('iv7b74th678tooxdagrf', '2020-06-08 17:45:00', 53.70987913, 36.62549834, 378.0, 20.5, 5.3, 20, NULL);
    
  3. Убедитесь, что добавленная строка появилась в базе данных приемника:

    1. Подключитесь к базе данных в кластере-приемнике Managed Service for PostgreSQL.

    2. Выполните запрос:

      SELECT * FROM measurements;
      

    Примечание

    Репликация данных может занять несколько минут.

Удалите созданные ресурсыУдалите созданные ресурсы

Примечание

Перед тем как удалить созданные ресурсы, деактивируйте трансфер.

Некоторые ресурсы платные. Чтобы за них не списывалась плата, удалите ресурсы, которые вы больше не будете использовать:

Вручную
Terraform
  • Трансфер.
  • Эндпоинты.
  • Инстанс Amazon RDS for PostgreSQL.
  • Кластер Managed Service for PostgreSQL.
  • Таблицу маршрутизации.
  • NAT-шлюз.
  1. В терминале перейдите в директорию с планом инфраструктуры.

    Важно

    Убедитесь, что в директории нет Terraform-манифестов с ресурсами, которые вы хотите сохранить. Terraform удаляет все ресурсы, которые были созданы с помощью манифестов в текущей директории.

  2. Удалите ресурсы:

    1. Выполните команду:

      terraform destroy
      
    2. Подтвердите удаление ресурсов и дождитесь завершения операции.

    Все ресурсы, которые были описаны в Terraform-манифестах, будут удалены.

Была ли статья полезна?

Предыдущая
Миграция данных из Managed Service for PostgreSQL в Yandex Managed Service for MySQL® с помощью Yandex Data Transfer
Следующая
Миграция базы данных из Greenplum® в PostgreSQL
Проект Яндекса
© 2025 ООО «Яндекс.Облако»