azosi · 2026.7.29 01:45 · 조회 1

Remotion Lambda

AWS Lambda 기반으로 pay-per-render 방식의 클라우드 렌더링. 동시성을 자유롭게 늘릴 수 있고, 인프라 관리 없이 대량 영상을 만들 수 있다.


💡 왜 Lambda?

항목로컬 SSRLambda
동시성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 URL
  • private — 임시 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메타데이터 블록을 본문 하단으로 이동

댓글

아직 댓글이 없습니다.

댓글을 작성하려면 로그인이 필요합니다.