Перейти к основному содержимому

Миграция данных в S3

Вы можете настроить миграцию данных в S3 из бакета-источника:

  • в стороннем S3-совместимом хранилище;
  • или в S3 Selectel в том же или другом аккаунте.

Миграция возможна только в бакет-приемник в Selectel. Миграция из S3 Selectel в стороннее хранилище не поддерживается. Также у миграций есть ряд ограничений.

Чтобы перенести данные в S3, настройте миграцию. Вы можете отслеживать статус и историю запусков по каждой миграции. Миграцию можно запускать из черновика или повторно, досрочно завершать, изменять, переименовывать и удалять.

Ограничения миграций в S3

  • за одну миграцию рекомендуется переносить не более 500 ТБ. Для миграции данных большего объема создайте тикет;
  • во всех проектах аккаунта одновременно может быть запущено не более пяти миграций. Если лимит достигнут, миграция не запустится, но сохранится как черновик в статусе DRAFT. Ее можно запустить, когда завершится одна из выполняющихся миграций. Количество черновиков миграций не ограничено;
  • в один бакет-приемник одновременно может быть запущена только одна миграция. Если одновременно создать еще одну миграцию в бакет, она сохранится как черновик.

Стоимость

Возможность миграции в S3 предоставляется бесплатно.

При этом бакет-приемник в S3 тарифицируется по модели оплаты S3.

Если миграция выполняется:

  • из стороннего S3-совместимого хранилища: в бакете-приемнике в Selectel тарифицируются запросы к API и объем хранения. Входящий трафик не тарифицируется. Исходящий трафик оплачивается на стороне провайдера S3-хранилища, из которого выполняется миграция;
  • из другого бакета S3 Selectel: в бакете-источнике тарифицируются запросы к API, в бакете-приемнике — запросы к API и объем хранения. Трафик между бакетами является внутренним в Selectel и не тарифицируется.

Настроить миграцию

  1. Получите доступ к бакету-источнику.
  2. Настройте бакет-приемник.
  3. Настройте параметры миграции.

1. Получить доступ к бакету-источнику

  1. Авторизуйтесь на стороне вашего S3-провайдера.
  2. Получите эндпоинт бакета-источника.
  3. Получите пару ключей Access Key и Secret Key для доступа к бакету-источнику. Учетные данные, для которых выдаются ключи, должны предоставлять доступ на чтение бакета и его объектов.

2. Настроить бакет-приемник

  1. Если у вас еще нет бакета в S3, в который будет выполняться миграция, создайте его.

  2. Настройте доступ к бакету-приемнику. Настроить доступ может Владелец аккаунта или пользователь с ролью iam.admin:

    2.1. Создайте сервисного пользователя с ролью с доступом в S3. Если вы используете сервисного пользователя с ролью s3.user, object_storage_user или s3.bucket.user, в бакете должна быть настроена политика доступа и ее правила должны разрешать пользователю как минимум просмотр списка объектов, чтение и загрузку объектов. Для автоматического удаления тестовых объектов, которые создаются при проверке подключения, также разрешите удаление объектов.

    2.2. Выдайте пользователю S3-ключ.

3. Настроить параметры миграции

  1. В панели управления в верхнем меню нажмите Продукты и выберите S3.

  2. Перейдите в раздел Миграция данных.

  3. Нажмите Создать миграцию.

  4. В блоке Источник добавьте данные бакета-источника, которые вы получили на этапе 1:

    4.1. Введите регион, в котором находится бакет-источник.

    4.2. В поле Endpoint укажите эндпоинт бакета источника, который вы получили на шаге 2 на этапе 1.

    4.3. Введите имя бакета-источника.

    4.4. Опционально: чтобы настроить миграцию данных не из всего бакета, а по определенному префиксу, в поле Путь введите префикс объектов в бакете. Если префикс не указан, будет выполняться миграция всех данных в бакете.

    4.5. Вставьте значение Access Key, который вы получили на шаге 3 на этапе 1.

    4.6. Вставьте значение Secret Key, который вы получили на шаге 3 на этапе 1.

    4.7. Опционально: нажмите Проверить подключение. Сервис проверит, что бакет-источник доступен и учетные данные позволяют получить список объектов. Данные в бакете-источнике не изменятся.

    Проверять подключение можно не более пяти раз в минуту. Если вы не проверили подключение вручную, оно будет проверено автоматически при создании миграции. В случае неуспешной проверки миграция не будет создана.

  5. В блоке Приемник добавьте данные бакета-приемника в Selectel, которые вы получили на этапе 2:

    5.1. Выберите локацию, в которой находится бакет-приемник.

    5.2. Введите имя бакета-приемника.

    5.3. Опционально: чтобы выполнить миграцию данных не в корень бакета, а по определенному префиксу, в поле Путь введите префикс, по которому будут загружены объекты в бакете-приемнике. Если префикс не указан, миграция будет выполняться в корень бакета.

    5.4. Вставьте значение Access Key из S3-ключа, который вы получили на шаге 2.2 на этапе 2.

    5.5. Вставьте значение Secret Key из S3-ключа, который вы получили на шаге 2.2 на этапе 2.

    5.6. Опционально: нажмите Проверить подключение. Сервис проверит, что бакет-приемник доступен и учетные данные позволяют загружать объекты — в бакете будет создан пустой тестовый объект с именем вида .dt-conncheck-<uuid>. Если при настройке бакета-приемника вы выдали права доступа, которые разрешают удаление объектов, после завершения проверки тестовый объект будет автоматически удален.

  6. Опционально: чтобы одноименные объекты с одинаковым префиксом перезаписывались при миграции, в блоке Параметры миграции отметьте чекбокс Перезаписать при совпадении префиксов. Если чекбокс не отмечен, при выполнении миграции одноименный объект будет пропущен.

  7. Опционально: чтобы объекты для миграции выбирались по определенным условиям, в блоке Фильтрация настройте параметры:

    7.1. Выберите параметр фильтрации.

    7.2. Укажите значение параметра.

    7.3. Нажмите .

    7.4. Опционально: чтобы добавить еще один параметр, повторите шаги 7.1-7.3.

  8. Завершите настройку миграции:

    8.1. Чтобы сохранить настройки миграции, но не запускать ее, нажмите Сохранить черновик.

    8.2. Чтобы сразу запустить миграцию, нажмите Создать миграцию. Если миграция завершится со статусом:

Фильтрация

Фильтрация определяет, какие объекты из бакета-источника будут перенесены в бакет-приемник.

Если добавлено несколько фильтров, они суммируются — миграция выполняется только для объектов, которые удовлетворяют всем фильтрам.

Список фильтров

Минимальный размер объектаОбъект переносится, если его размер равен или больше указанного значения
Максимальный размер объектаОбъект переносится, если его размер равен или меньше указанного значения
Изменены за период времениОбъект переносится, если он был загружен или обновлен в течение указанного периода времени
Включить шаблоны*Переносятся только объекты, в имени которых которых есть префикс по шаблону из указанного значения, подробнее в подразделе Фильтрация по шаблонам
Исключить шаблоны*Переносятся все объекты, кроме объектов, в имени которых есть префикс по шаблону из указанного значения, подробнее в подразделе Фильтрация по шаблонам

* Можно использовать только один параметр фильтрации по шаблонам в имени объектов.

Фильтрация по шаблонам

Фильтры Включить шаблоны и Исключить шаблоны фильтруют объекты по их имени. В одной миграции можно использовать только один фильтр по шаблонам. В фильтр можно добавить до 100 шаблонов.

Если в фильтре добавлено несколько шаблонов, объект совпадает с фильтром, если попадает хотя бы под один шаблон.

Основные принципы и ограничения:

  • поддерживается латиница и кириллица;
  • регулярные выражения не поддерживаются;
  • регистр имеет значение;
  • шаблон указывается без кавычек. Если указать кавычки, они будут частью шаблона;
  • шаблон заполняется по определенному синтаксису:
СинтаксисЗначениеПример шаблонаПример значения, которое удовлетворяет фильтруПример значения, которое не удовлетворяет фильтру
*Любые символы в пределах одного уровня (до символа /)*.jpga.jpg, photos/a.jpga.jpeg
**Любые символы на всех вложенных уровнях, включая символ //images/**images/a.jpg, images/2025/a.jpgold/images/a.jpg
?Один любой символ, кроме символа /report-?.pdfreport-1.pdfreport-10.pdf
[...]Один символ из указанного набора или диапазона2025-0[1-3]-*.gz2025-02-15.gz2025-04-01.gz
[!...]Один символ, кроме символов, указанных в наборе[!_]*.csvdata.csv_tmp.csv
{a,b}Любое значение из указанного списка*.{jpg,png}a.jpg, b.pngc.gif
\Экранирование спецсимвола, чтобы включить его в поиск как обычный символ\[draft\]*.docx[draft]plan.docxdraft-plan.docx
/ в начале шаблонаПроверка от корня значения, которое указано в поле Путь для бакета-источника/tmp/**tmp/x.parta/tmp/x.part
Без / в начале шаблонаПроверка на любом уровне вложенности. Совпадать должен целый элемент пути между двумя символами / или символом / и началом либо концом шаблонаfile.jpga/file.jpga/myfile.jpg

Если в бакете-источнике в поле Путь:

  • ничего не указано — шаблон проверяется от имени бакета;
  • указан префикс — шаблон проверяется относительно значения в поле Путь;
  • указан путь до объекта — фильтр не применяется, объект переносится.
примечание

Например, имя бакета-источника — backup, для него в поле Путь вы добавили префикс 2025. Полное имя проверяемого объекта с префиксом — backup/2025/images/a.jpg. При проверке объекта по шаблону указанное в шаблоне значение будет сопоставляться с частью images/a.jpg.

Посмотреть статус миграции

  1. В панели управления в верхнем меню нажмите Продукты и выберите S3.
  2. Перейдите в раздел Миграция данных.
  3. В строке миграции в столбце Статус посмотрите статус. Возможные статусы:
СтатусОписаниеВозможные действия с миграцией
IN PROGRESSМиграция выполняется
  • завершение;
  • переименование
DONEМиграция полностью выполнена
  • повторный запуск;
  • редактирование;
  • переименование;
  • удаление
PARTIALLY DONEМиграция выполнена частично — часть объектов не попала в бакет-приемник. Возможно, в течение миграции их изменили или удалили
  • повторный запуск;
  • редактирование;
  • переименование;
  • удаление
ERRORПри выполнении миграции возникла ошибка, миграция не выполнена
  • повторный запуск;
  • редактирование;
  • переименование;
  • удаление
ABORTEDВыполнение миграции было досрочно завершено
  • повторный запуск;
  • редактирование;
  • переименование;
  • удаление
DRAFTМиграция еще не была запущена
  • запуск;
  • редактирование;
  • переименование;
  • удаление

Посмотреть историю запусков миграции

  1. В панели управления в верхнем меню нажмите Продукты и выберите S3.
  2. Перейдите в раздел Миграция данных.
  3. Откройте страницу миграции.
  4. В блоке История запусков посмотрите список запусков миграции.

Запустить миграцию

Можно запустить миграцию, которая была сохранена как черновик в статусе DRAFT, или повторно запустить любую миграцию, которая уже запускалась ранее независимо от результата миграции.

  1. В панели управления в верхнем меню нажмите Продукты и выберите S3.

  2. Перейдите в раздел Миграция данных.

  3. В меню миграции выберите:

    • Запустить — для запуска миграции в статусе DRAFT;
    • Запустить повторно — для повторного запуска любой другой миграции.
  4. Опционально: нажмите Редактировать и измените параметры миграции, для этого используйте шаги 4-8 подраздела Настроить параметры миграции.

  5. Нажмите Запустить. Если миграция завершится со статусом:

    • PARTIALLY DONE — запустите миграцию повторно;
    • ERROR — проверьте корректность настройки миграции, измените параметры и запустите миграцию повторно. Если не получается установить причину ошибки, создайте тикет.

Переименовать миграцию

Имя миграции формируется автоматически при создании миграции. Созданную миграцию можно переименовать.

  1. В панели управления в верхнем меню нажмите Продукты и выберите S3.
  2. Перейдите в раздел Миграция данных.
  3. В меню миграции выберите Переименовать.
  4. Введите новое имя миграции. Имя должно содержать от 3 до 255 символов. Может включать латинские и кириллические буквы в любом регистре, цифры, точки, дефисы и нижние подчеркивания.
  5. Нажмите Переименовать.

Изменить миграцию

Нельзя изменить миграцию, которая находится в статусе IN PROGRESS.

  1. В панели управления в верхнем меню нажмите Продукты и выберите S3.
  2. Перейдите в раздел Миграция данных.
  3. В меню миграции выберите Редактировать.
  4. Измените параметры миграции, для этого используйте шаги 4-8 подраздела Настроить параметры миграции.

Завершить миграцию

Объекты, которые были перенесены до завершения миграции, останутся в бакете-приемнике.

  1. В панели управления в верхнем меню нажмите Продукты и выберите S3.
  2. Перейдите в раздел Миграция данных.
  3. В меню миграции выберите Завершить.
  4. Введите имя миграции для подтверждения.
  5. Нажмите Завершить.

Удалить миграцию

Нельзя удалить миграцию, которая находится в статусе IN PROGRESS. Чтобы удалить активную миграцию, сначала завершите ее.

При удалении миграции удаляются сохраненные ключи доступа и история запусков. Объекты, которые были перенесены в бакет-приемник, остаются в нем.

  1. В панели управления в верхнем меню нажмите Продукты и выберите S3.
  2. Перейдите в раздел Миграция данных.
  3. В меню миграции выберите Удалить.
  4. Введите имя миграции для подтверждения.
  5. Нажмите Удалить.