Компания Flowwow провела миграцию своего S3-хранилища, объем которого превышал 65 ТБ, а количество объектов исчислялось десятками миллионов. Целью проекта стала оптимизация расходов, превышавших 150 000 ₽ в месяц, и наведение порядка в структуре данных.
Миграция прошла без остановки сервиса благодаря созданию нового бакета и внедрению архитектуры dual-read, single-write. Приложение запрашивало файлы из нового хранилища, а при их отсутствии обращалось к старому. Это позволило переносить данные постепенно, опираясь на реальный трафик.
Для определения актуальных файлов разработчики использовали MediaCleanupProcessorManager, который связывал бизнес-сущности из БД с S3-ключами. Задачи на копирование обрабатывались через RabbitMQ пакетами по 1 000 записей, что позволило избежать перегрузки системы.
В процессе команда столкнулась с нестабильностью RabbitMQ при очередях свыше 500 000 сообщений. Проблему решили оптимизацией количества потребителей и настройкой логики повторных попыток, чтобы исключить бесполезную обработку отсутствующих ключей.
Итогом работы стало сокращение объема данных с 65 ТБ до 45 ТБ. Около 90% запросов сразу переключились на новый бакет, а fallback-механизм со временем перестал использоваться. Пользователи не заметили перехода, а компания получила прозрачную модель управления файлами.






