핵심 요약
같은 SaaS API(Next.js 16 + Drizzle + Postgres) 3가지 환경에 똑같이 배포해 6개월 운영. 결론: Edge가 항상 답은 아니다. 워크로드·팀 구조·DX·비용 4축이 각자 다른 답을 가리킴.
1. 측정 대상
- 월 80M req · 사용자 글로벌
- RSC + Server Action 위주, 일부 SSR
- DB: Neon Postgres (서울·프랑크푸르트 read replica)
- 3개 환경에 같은 코드를 GitOps로 동시 배포
2. 핵심 수치 비교
| 지표 | Vercel | CF Workers | Bun 단독 (Fly.io 5리전) |
|---|---|---|---|
| P50 latency | 62ms | 54ms | 78ms |
| P99 latency | 240ms | 290ms | 180ms |
| cold start | 320ms | 4ms (isolate) | 120ms |
| 월 비용 | $1,180 | $420 | $340 (인프라) |
| DX 점수 (팀 설문) | 9/10 | 7/10 | 6/10 |
| 장애 (6개월) | 0 | 1 (1시간) | 2 (총 3시간) |
3. Vercel — 압도적 DX, 비싼 가격
- Next.js와 완전 통합 — push만 하면 끝
- preview deploy로 PR마다 URL
- Speed Insights·Analytics 내장
- 월 80M req 기준 단가가 빠르게 올라감
- 이미지·헬퍼·미들웨어 limit이 존재 (Edge Function 동작 제약)
4. Cloudflare Workers — 가장 저렴·가장 빠른 cold start
- isolate 모델 — cold start 사실상 없음
- 전 세계 데이터센터에 자동 배포
- 제약: CPU time per request (50ms~30s 플랜별)
- 일부 Node API 미지원 (점진 확대)
- OpenNext 어댑터로 Next.js 16도 가능 (성숙도 90%)
5. Bun 단독 (Fly.io) — 운영 책임 큼, 자유도 큼
- 모든 Node API + Bun의 고성능
- 장기 연결·웹소켓 자유 (Workers는 별도 객체)
- 운영: 모니터링·alert·롤백 직접
- 지역 확장 직접 (auto vs manual)
6. 비용 — 한 줄 비교
같은 80M req, 응답 평균 8KB, 평균 처리 12ms.
| 제품 | 요금 모델 | $ |
|---|---|---|
| Vercel Pro | 요청 + 함수 시간 | $1,180 |
| CF Workers Paid | 월 $5 기본 + 요청·CPU 시간 | $420 |
| Fly.io (Bun) 5리전 | VM 시간 + 트래픽 | $340 + 운영 인건비 |
7. 어떻게 결정했나
- 회사 핵심 SaaS는 Vercel (DX·preview·신뢰성)
- 고트래픽·정적+간단 API는 Cloudflare Workers
- WebSocket·실시간 협업 부속 서비스는 Bun on Fly.io
"하나로 통일"이 답이 아니라 워크로드별 분리.
8. 빠지기 쉬운 함정
① Edge에서 DB가 멀다
Edge 함수는 사용자에 가깝지만 DB는 한 곳. 라운드트립이 늘면 의미 없음. read replica 또는 Edge SQLite 같이.
② Vercel의 Region Setting
Edge Function은 글로벌, Serverless Function은 특정 region. 잘못 설정하면 DB와 멀어짐.
③ Workers의 CPU 제한
이미지 처리·JSON 거대 파싱은 제한 시간 부딪힐 수 있음. 무거운 작업은 Durable Objects나 Queue로.
④ Bun 자체 호스팅의 보안 책임
업데이트·CVE·WAF 직접. SaaS형 두 곳보다 손이 많이 감.
9. 마이그레이션 비용
- Vercel → Workers: 어댑터로 80% 자동, 나머지 1~2주
- Workers → Vercel: 더 쉬움 (Workers가 좁은 표준)
- 둘 다 → Bun 자체: 4~8주 (운영 도구·모니터링 구축 포함)
10. 결정 가이드
| 상황 | 추천 |
|---|---|
| 스타트업 초기·DX 중요 | Vercel |
| 요청 많고 마진 빠듯 | Cloudflare Workers |
| 플랫폼 비종속 가치 | Bun + Fly.io / Render |
| WebSocket·롱-라이브 연결 | Bun 또는 Workers Durable Objects |
| Korea-only 사용자 | Vercel 또는 자체 호스팅 + 한국 리전 |
참고
- vercel.com/docs/concepts/limits
- developers.cloudflare.com/workers/platform/limits
- fly.io/docs/about/pricing

댓글 0