2 мин чтения#infrastructure#engineering#sports

VOD-архив на 135 ГБ за $2–3 в месяц

Главная ловушка VOD-архива — хранить и отдавать его тем же HLS, которым идёт прямой эфир. При шестисекундных сегментах один час просмотра создаёт около 600 запросов на зрителя, плюс постоянное обновление плейлиста.

Для архива турнира объёмом примерно 135 ГБ место стоит почти ничего. Счёт раздувает строка Class B: тысячи чтений на каждый зрительский час. Моё мнение: HLS хорош для живого потока, но как формат хранения такого архива он просто направляет биллинг не туда.

Один матч — один MP4 без перекодирования

MistServer уже пишет DVR. Из этой записи можно вырезать матч через параметры playback URL:

?startunix=…&stopunix=…&dl=

На выходе получается progressive MP4. Отдельного шага с ffmpeg и повторного кодирования нет — сервер отдаёт нужный временной диапазон из существующей записи.

Файл уходит в Cloudflare R2 и открывается через собственный домен под прокси Cloudflare. Здесь меняется единица экономики:

→ один просмотр MP4 — десятки range GET, а не сотни чтений сегментов → попадание в кэш Cloudflare стоит ноль Class B на стороне R2 → исходящий трафик из R2 стоит $0

Кэш — весь рычаг этой схемы. Популярный матч читается из объекта один раз, дальше ближайший узел Cloudflare отвечает зрителям сам.

Арифметика R2 в июле 2026 года

Проверенные цены:

операцияцена
хранение$0.015 за ГБ в месяц
Class A$4.50 за миллион операций
Class B$0.36 за миллион операций
исходящий трафик$0

Бесплатный уровень включает 10 ГБ хранения, 1 млн операций Class A и 10 млн Class B.

Для этого архива расчёт получается коротким:

→ 135 ГБ — около $2 в месяц за хранение → примерно 1.4 тысячи загрузок матчей укладываются в бесплатный Class A → вместе с небольшим запасом — $2–3 в месяц

Собственный накопитель обошёлся бы в €30–50 в месяц, а сверху потребовал бы моего внимания к дискам, сети и резервированию. При текущем масштабе разница слишком велика, чтобы романтизировать своё железо.

Где расчёт перестаёт работать

Cloudflare разрешает раздачу видео через CDN, когда источником служит R2 — это закреплено в обновлённых условиях. Но два ограничения остаются.

Первое: на нескольких терабайтах трафика в месяц схему нужно пересчитать заново, а не переносить вывод про 135 ГБ на другой масштаб. Второе: если доля попаданий в кэш рухнет, арифметика рухнет вместе с ней. Нулевой исходящий трафик не отменяет Class B — его убирает только кэш.

Читать по теме