Cloudflare 무료 빌드 한도를 열흘 만에 소진했다! 남은 20일은 사이트를 재워야 할까?

읽기 기능 사용법

듣기는 본문을 읽어 줍니다. 속독은 구절을 차례로 표시하며 속도를 조절할 수 있습니다. 언어 연습은 다른 언어판과 번역을 비교합니다. 저장한 북마크는 이 브라우저의 플레이어 목록에서 다시 열 수 있습니다.

이 글 공유하기

이 글 공유하기

Cloudflare 무료 빌드 한도를 열흘 만에 소진했다! 남은 20일은 사이트를 재워야 할까?
AI 생성 이미지
광고
광고

Workers Builds 대안: CircleCI, GitHub Actions, Oracle Cloud를 무료로 나눠 쓰는 법

월초가 된 지 열흘. 관리 화면에는 “이번 달 사용량 한도에 도달했습니다”가 뜬다.

잠깐. 달력에는 아직 20일이나 남았는데요? 서버더러 겨울잠이라도 자라는 건가? 무료 요금제의 경비원이 출근 10일 만에 퇴근을 선언했다.

하지만 빌드 작업이 막힌 것과 이미 공개된 웹사이트가 멈춘 것은 다르다. 코드를 빌드하는 컴퓨터, 방문자 요청을 처리하는 프로그램, 완성된 HTML을 전송하는 서비스는 서로 다른 일을 한다. 일부 작업은 다른 회사의 무료 실행 환경으로 옮길 수도 있다.

수치는 2026년 10월 10일 공식 문서를 기준으로 확인했다. 서비스의 무료 한도는 바뀔 수 있다.

1. 무엇의 무료 한도가 소진됐을까?

Cloudflare라는 이름 아래에도 여러 계량기가 있다.

  • Workers Builds: 코드를 가져와 빌드하고 검사하는 시간. 무료 요금제는 월 3,000분, 동시 빌드 1개, 빌드당 최대 20분.[1]
  • Cloudflare Pages 빌드: 웹사이트를 새로 조립하는 횟수. 무료 월 500회, 한 번에 1개.[2]
  • Workers와 Pages Functions 요청: 동적으로 프로그램을 실행한 횟수. 무료 플랜에서 두 서비스는 하루 100,000회 요청 한도를 공유한다.[3]
  • 정적 파일 전송: Functions 호출 없이 완성된 HTML·이미지·CSS를 전달한다면 요청 수는 무료·무제한이다.[3]

월간 빌드 분을 다 썼다고 기존 사이트가 자동으로 사라지는 것은 아니다. 다만 다른 한도까지 소진했거나 새 작업을 해야 하는 기능이라면 영향이 있다. 먼저 “누가 죽었는지”를 확인하자. 클라우드 장례식에 엉뚱한 서비스를 조문하면 곤란하다.

2. 열흘 만에 3,000분이라면 계산은?

처음 열흘 동안 3,000분을 썼다고 가정하자. 하루 300분, 즉 5시간이다. 같은 속도로 30일을 쓰면 9,000분. 원래 무료 한도보다 6,000분 부족하다.

그렇다고 “무료 6,000분”이라고 광고하는 서비스를 찾으면 게임 끝일까? 아니다. 실행 환경마다 CPU, 메모리, 설치 시간, 처리 속도가 다르다.

먼저 쓸데없는 재빌드를 찾자. 글 한 줄 바꾸는데 사이트 전체를 다시 만들고 있지는 않나? 실패한 작업이 계속 재시도되나? 작은 검사를 큰 서버에서 돌리고 있나? 범인은 때때로 해커가 아니라 친절하게 적힌 “다시 실행” 버튼이다.

3. 실행기, 예약 호출기, 웹 서버는 다르다

GitHub Actions와 CircleCI는 코드를 실제로 실행하는 장소다. 빌드나 기사 처리에 필요하다.

cron-job.org는 정해진 시간에 URL을 호출하는 서비스다. 1분 간격 호출도 가능하지만, 계산 작업을 대신 수행하는 것은 아니다.[4]

Cloudflare Workers와 Deno Deploy는 웹 요청을 처리하는 곳이다. 방문자의 짧은 API 요청과 오래 걸리는 기사 빌드는 별개다.

알람시계 다섯 개를 사도 요리사가 다섯 명 생기지는 않는다. 예약 호출 횟수와 계산 능력을 혼동하지 말자.

4. GitHub Actions: 이미 GitHub를 쓰면 접근이 쉽다

GitHub Actions는 코드 저장소에서 검사·변환·정기 작업을 실행한다. GitHub Free 비공개 저장소는 표준 호스팅 실행 환경 기준 월 2,000분이 포함된다. 공개 저장소의 표준 실행기는 무료이지만, 무료 시간을 얻겠다고 비공개 코드를 공개하는 것은 잘못된 선택이다.[5]

기사 검사, 번역 파일 합치기, 이미지 준비, 짧은 자동화에 적합하다.

다만 예약 실행이 정확히 제시간에 시작된다고 보장되지 않는다. GitHub 공식 문서도 혼잡 시 지연되거나 실행이 누락될 수 있다고 밝힌다.[6] 아침 10시에 오라고 했더니 10시 48분에 출근하는 직원 같은 상황이다. 미실행 작업을 회수하는 설계가 필요하다.

또한 PR 검사와 모니터링도 같은 무료 시간을 사용하므로, 2,000분 전부를 기사 처리에 쓸 수 있다고 가정하면 안 된다.

5. CircleCI: 다른 회사의 무료 연산 시간을 추가

CircleCI Free에는 월 30,000 credits가 있다. 무료 플랜은 신용카드 등록이 필요하지 않고, 실행 환경에 따라 분당 소비량이 달라진다.[7][8]

실행 환경 예시 분당 credits 이론상 월 실행 시간
x86 Docker Small, 메모리 2GB 5 6,000분
x86 Docker Medium, 4GB 10 3,000분
x86 Docker Large, 8GB 20 1,500분
Arm Docker Gen 2 베타, 8GB 6 5,000분

[7][8]

여기서 함정. 2GB 환경의 “무료 6,000분”으로 8GB가 필요한 작업을 그대로 실행할 수는 없다. 고래를 원룸에 입주시키는 셈이다.

Arm Gen 2 베타는 공식 가격표에 2 CPU·8GB, 분당 6 credits로 표시되어 있어 매력적이다. 하지만 해당 플랜에서 쓸 수 있는지, 필요한 라이브러리가 Arm을 지원하는지, 실제 처리 시간이 얼마나 되는지 시험해야 한다.[8] 저장 공간이나 데이터 전송으로도 크레딧이 소모될 수 있다.[9]

CircleCI는 무한 무료 컴퓨터가 아니다. 그래도 별도 회사의 무료 한도가 하나 더 생기는 효과는 크다.

6. Oracle Cloud: 분 단위 CI 대신 가상 컴퓨터 사용

Oracle Cloud의 Always Free 가상 머신에서 직접 작업을 실행하는 방법도 있다.

중요한 2026년 수정 사항: 현재 공식 기준으로 Always Free Arm 용량은 총 2 OCPU·12GB 메모리 상당이다. 예전 글에 보이는 4 OCPU·24GB 수치를 그대로 믿으면 안 된다. 공식 월간 수치는 1,500 OCPU시간·9,000GB시간이다.[10][11]

가상 머신에서는 CI의 월간 실행 분수에 덜 묶일 수 있다. 대신 OS 업데이트, 보안, 키 관리, 장애 복구를 직접 맡아야 한다. 지역에 여유 자원이 없을 수도 있고, 오랫동안 거의 사용하지 않는 인스턴스는 회수될 수 있다.[10]

무료 작업실을 받았는데 알고 보니 전기기사와 경비원도 본인이 해야 하는 상황이다.

7. Cloudflare 전체를 떠날 필요는 없다

모든 기능을 이전하면 이미 정상 작동하던 사이트까지 망가뜨릴 수 있다.

합리적인 분담은 이렇다. GitHub는 원본 보관, CircleCI와 Actions는 오래 걸리는 처리, Cloudflare Pages는 완성된 정적 페이지 제공, Workers와 Functions는 짧은 API, 필요하면 Oracle VM은 추가 장시간 작업.

Pages에 Functions가 포함되면 정적 경로에서도 Functions가 실행될 수 있다. 공식 문서의 _routes.json으로 정적 경로를 제외할 수 있지만, 인증·보안·리디렉션에 필요한 경로는 함부로 제외하면 안 된다.[12]

Pages Free의 별도 제한인 월 500회 빌드, 사이트당 20,000개 파일도 기억하자.[2] 분수 제한을 피했는데 파일 수에서 걸리면 클라우드식 두더지 잡기다.

8. 다른 무료 서비스의 함정

Deno Deploy는 일부 API의 대안이 될 수 있다. 하지만 Cloudflare 전용 데이터베이스, 상태를 유지하는 실시간 방 등을 단순 복사로 옮기기는 어렵다.[13]

Vercel의 Hobby 무료 플랜은 개인의 비상업적 이용으로 제한된다. 광고나 유료 기능을 생각하는 사이트가 무조건 사용할 수 있는 대안은 아니다.[14]

cron-job.org는 무료 예약 호출을 제공하지만, 호출 대상이 이미 처리 한도를 초과했다면 알람만 울릴 뿐 작업은 끝나지 않는다.[4] 약관을 우회하려고 계정을 무더기로 만들자는 뜻도 아니다.

9. 가장 무서운 사고: 같은 글을 두 번 발행

Cloudflare와 CircleCI가 동시에 같은 기사를 처리한다고 상상하자. 하나는 최신 글을 공개하고, 다른 하나는 오래된 버전으로 덮어쓴다. 무료 자원을 얻는 대신 타임머신이 생겼다.

대책은 원본과 작업 배정 창구를 하나로 유지하는 것. 글마다 고유 ID와 내용 버전을 만들고, 한 실행기만 작업하도록 권한을 기록하고, 결과를 남긴다. 실패해 권한이 만료된 경우에만 다른 실행기에 넘긴다. 마지막에는 실제 공개 URL과 내용을 확인한다.

비밀 인증키나 공개 전 자료를 실행 로그에 남기지 말고, 실행기에 주는 접근 권한도 최소화해야 한다. 무료 이전을 하다가 비밀을 전 세계에 무료 배포하는 일은 피하자.

10. 남은 20일의 행동 순서와 결론

먼저 고갈된 한도가 Workers Builds인지, Pages 빌드 횟수인지, Workers 일일 요청 수인지 확인한다. 그다음 발행에 필수인 작업, 기사 준비 작업, 나중에 해도 되는 장식과 검사를 구분한다.

GitHub Actions의 잔여 시간을 확인하고, CircleCI Free에서 작은 작업 하나를 시험한다. 실행 시간·메모리·성공률을 본 다음 조금씩 옮긴다. 장시간 작업이 많으면 Oracle VM도 검토한다. 중복 실행 방지 장치가 생기기 전에는 여러 실행기를 동시에 연결하지 않는다.

질문: 빌드 한도를 넘으면 사이트까지 내려가나? 보통 자동으로 그렇지는 않다. 배포된 정적 파일 제공은 별개다. 다른 한도에는 주의한다.[1][3]

질문: CircleCI의 6,000분으로 부족한 6,000분을 정확히 채울 수 있나? 2GB 환경에서의 계산일 뿐. 실제 작업은 더 큰 메모리나 긴 시간이 필요할 수 있다.[7][8]

결론: 한 실행 장소의 한도가 끝났을 뿐, 아이디어의 수명이 끝난 것은 아니다.

Cloudflare: “이번 달은 퇴근합니다.”
GitHub: “작은 작업은 제가요.”
CircleCI: “몇 개는 이쪽으로 주세요.”
Oracle: “방은 있는데 관리는 직접 하세요.”
운영자: “무료 요금제도 교대 근무였어?”

체크메이트인 줄 알았는데 체스판 옆에 새 칸이 있었다.

  1. Cloudflare Workers Builds — limits and pricing developers.cloudflare.com
  2. Cloudflare Pages — platform limits developers.cloudflare.com
  3. Cloudflare Pages Functions — pricing and static requests developers.cloudflare.com
  4. cron-job.org — free URL scheduling, up to once per minute cron-job.org
  5. GitHub — Actions billing and included minutes docs.github.com
  6. GitHub — scheduled workflow delays and dropped runs docs.github.com
  7. CircleCI — official Free plan and 30,000-credit allowance circleci.com
  8. CircleCI — resource class price list, including Arm Gen 2 beta circleci.com
  9. CircleCI — credits, exhaustion, storage/network implications circleci.com
  10. Oracle — Always Free resources, revised 2026 Arm allowances and idle reclamation docs.oracle.com
  11. Oracle — Free Tier and current eligibility conditions docs.oracle.com
  12. Cloudflare Pages Functions — invocation routing and _routes.json developers.cloudflare.com
  13. Deno Deploy — runtime and pricing limitations, migration suitability docs.deno.com
  14. Vercel — Hobby plan, non-commercial restrictions vercel.com

이 글 공유하기

이 기사가 도움이 되었다면 사이트를 후원할 수 있습니다. 후원하기

광고

하나 더, 뭐 재미있는 거 없어?

다 읽은 김에. 가까운 이야기 몇 편과, 전혀 다르지만 재미있는 이야기를 골랐어요.

  1. 가까운 이야기글 2혈압은 약 때문에만 내려갔을까 — EMA5로 보는 “약 + 수면 + 스트레스 풀세트”
  2. '최강의 마법 검사'가 왜 전생 후에도 모험가인가?'싸움'과 '싸움을 당하는 삶'을 나누어 읽기
  3. 전혀 다르지만 재미있는치이카와는 왜 늘 먹고 있을까?음식, 잡초, 괴물, 노동, 그리고 10+ 등급의 공포
  4. 9% 500mL 캔, 정말 "한 캔"일까?5% 맥주 약 2.6캔 분량이다
  5. 춤추는 룸펠슈틸츠헨은 옛날 영화 속 인물일까?존재하지 않는 비디오테이프의 정체
  6. 『얼음 성벽』 코유키가 공감되는 이유괜찮은 척해도 집에서 계속 생각한다

오늘은 이 글

이 글을 읽은 분이 다음에 품는 질문에 각각 답하는 글입니다.

전체 글에서 찾기‘일’ 글 더 보기

다른 글 찾기

모든 기사

Mendoi-chan

사이트 운영자

Mendoi-chan

직장과 일상의 불편함을 구조화해 이해하기 쉬운 다음 행동으로 연결하는 글을 씁니다.