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)가 필요합니다.
동작 흐름
remotion lambda deploy로 Lambda 함수 + S3 버킷 + IAM 역할을 AWS에 프로비저닝
renderMediaOnLambda()로 렌더링 요청 → 오케스트레이터 Lambda가 청크 분할
N개 워커 Lambda가 각 청크를 동시에 렌더링 → 부분 비디오를 S3에 업로드
모든 청크 완료 → 결합 Lambda가 FFmpeg로 청크를 concat하여 최종 MP4 생성
getRenderProgress()로 진행률 폴링 → 완료 시 S3 다운로드 URL 반환
장점
- ✓ 수평 확장: Lambda 동시 실행 수를 늘려 렌더링 시간을 선형적으로 단축
- ✓ 비용 효율: 유휴 시 비용 0, 렌더링 시에만 GB-초 과금
- ✓ 인프라 관리 불필요: 서버 프로비저닝, 스케일링, 패치 모두 AWS가 처리
단점
- ✗ 유료 라이선스 필요: Remotion Company License (연간 과금)
- ✗ AWS 종속: Lambda + S3 + IAM 설정이 복잡, 다른 클라우드 미지원
- ✗ Cold start: 첫 번째 렌더링에 수 초의 Lambda 웜업 시간 추가