☁️

Remotion Lambda — AWS에서 수천 개 비디오를 병렬 렌더링

Lambda 함수가 프레임을 분산 렌더링하고 S3에서 결합하는 서버리스 비디오 파이프라인

로컬 렌더링의 한계는 명확합니다. CPU 코어 수만큼만 병렬화할 수 있고, 1000개 비디오를 순차 렌더링하면 수 시간이 걸립니다.

Remotion Lambda는 이 문제를 서버리스로 해결합니다.

렌더링 프로세스: 하나의 비디오(예: 900프레임)를 요청하면, 오케스트레이터 Lambda가 이를 여러 청크(예: 20개 × 45프레임)로 분할합니다. 각 청크를 별도의 Lambda 함수가 동시에 렌더링하여 S3에 부분 비디오를 업로드합니다. 모든 청크가 완료되면 최종 Lambda가 FFmpeg로 청크를 결합하여 완성 비디오를 생성합니다.

비용 구조: Lambda는 실행 시간(GB-초) 기준 과금이므로, 10개 Lambda가 1분씩 실행하면 1개 Lambda가 10분 실행하는 것과 동일한 비용입니다. 즉 속도는 10배 빨라지지만 비용은 동일합니다.

한계: Lambda의 메모리 최대 10GB, 실행 시간 최대 15분 제한이 있습니다. 4K 해상도의 긴 비디오는 청크 크기를 작게 해야 합니다. 또한 Remotion Lambda는 유료 라이선스(Company License)가 필요합니다.

동작 흐름

1

remotion lambda deploy로 Lambda 함수 + S3 버킷 + IAM 역할을 AWS에 프로비저닝

2

renderMediaOnLambda()로 렌더링 요청 → 오케스트레이터 Lambda가 청크 분할

3

N개 워커 Lambda가 각 청크를 동시에 렌더링 → 부분 비디오를 S3에 업로드

4

모든 청크 완료 → 결합 Lambda가 FFmpeg로 청크를 concat하여 최종 MP4 생성

5

getRenderProgress()로 진행률 폴링 → 완료 시 S3 다운로드 URL 반환

장점

  • 수평 확장: Lambda 동시 실행 수를 늘려 렌더링 시간을 선형적으로 단축
  • 비용 효율: 유휴 시 비용 0, 렌더링 시에만 GB-초 과금
  • 인프라 관리 불필요: 서버 프로비저닝, 스케일링, 패치 모두 AWS가 처리

단점

  • 유료 라이선스 필요: Remotion Company License (연간 과금)
  • AWS 종속: Lambda + S3 + IAM 설정이 복잡, 다른 클라우드 미지원
  • Cold start: 첫 번째 렌더링에 수 초의 Lambda 웜업 시간 추가

사용 사례

SaaS 플랫폼: 사용자 요청마다 맞춤 비디오를 실시간 생성하여 제공 대량 비디오 파이프라인: 매일 수천 개 상품 비디오를 야간 배치로 생성 이벤트 기반: Webhook → Lambda 렌더링 → Slack/메일로 완성 비디오 전달