Vercel의 Fluid compute는 외부 서비스를 기다리는 워크로드에 최적화된 차세대 서버리스 모델이다. 기존 서버리스가 인스턴스당 1요청 모델로 유휴 비용이 발생한 것과 달리, Fluid는 기존 인스턴스를 재사용하고 트래픽에 따라 동적으로 스케일해 compute 비용을 최대 85%까지 절감한다.
핵심 포인트- compute 인스턴스가 직접 트래픽을 받지 않고 Functions 라우터와 영구 TCP 터널을 먼저 맺는다
- 라우터가 활성 인스턴스 우선 → 예열된 대기 인스턴스 → 신규 프로비저닝 순으로 할당한다
- Anycast로 최인접 Vercel PoP에 도달한 요청을 Edge Firewall과 캐시가 먼저 처리한다
- 바이트코드 캐싱으로 콜드 스타트 지연을 줄이고, 스트리밍 응답으로 TTFB를 낮춘다
- 별도 마이그레이션 없이 프로젝트 설정에서 활성화하면 되고 모든 Vercel 플랜에서 사용 가능하다
상세 정리- 기존 서버리스 한계: 인스턴스당 1요청 모델이라 외부 API나 DB를 기다리는 대기 시간에도 유휴 비용이 발생했다.
- 통신 모델: Fluid 인스턴스는 직접 트래픽을 받지 않고 Functions 라우터로 영구 TCP 터널을 먼저 연결한다. 라우터가 호출 데이터를 푸시하면 인스턴스가 응답을 역방향으로 스트리밍하는 양방향 구조다.
- Edge 처리 흐름: 요청이 Anycast를 통해 최인접 Vercel PoP에 도달한다. Vercel Firewall이 트래픽을 검사하고 Edge 캐시 히트면 즉시 응답, 미스면 Functions 라우터로 전달한다.
- 인스턴스 선택 전략: 라우터는 TCP 터널이 살아있는 활성 인스턴스를 최우선 선택한다. 없으면 예열된 대기 인스턴스, 그것도 없으면 신규 인스턴스를 프로비저닝한다.
- 바이트코드 캐싱: 인스턴스 초기화 시 컴파일된 바이트코드를 캐시해 재사용하므로 콜드 스타트 시간을 단축한다.
- 실행과 스트리밍: 함수가 실행하면서 응답을 즉시 스트리밍해 Time to First Byte를 낮춘다.
- 동적 스케일링: 라우터가 트래픽 패턴과 인스턴스 상태를 지속 모니터링한다. 급증 시 선제적으로 스케일 업, 유휴 시 용량을 자동으로 줄인다.
- 비용 효율: 유휴 compute를 재사용해 낭비를 없애므로 최대 85% 비용 절감 사례가 보고된다.
- 운영 관측성: Observability 대시보드에서 Fluid의 성능 지표를 추적할 수 있다.
왜 읽나Vercel에서 서버리스 함수를 운용하거나 serverless compute 아키텍처를 이해하려는 인프라/백엔드 엔지니어에게 Fluid의 라우팅, 인스턴스 재사용, 비용 최적화 메커니즘의 실제 구현 방식을 보여준다.