AWS App Runner: лимит в 120 секунд, который ломает видеостриминг

Запустили мы как-то видео-стриминг для нового проекта.

Инфраструктура на AWS. Выбрали App Runner.

Видео обрывалось на 2-й минуте. Причина: лимит, который нельзя обойти.


Вся инфраструктура компании на AWS. EC2, RDS, S3 - стандартный стек.

Новая задача: стриминг видео по запросу. Записи вебинаров, демо продукта.

Выбрали App Runner:

  • Логично: уже на AWS, не плодить провайдеров
  • Быстро: деплой за 10 минут
  • Просто: managed, автоскейлинг из коробки

Первые недели - отлично. Короткие ролики по 60-90 секунд работали без проблем.

Потом добавили длинные видео. Записи вебинаров на 10-15 минут. И тут началось.


Проблема?

App Runner рубит любое соединение на 120 секунде.

Жёстко. Без предупреждения. Без настройки. Нельзя изменить даже за деньги.

Это в документации, но кто её читает, когда уже деплоишь третий сервис на той же платформе?

Результат:

  • Видео обрывалось на середине
  • Демо клиентам приходилось разбивать на куски
  • Записи вебинаров показать полностью - невозможно

Костыли типа “нарезать видео на 90-секундные чанки” работают, но это хак, не решение.


Техническое ограничение = бизнес-ограничение.

  • Фича, которую анонсировали клиенту → не работает
  • Демо продукта → нельзя показать полностью
  • Миграция на другое решение → неделя работы команды

Один параметр в документации стоил недели времени и объяснений, почему “то, что работало на тесте” не работает в проде.


Альтернативы внутри AWS

Lambda (Function URL): 15 минут timeout. Но холодные старты убивают первые секунды стрима.

ECS Fargate: Без лимитов. Но настройка сложнее (IAM, load balancers, scaling policies, networking).

App Runner - это про скорость разработки. ECS - про гибкость. Для 120+ секунд придётся выбрать ECS или искать обходы.


А что у GCP?

Cloud Run: timeout до 60 минут.

Та же модель (контейнер → URL → автоскейлинг), но лимит в 30 раз выше.

Стриминг работает из коробки. Цена сопоставима с App Runner.

Проблема здесь: это другой облачный провайдер.

  • Биллинг отдельно
  • Мониторинг отдельно
  • IAM/права отдельно
  • Команда учится новой платформе

Для одного сервиса это может быть дороже, чем костыли на AWS. Но если таких задач несколько - Cloud Run начинает окупаться.


Преимущества App Runner

Простые REST API, задачи <30 секунд. Если у вас уже AWS и нужно быстро задеплоить контейнер - App Runner идеален.

Но если в roadmap:

  • Видео-стриминг
  • Генерация отчётов >2 минут
  • WebSocket/SSE
  • Long-polling

Проверьте лимиты до того, как писать код.


Выводы (lesson learned)))
“Мы уже на AWS” - не всегда аргумент для выбора сервиса.

Иногда конкретная задача требует конкретных возможностей. App Runner, Cloud Run, Lambda, ECS - у каждого свои потолки.

Проектирование архитектуры с учётом лимитов платформы избавляет от таких сюрпризов. Но большинство узнают о них, когда уже поздно.

Одна техническая деталь может стоить недели переделок. Или заставить посмотреть на другого провайдера.


P.S. Документацию читают либо до выбора платформы, либо после инцидента на проде. Второе - дороже.