피드로 돌아가기
Dev.toInfrastructure
원문 읽기
Serverless Timeout 극복을 위한 비동기 Video Processing 아키텍처 설계
Add Video Processing to Your Vercel + Supabase App in 10 Minutes
AI 요약
Context
Vercel Serverless Functions의 실행 시간 제한(Hobby 10초, Pro 60초)으로 인한 대용량 비디오 트랜스코딩 불가 문제 발생. FFmpeg 바이너리를 직접 실행할 경우 발생하는 과도한 컴퓨팅 자원 소모와 타임아웃 병목 지점 식별.
Technical Solution
- Serverless 환경의 제약을 해결하기 위해 외부 Cloud API 기반의 비동기 처리 구조 채택
- Supabase Storage를 원천 데이터 저장소 및 최종 결과물 저장소로 활용하는 Stateless 파이프라인 구축
- HTTP 기반의 Job ID 발급 및 Polling 메커니즘을 통한 Long-running Task의 상태 관리
- Vercel API Route를 오케스트레이터로 활용하여 Supabase와 FFmpeg Micro 간의 데이터 흐름 제어
- Public/Signed URL을 통한 저장소 접근 권한 부여로 API 서비스의 파일 접근성 확보
- 클라이언트 측 API Key 노출 방지를 위한 Server-side Polling 및 Proxy Route 설계
실천 포인트
- Serverless 함수 타임아웃 설정을 확인하고 처리 시간이 초과되는 작업은 비동기 큐 또는 외부 API로 분리할 것 - API 호출 시 Public URL의 유효 기간과 접근 권한(Signed URL)이 처리 예상 시간보다 충분한지 검토할 것 - 보안 유지를 위해 API Key를 사용하는 Polling 로직은 반드시 Server-side에서 수행할 것 - 서비스 플랜에 따라 Polling 방식과 Webhook 방식 중 적절한 상태 확인 메커니즘을 선택할 것