Миграция данных в 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. Получить доступ к бакету-источнику
Стороннее S3-хранилище
Бакет S3 в Selectel
- Авторизуйтесь на стороне вашего S3-провайдера.
- Получите эндпоинт бакета-источника.
- Получите пару ключей Access Key и Secret Key для доступа к бакету-источнику. Учетные данные, для которых выдаются ключи, должны предоставлять доступ на чтение бакета и его объектов.
2. Настроить бакет-приемник
-
Если у вас еще нет бакета в S3, в который будет выполняться миграция, создайте его.
-
Настройте доступ к бакету-приемнику. Настроить доступ может Владелец аккаунта или пользователь с ролью iam.admin:
2.1. Создайте сервисного пользователя с ролью с доступом в S3. Если вы используете сервисного пользователя с ролью s3.user, object_storage_user или s3.bucket.user, в бакете должна быть настроена политика доступа и ее правила должны разрешать пользователю как минимум просмотр списка объектов, чтение и загрузку объектов. Для автоматического удаления тестовых объектов, которые создаются при проверке подключения, также разрешите удаление объектов.
3. Настроить параметры миграции
Стороннее S3-хранилище
Бакет S3 в Selectel
-
В панели управления в верхнем меню нажмите Продукты и выберите S3.
-
Перейдите в раздел Миграция данных.
-
Нажмите Создать миграцию.
-
В блоке Источник добавьте данные бакета-источника, которые вы получили на этапе 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. Опционально: нажмите Проверить подключение. Сервис проверит, что бакет-источник доступен и учетные данные позволяют получить список объектов. Данные в бакете-источнике не изменятся.
Проверять подключение можно не более пяти раз в минуту. Если вы не проверили подключение вручную, оно будет проверено автоматически при создании миграции. В случае неуспешной проверки миграция не будет создана.
-
В блоке Приемник добавьте данные бакета-приемника в 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>. Если при настройке бакета-приемника вы выдали права доступа, которые разрешают удаление объектов, после завершения проверки тестовый объект будет автоматически удален. -
Опционально: чтобы одноименные объекты с одинаковым префиксом перезаписывались при миграции, в блоке Параметры миграции отметьте чекбокс Перезаписать при совпадении префиксов. Если чекбокс не отмечен, при выполнении миграции одноименный объект будет пропущен.
-
Опционально: чтобы объекты для миграции выбирались по определенным условиям, в блоке Фильтрация настройте параметры:
7.1. Выберите параметр фильтрации.
7.2. Укажите значение параметра.
7.3. Нажмите .
7.4. Опционально: чтобы добавить еще один параметр, повторите шаги 7.1-7.3.
-
Завершите настройку миграции:
8.1. Чтобы сохранить настройки миграции, но не запускать ее, нажмите Сохранить черновик.
8.2. Чтобы сразу запустить миграцию, нажмите Создать миграцию. Если миграция завершится со статусом:
PARTIALLY DONE— запустите миграцию повторно;ERROR— проверьте корректность настройки миграции, измените параметры и запустите миграцию повторно. Если не получается установить причину ошибки, создайте тикет.
Фильтрация
Фильтрация определяет, какие объекты из бакета-источника будут перенесены в бакет-приемник.
Если добавлено несколько фильтров, они суммируются — миграция выполняется только для объектов, которые удовлетворяют всем фильтрам.
Список фильтров
* Можно использовать только один параметр фильтрации по шаблонам в имени объектов.
Фильтрация по шаблонам
Фильтры Включить шаблоны и Исключить шаблоны фильтруют объекты по их имени. В одной миграции можно использовать только один фильтр по шаблонам. В фильтр можно добавить до 100 шаблонов.
Если в фильтре добавлено несколько шаблонов, объект совпадает с фильтром, если попадает хотя бы под один шаблон.
Основные принципы и ограничения:
- поддерживается латиница и кириллица;
- регулярные выражения не поддерживаются;
- регистр имеет значение;
- шаблон указывается без кавычек. Если указать кавычки, они будут частью шаблона;
- шаблон заполняется по определенному синтаксису:
Если в бакете-источнике в поле Путь:
- ничего не указано — шаблон проверяется от имени бакета;
- указан префикс — шаблон проверяется относительно значения в поле Путь;
- указан путь до объекта — фильтр не применяется, объект переносится.
Например, имя бакета-источника — backup, для него в поле Путь вы добавили префикс 2025.
Полное имя проверяемого объекта с префиксом — backup/2025/images/a.jpg.
При проверке объекта по шаблону указанное в шаблоне значение будет сопоставляться с частью images/a.jpg.
Посмотреть статус миграции
- В панели управления в верхнем меню нажмите Продукты и выберите S3.
- Перейдите в раздел Миграция данных.
- В строке миграции в столбце Статус посмотрите статус. Возможные статусы:
Посмотреть историю запусков миграции
- В панели управления в верхнем меню нажмите Продукты и выберите S3.
- Перейдите в раздел Миграция данных.
- Откройте страницу миграции.
- В блоке История запусков посмотрите список запусков миграции.
Запустить миграцию
Можно запустить миграцию, которая была сохранена как черновик в статусе DRAFT, или повторно запустить любую миграцию, которая уже запускалась ранее независимо от результата миграции.
-
В панели управления в верхнем меню нажмите Продукты и выберите S3.
-
Перейдите в раздел Миграция данных.
-
В меню миграции выберите:
- Запустить — для запуска миграции в статусе
DRAFT; - Запустить повторно — для повторного запуска любой другой миграции.
- Запустить — для запуска миграции в статусе
-
Опционально: нажмите Редактировать и измените параметры миграции, для этого используйте шаги 4-8 подраздела Настроить параметры миграции.
-
Нажмите Запустить. Если миграция завершится со статусом:
PARTIALLY DONE— запустите миграцию повторно;ERROR— проверьте корректность настройки миграции, измените параметры и запустите миграцию повторно. Если не получается установить причину ошибки, создайте тикет.
Переименовать миграцию
Имя миграции формируется автоматически при создании миграции. Созданную миграцию можно переименовать.
- В панели управления в верхнем меню нажмите Продукты и выберите S3.
- Перейдите в раздел Миграция данных.
- В меню миграции выберите Переименовать.
- Введите новое имя миграции. Имя должно содержать от 3 до 255 символов. Может включать латинские и кириллические буквы в любом регистре, цифры, точки, дефисы и нижние подчеркивания.
- Нажмите Переименовать.
Изменить миграцию
Нельзя изменить миграцию, которая находится в статусе IN PROGRESS.
- В панели управления в верхнем меню нажмите Продукты и выберите S3.
- Перейдите в раздел Миграция данных.
- В меню миграции выберите Редактировать.
- Измените параметры миграции, для этого используйте шаги 4-8 подраздела Настроить параметры миграции.
Завершить миграцию
Объекты, которые были перенесены до завершения миграции, останутся в бакете-приемнике.
- В панели управления в верхнем меню нажмите Продукты и выберите S3.
- Перейдите в раздел Миграция данных.
- В меню миграции выберите Завершить.
- Введите имя миграции для подтверждения.
- Нажмите Завершить.
Удалить миграцию
Нельзя удалить миграцию, которая находится в статусе IN PROGRESS.
Чтобы удалить активную миграцию, сначала завершите ее.
При удалении миграции удаляются сохраненные ключи доступа и история запусков. Объекты, которые были перенесены в бакет-приемник, остаются в нем.
- В панели управления в верхнем меню нажмите Продукты и выберите S3.
- Перейдите в раздел Миграция данных.
- В меню миграции выберите Удалить.
- Введите имя миграции для подтверждения.
- Нажмите Удалить.