Cloudflare Pages 무료 플랜: 빌드 500회 벽 정리
무료 티어 무제한 대역폭이 너무 좋아 보인다. 진짜 병목은 월 500회 빌드 한도. 도달하면 실제로 어떻게 되는지 정리.
Cloudflare Pages는 메이저 호스팅 중 무료 티어에서 무제한 대역폭을 주는 유일한 곳이다. 100 GB도 1 TB도 아닌 무제한, 약관에 숨겨진 적정 사용 조항도 없다. 블로그가 바이럴 터져도 청구서는 0달러 그대로. 진짜다, 사람들이 Pages를 선택하는 헤드라인 이유다.
함정은 월 500회 빌드 한도. 다른 한도는 대부분 넉넉하다: 동시 빌드 1, 파일당 25 MB, 배포당 파일 20,000개. 빌드 한도가 거의 모두가 처음 부딪히는 벽이다.
500이 많아 보이지만 그렇지 않은 이유
사이트 1개에 매일 푸시한다면 월 30회 빌드. 한도의 6%. 문제 없음.
PR마다 프리뷰 배포 돌리면 커밋마다 빌드 트리거. PR 열고 리뷰 대응으로 3번 푸시하고 머지 , 기능 하나에 4회 빌드. 이런 작업 2개 레포에서 돌리면 프로덕션 배포 전에 이미 240회.
여러 작은 사이트의 기본 호스팅으로 Cloudflare Pages를 쓰면, 모든 사이트가 같은 계정 한도를 공유한다. 우리는 이 계정에 35개+ 사이트가 있고 한도가 처음 부딪힌 진짜 마찰이었다.
500회 도달 시 일어나는 일
다음 푸시가 429 반환. 빌드 안 돌아감. 이전 배포는 라이브 유지 → 사이트는 계속 서비스됨. Cloudflare는 다음 달 시작 시 카운터 리셋.
"기다렸다가 재시도" 없음 , 빌드는 드롭되고 다음 달에 다시 푸시해야 함. 실제로는 배포를 지연시키는 게 아니라 의도한 배포를 잃는 것이다.
작동하는 우회법
로컬 빌드 후 Direct Upload API로 배포. npm next build가 로컬에서 돌고, 업로드만 카운트됨. 우리는 Cloudflare API 직접 호출하는 커스텀 스크립트(cf-deploy.mjs)를 쓴다. 로컬 빌드가 어차피 더 빠르다.
읽지 않는 브랜치 프리뷰 배포 비활성화. Cloudflare 기본은 "모든 브랜치·PR 빌드" , 보통 production.wrangler.toml 또는 대시보드에서 오버라이드. main + 몇 개 기능 브랜치로 제한.
매우 활발한 레포는 Vercel/Netlify로, 안정적인 것은 Pages에 유지. Pages 무료 티어는 배포 빈도 낮은 정적 사이트에 최고의 무료 티어. 빠른 반복 앱에는 최악. 그렇게 분류.
한 가지 경우엔 Pages 압도적
의미 있는 미디어(이미지·MP4·PDF)를 제공한다면, 무제한 대역폭만으로 빌드 한도 고통이 정당화된다. Vercel에서 바이럴 페이지 하나가 오후 만에 100 GB 도달, 초과 청구 시작. 같은 페이지 Pages에서 0원.
정적 블로그·이미지 디렉토리·문서 사이트·다운로드 미러가 Pages가 빛나는 영역. 잦은 배포 활성 SaaS 앱은 빌드 한도가 무는 영역. 그렇게 선택.