logo
Главная/Блог/Геораспределенный кластер S3: как мы отвели запись и чтение в разные ДЦ и сэкономили 85% трафика на синхронизации

Геораспределенный кластер S3: как мы отвели запись и чтение в разные ДЦ и сэкономили 85% трафика на синхронизации

Инфраструктура
Смирнов Алексей
8 июня 2026

У клиента работало S3-хранилище на базе одного сервера Minio. Этот сервер одновременно принимал новые файлы (пользователи загружали фото) и раздавал их при миллионах просмотров. Вся инфраструктура стояла в одном дата-центре. Централизованная балансировка и геораспределенность отсутствовали полностью.

Ключевые боли:

  • Перегрузка мастера - сервер физически не успевал обрабатывать одновременные запросы на запись и чтение.
  • Сетевой канал упирался в потолок - расширение канала дорого и не решало проблему архитектурно.
  • Отсутствие балансировки - вся нагрузка на чтение шла на тот же узел, что и запись.
  • Рост дельты - за год между мастером и репликами накапливалось расхождение объемом более 1 ТБ, а полная репликация была слишком дорогой.

Решение

Вместо доработки монолитной схемы мы предложили геораспределенную архитектуру с разделением ролей на базе open-source компонентов. Заказчик был заранее проинформирован, что решение собирается из стандартных open-source продуктов, а наша роль - предоставить полный цикл внедрения и сопровождения.

Что выполнила наша команда:

  • Спроектировали геораспределенный кластер с мастером на запись и тремя слейвами на чтение.
  • Настроили балансировку запросов на чтение через Round Robin DNS на Cloud.
  • Реализовали репликацию свежих данных с мастера на слейвы через Mirror Nginx.
  • Разработали и внедрили механизм синхронизации по 404 (по требованию + фоновая досинхронизация).
  • Провели нагрузочное тестирование и мониторинг кластера.
  • Передали документацию и обучили команду клиента.

Функциональность внедренного решения

  • Разделение ролей - мастер в ДЦ №1 только на запись, 3 слейва в ДЦ №2 только на чтение.
  • Балансировка чтения - Round Robin DNS распределяет запросы пользователей между тремя слейвами.
  • Репликация свежих данных - Mirror Nginx дублирует новые файлы на все слейвы практически в реальном времени.
  • Синхронизация по 404 - если файла нет на слейве, он подтягивается с мастера и сохраняется локально.
  • Фоновая досинхронизация - раз в сутки слейвы анализируют логи 404 и добирают популярные «промахи».
  • API-совместимость - клиентское приложение продолжает работать с S3 API без изменений.

Результаты и преимущества для клиента

✅ Устранена перегрузка мастера - канал мастера больше не забит чтением, он занят только записью и редкими 404-запросами.

✅ Прозрачность синхронизации - мы видим все промахи 404 и контролируем дельту.

✅ Скорость раздачи для пользователей выросла - три слейва в отдельном ДЦ + балансировка.

✅ Экономия трафика на синхронизации - 70-85% вместо полной репликации всех данных.

✅ Дельта перестала быть проблемой - 404-механизм добирает потерянные объекты без ручного вмешательства.

✅ Горизонтальное масштабирование - при росте нагрузки достаточно добавить новые слейвы на чтение.

Роль нашей компании

  • Подбор архитектуры под задачу клиента (Minio + Mirror Nginx + 404-механизм).
  • Полный цикл DevOps: развертывание, настройка кластера, мониторинг, резервное копирование.
  • Разработка и внедрение кастомного механизма синхронизации по 404.
  • Обучение персонала и подготовка инструкций.
  • Сопровождение и техподдержка 24/7 (по SLA).

Смотрите также

Все статьи

Отправить заявку

Оставьте заявку, и мы свяжемся с вами в течение суток

Отправьте заявку
logo