Cloudflare Workers냐 Vercel이냐…요청 수보다 앱 구조가 비용을 가른다

|작성자: QUASA 편집팀|6 분 소요| 2
Cloudflare Workers냐 Vercel이냐…요청 수보다 앱 구조가 비용을 가른다

정적 자산을 많이 제공하고 동적 함수가 짧게 실행되는 서비스라면 Cloudflare Workers의 요금 구조가 유리할 수 있다. Next.js 기능에 깊이 의존하는 앱이라면 Vercel에서 기존 배포 방식을 유지하는 편익까지 계산해야 한다. 월 요청 수가 같아도 함수 실행 비율, CPU 사용량, 전송량과 배포 권한을 가진 팀원 수에 따라 비용 차이는 달라진다.

한국 사용자를 대상으로 한 서비스를 가정해 정적 콘텐츠 중심 사이트, 일반적인 SaaS, 서버 렌더링 중심 앱에 같은 계산 방식을 적용했다. 두 플랫폼에 동일한 외부 데이터베이스 예산을 더한 조건부 월 비용이다. 실제 청구액이나 응답 속도를 측정한 결과는 아니며, 각 서비스가 어떤 요청을 함수로 보내는지가 계산의 출발점이다.

두 플랫폼은 무엇을 과금하는가

Cloudflare Workers 요금표에 따르면 유료 플랜의 계정 기본료는 월 5달러이며, 월 Worker 요청 1,000만 건과 CPU 시간 3,000만 밀리초가 포함된다. 초과분은 요청 100만 건당 0.30달러, CPU 시간 100만 밀리초당 0.02달러다. 정적 자산 요청은 무료지만 Workers Caching을 거쳐 제공한 요청은 과금 대상 요청에 포함될 수 있다. Workers 요금에는 별도 데이터 전송 요금이 없어, 정적 자산을 Worker 실행과 분리하는 구성이 비용에 직접 영향을 준다.

Vercel Pro 플랜 안내에는 월 20달러의 플랫폼 요금, 월 20달러의 인프라 사용량 크레딧, 배포 가능한 좌석 한 개가 명시돼 있다. 추가 Owner 또는 Member 좌석은 월 20달러씩이고, 배포 권한이 없는 Viewer 좌석은 무료다. 따라서 팀 전체 인원보다 실제로 프로젝트를 설정하거나 배포할 사람 수가 이 비교에 중요하다. 사용량 크레딧은 월별 인프라 사용료에 적용하고, 아래 계산에서는 좌석료와 선택한 CDN 용량의 고정요금을 별도 항목으로 둔다.

새 Pro 팀에 기본 적용되는 Vercel 정액 CDN 구성은 월 CDN 요청 100만 건과 데이터 전송량 1TB를 포함한다. 요청 1,000만 건·전송량 50TB 용량은 월 20달러, 요청 5,000만 건·전송량 50TB 용량은 월 100달러다. 이 용량은 팀 단위로 적용되며 함수 실행료를 포함하지 않는다. 일시적인 트래픽 급증은 별도 초과 요금 없이 처리되지만, 지속적으로 용량을 넘으면 다음 청구 기간의 요금 구성이 바뀔 수 있다.

함수에는 CDN과 다른 계산식이 붙는다. Vercel Fluid Compute 요금표의 서울 리전 단가는 활성 CPU 시간당 0.169달러, 할당된 메모리의 GB·시간당 0.014달러이며, Pro 함수 호출은 100만 건당 0.60달러다. 외부 데이터베이스의 응답을 기다리는 동안 활성 CPU 과금은 멈추지만 인스턴스에 할당된 메모리는 계속 과금될 수 있다. 같은 함수 호출 건수라도 계산 작업과 대기 시간의 조합이 다르면 비용도 달라진다.

한국 사용자 대상 서비스에 넣은 조건

첫째는 정적 페이지와 이미지가 대부분인 소규모 서비스다. 월 CDN 요청 50만 건 중 10만 건만 함수를 실행하고, 전송량은 0.2TB, 배포 담당자는 한 명으로 가정했다. 함수 호출당 활성 CPU는 5밀리초, 인스턴스 점유 시간은 50밀리초로 놓았다. Workers에서는 나머지 정적 요청이 Worker를 거치지 않는 구성이다.

둘째는 로그인과 데이터 조회가 잦은 SaaS다. 월 CDN 요청 500만 건 중 함수 호출은 100만 건, 전송량은 2TB, 배포 담당자는 세 명으로 정했다. 함수 호출당 활성 CPU 10밀리초와 점유 시간 100밀리초를 적용했다. 정적 콘텐츠가 반복 제공되면서도 개인별 응답이 상당한 구조를 나타내기 위한 가정이며, 업계 평균을 뜻하지 않는다.

셋째는 서버 렌더링 비중이 높은 앱이다. 월 CDN 요청 2,000만 건 중 함수 호출 500만 건, 전송량 10TB, 배포 담당자 다섯 명을 넣었다. 호출당 활성 CPU는 100밀리초, 점유 시간은 500밀리초로 잡았다. 세 경우 모두 Vercel 함수 인스턴스에 2GB의 메모리를 할당하고, 외부 데이터베이스에는 플랫폼과 무관하게 월 30달러의 가상 예산을 둔다. 이 예산은 특정 데이터베이스 상품의 견적이 아니다.

두 플랫폼에 같은 함수 호출 수와 CPU 시간을 대입했지만, 이것이 두 환경에서 코드의 실행 시간이 실제로 같다는 뜻은 아니다. CDN 요청 가운데 어떤 응답을 정적 자산으로 처리하고 어떤 응답을 함수까지 보내는지도 서비스 구현에 따라 달라진다. 아래 금액은 그 조건을 고정했을 때 과금 항목이 어떻게 쌓이는지 보여준다.

같은 서비스 구조를 대입한 월 비용

렌더링 중심 서비스의 동일한 요청 조건에서 Cloudflare Workers와 Vercel의 월 비용 항목이 달라지는 비교

Workers 비용에는 계정 기본료와 포함량을 넘는 Worker 요청·CPU 사용량을 더했다. Vercel 비용에는 플랫폼 요금, 추가 배포 좌석, 선택한 정액 CDN 용량을 넣고 함수 사용료에서 월 크레딧을 적용했다. 마지막으로 양쪽에 같은 데이터베이스 예산을 더했다. 금액은 미국 달러 기준이며 세금과 환율은 반영하지 않았다.

  • 정적 콘텐츠 중심: Workers 35달러, Vercel 50달러. Workers의 함수 요청과 CPU는 포함량 안에 있고, Vercel의 CDN 요청·전송량도 기본 용량에 들어간다. 가정한 Vercel 함수 사용료는 약 0.12달러여서 월 크레딧을 넘지 않는다. 양쪽 금액 모두 데이터베이스 예산 30달러를 포함한다.
  • 일반 SaaS: Workers 35달러, Vercel 110달러. Workers의 함수 호출과 CPU 사용량은 여전히 포함량 안이다. Vercel에는 플랫폼 20달러, 추가 배포 좌석 두 개 40달러, 상위 CDN 용량 20달러, 데이터베이스 예산 30달러가 들어간다. 함수 사용료 약 1.85달러는 크레딧 안에 있다.
  • 렌더링 중심 앱: Workers 44.40달러, Vercel 약 255.92달러. Workers는 총 CPU 시간 5억 밀리초에서 포함량을 뺀 초과분에 9.40달러가 붙는다. Vercel에는 플랫폼 20달러, 추가 좌석 네 개 80달러, CDN 용량 100달러, 데이터베이스 예산 30달러와 함수 사용료 약 45.92달러 중 크레딧을 넘는 약 25.92달러가 들어간다.

마지막 사례에서 Vercel 함수 사용료는 활성 CPU 약 23.47달러, 메모리 점유 약 19.44달러, 호출 약 3달러의 합계다. 점유 시간은 호출마다 독립적으로 발생한다고 단순화했다. 실제 Fluid Compute에서는 한 인스턴스가 동시에 여러 요청을 처리할 수 있으므로 메모리 청구액은 이 가정과 달라질 수 있다. 따라서 표의 차액을 실제 서비스의 절감액으로 그대로 해석해서는 안 된다.

세 사례 모두 전체 CDN 요청보다 함수로 전달되는 요청의 비율이 요금에 더 직접적으로 작용한다. 특히 렌더링 중심 앱의 Vercel 금액에는 함수 사용료뿐 아니라 좌석과 CDN 용량의 고정비가 크게 반영됐다. 반대로 배포 담당자가 적고 동적 응답이 줄어든다면 같은 CDN 트래픽에서도 계산 결과가 낮아질 수 있다.

Next.js 의존도가 높다면 배포 작업도 비용이다

Next.js 앱이 Vercel과 Cloudflare Workers로 배포될 때 vinext 호환성 확인이 필요한 경로 비교

기존 Next.js 앱을 옮길 때는 월 요금표만으로 결론을 내리기 어렵다. Cloudflare의 Next.js 배포 안내는 Workers에서 vinext를 기본 경로로 권장하면서 베타로 표시한다. App Router, 서버 렌더링, Server Actions 등은 지원 목록에 있지만 일부 next/* 모듈은 호환성 확인이 필요하고 이미지 최적화는 부분적으로 지원된다. 이미 운영 중인 앱이라면 사용 중인 기능과 패키지가 이 경로에서 작동하는지 확인하는 시간이 선택 비용에 포함된다.

인증 미들웨어, 이미지 처리, 캐시 갱신과 서버 전용 패키지를 많이 쓰는 앱은 단순 API보다 이전 범위가 넓다. 호환성 문제를 해결하는 개발 시간을 월 인프라 요금과 정확히 같은 금액으로 환산하기는 어렵지만, 이전 작업이 길어지면 계산표의 월 차액만으로 판단하기 어렵다. 반면 프레임워크 의존성이 얕은 API나 처음부터 Workers 환경에 맞춰 설계하는 프로젝트는 변경 작업이 적을 수 있다.

데이터베이스는 두 플랫폼 밖에서도 비용을 만든다

한국 사용자에게 응답하는 함수와 실제 데이터베이스가 멀리 떨어져 있으면 조회 과정의 왕복 시간이 늘 수 있다. 위 계산에서 Vercel의 서울 리전 단가를 사용한 것은 한국 사용자 대상이라는 조건에 맞춘 요금 가정이며, 실제 지연 시간을 측정했다는 뜻은 아니다. Workers에서도 사용자 가까이에서 함수를 실행하는 위치와 데이터베이스의 위치를 별도로 봐야 한다. 데이터 조회가 많은 서비스일수록 함수 단가와 함께 연결 방식, 캐시 동작, 데이터베이스 위치가 응답 경험을 좌우한다.

표의 데이터베이스 예산 30달러는 비교를 위해 양쪽에 똑같이 넣은 값이다. 실제 계약에서는 저장 용량, 읽기·쓰기 작업, 연결 수와 데이터 전송량에 따라 청구액이 달라진다. 관리형 데이터베이스를 한 플랫폼의 상품으로 바꾸거나 캐시 계층을 추가한다면 두 열에 같은 금액을 넣던 전제도 바뀐다. 데이터 조회가 줄어 함수 점유 시간까지 짧아지는 경우에는 데이터 계층의 선택이 함수 비용에도 영향을 준다.

어떤 서비스에 어느 쪽이 맞는가

정적 자산을 Worker 실행과 분리할 수 있고 짧은 동적 함수가 중심이라면 Workers의 포함량과 단순한 CPU 과금식이 유리한 출발점이다. 특히 배포 담당자가 여러 명인 서비스에서는 Vercel의 추가 좌석료가 월 비용 차이에 들어간다. 다만 저장소나 데이터베이스 등 별도 상품을 사용한다면 그 비용까지 포함해야 전체 지출이 된다.

기존 Next.js 기능을 유지하는 편익이 크다면 Vercel의 높은 월 금액을 배포·유지 작업의 감소와 함께 평가할 수 있다. 정액 CDN은 해당 용량의 전달 비용을 예측하기 쉽게 하지만 함수 실행과 배포 좌석은 별도 항목으로 남는다. 결국 선택을 바꾸는 수치는 전체 요청 수 하나가 아니라 정적 요청과 함수 호출의 비율, 호출당 CPU·메모리 점유 시간, CDN 전송량, 배포 좌석, 데이터베이스 비용의 조합이다.

함께 읽기:

공유:

뉴스레터 구독

최신 Web3, AI, 암호화폐 뉴스를 이메일로 받아보세요.

0