azosi · 2026.7.29 01:45 · 조회 1
Remotion Lambda
AWS Lambda 기반으로 pay-per-render 방식의 클라우드 렌더링. 동시성을 자유롭게 늘릴 수 있고, 인프라 관리 없이 대량 영상을 만들 수 있다.
💡 왜 Lambda?
| 항목 | 로컬 SSR | Lambda |
|---|---|---|
| 동시성 | CPU 코어 수에 의존 | 함수 동시성 한도까지 |
| 비용 | 전기세·서버 | 실행 시간·메모리에만 과금 |
| 인프라 | 직접 관리 | AWS가 자동 스케일링 |
| 콜드 스타트 | 없음 | 약 1~3초 |
| 최대 영상 길이 | 사실상 무제한 | Lambda 15분 제한 |
🛠️ 초기 설정
# 1. AWS 자격증명 + 리전 설정
export AWS_ACCESS_KEY_ID=...
export AWS_SECRET_ACCESS_KEY=...
export AWS_REGION=us-east-1
# 2. Remotion Lambda CLI 설치
npm i @remotion/lambda
1) 사이트 (번들 호스팅) 생성
npx remotion lambda sites create --site-name=my-video-site
→ S3 버킷에 번들 업로드, Serve URL 반환.
2) 함수 (Lambda) 배포
npx remotion lambda functions deploy --memory=2048 --timeout=120 --region=us-east-1
→ Lambda 함수 ARN 반환.
🧑💻 프로그래밍 방식: renderMediaOnLambda()
import { renderMediaOnLambda } from "@remotion/lambda";
const { renderId, bucketName } = await renderMediaOnLambda({
region: "us-east-1",
functionName: "remotion-render",
serveUrl: "https://remotion-...",
composition: "MyComposition",
inputProps: { title: "Hello" },
codec: "h264",
imageFormat: "jpeg",
maxRetries: 1,
privacy: "public",
});
📌
imageFormat: "jpeg"권장 (PNG보다 빠르고 Lambda 메모리 절약)
📊 진행률 폴링
import { getRenderProgress } from "@remotion/lambda";
while (true) {
const progress = await getRenderProgress({
renderId,
bucketName,
functionName: "remotion-render",
region: "us-east-1",
});
console.log(`${(progress.overallProgress * 100).toFixed(1)}%`);
if (progress.done) {
console.log("Output:", progress.outputFile);
break;
}
await new Promise(r => setTimeout(r, 1000));
}
💰 비용
Lambda는 GB-초 단위 과금. 예시:
| 메모리 | 1분 영상 1개당 (대략) |
|---|---|
| 1024MB | $0.008 |
| 2048MB | $0.016 |
| 4096MB | $0.032 |
📌 S3 스토리지 + 데이터 전송 비용 별도. 자세한 가격: https://www.remotion.dev/docs/lambda/limits
🚀 동시성 (Concurrency)
Lambda의 reserved concurrency를 늘려 동시에 여러 영상 렌더링:
npx remotion lambda functions deploy --memory=2048 --timeout=900 --region=us-east-1
기본 계정 한도: 함수당 1000 동시 실행 (증설 가능).
🛡️ Security
Lambda는 public bucket에 결과를 업로드하지만, CloudFront + signed URL 패턴으로 안전하게 다운로드 가능.
privacy: "public" vs "private" 차이:
public— S3 public URLprivate— 임시 signed URL (만료 시간 설정)
자세한 보안: https://www.remotion.dev/docs/lambda/security
⚠️ 알아둘 점
- 콜드 스타트 — 첫 호출은 느림 (1~3초). 워밍업 함수로 해결 가능
- 15분 제한 — Lambda 단일 실행 15분 초과 시 실패 → 길이 / 해상도 조정 또는 chunk 렌더
- 메모리 — 2048MB 이상 권장. 1024MB는 자주 죽음
- 권한 — Lambda execution role에 S3 + CloudWatch Logs 권한 필요
📚 영역 구분
- 로컬 렌더: Remotion Server-side Rendering (SSR)
- 브라우저 렌더: Remotion Client-side Rendering
- 다른 클라우드: Remotion Cloud Hosting (Vercel/Cloud Run/Azure/Cloudflare)
- 한글 hub: Remotion 렌더링
상위 문서: ← Remotion 렌더링 출처: Remotion 공식 문서 — Lambda 한글화 (2026-07-29) 공급사: Remotion AG
변경 이력
| 날짜 | 변경 |
|---|---|
| 2026-07-29 | 초판 작성 (공식 Lambda 가이드 한글화) |
| 2026-07-29 | 메타데이터 블록을 본문 하단으로 이동 |
댓글
아직 댓글이 없습니다.
댓글을 작성하려면 로그인이 필요합니다.