В сервисе, для которого я создаю архитектуру, есть часть обработки видео. По сути, некоторые люди могут загружать видео (хранящиеся в S3), которые будут разделены на кадры с высоким разрешением. Из этих кадров высокого разрешения создаются производные изображения (эскизы, спрайты), и все это должно храниться на S3.
У меня вопрос: где и как запустить сценарий обработки видео? Я хотел бы использовать Lambda, но не уверен в ее ограничениях (Таймаут 300 с и дисковое хранилище 512 МБ) позвольте мне это сделать. Обратите внимание, что видео могут весить до нескольких ГБ.
Решение, о котором я сейчас думаю:
Как вы думаете, это лучшее решение? Вы можете придумать более простой вариант? Или вы думаете, что лучше запустить обработку на стандартном экземпляре EC2 (возможно, с какой-нибудь системой очередей, например SQS, посередине)?
Спасибо!
Меньше всего вам нужно, чтобы допустимый вариант использования (например, большое видео) соответствовал ограничениям Lambda (время и / или дисковое пространство).
Вам следует сократить свои шаги до небольших фрагментов для одной задачи, например:
Оценивайте каждую небольшую задачу индивидуально. Определите минимальный / максимальный / средний размер файла и рассчитайте минимальное / максимальное / среднее время обработки. Если вам подходит Lambda, выберите ее. В противном случае вы можете использовать экземпляры EC2 для обработки элементов из очередей (например, с помощью SQS).
Если вы катаетесь самостоятельно, я могу порекомендовать попробовать Amazon SWF поскольку я использовал его для создания рабочих процессов обработки видео раньше.
Как и в другом варианте ответа, вы должны разбить каждый шаг на небольшие однозадачные действия, а затем собрать их вместе в рабочий процесс. Затем вы можете запускать рабочие процессы на EC2 или в любом другом месте.
В зависимости от того, что именно вы пытаетесь сделать и подходит ли это, вы мощь найти AWS ' Эластичный транскодер Сервис обработки видео предлагает готовое решение. Он определенно указывает создание эскизов как часть предложения.