pile·
인프라 / DevOps·cloudflare-blogCloudflare Blog·

Worker 앞단에 직접 붙는 캐시 레이어, Workers Cache 출시

Cloudflare가 Workers Cache를 출시했다. Worker 엔트리포인트 바로 앞에 위치하는 리전 2-티어 캐싱 레이어로, Wrangler 설정 한 줄("cache": { "enabled": true })과 표준 HTTP Cache-Control 헤더만으로 활성화된다. 캐시 히트 시 Worker가 실행되지 않아 CPU 비용이 발생하지 않으며, 모든 플랜에서 추가 스토리지 비용 없이 사용 가능하다.

핵심 포인트
  • 2-티어 구조: 각 Cloudflare 데이터센터(하위 티어) + 전략적 배치 상위 티어로 구성되어, 첫 요청 후 전 세계 어디서든 Worker 실행 없이 캐시 응답을 서빙한다.
  • stale-while-revalidate 지원: 만료 후에도 즉시 캐시 응답을 반환하면서 Worker가 백그라운드에서 비동기로 새 콘텐츠를 채운다.
  • Cache-Tag 기반 세밀한 무효화: ctx.cache.purge({ tags: ["product:123"] })로 특정 태그가 붙은 캐시만 선택 삭제 가능하다.
  • ctx.props 격리: WorkerEntrypoint의 ctx.props(예: userId)가 캐시 키에 포함되어 멀티테넌트 환경에서도 사용자별 캐시 엔트리를 안전하게 분리한다.
  • 엔트리포인트 단위 캐시 소유권: 존 설정(Cache Rules, Page Rules) 불필요. 캐시 무효화가 해당 Worker 엔트리포인트 범위로만 제한된다.
  • 과금: 캐시 히트는 표준 요청 요금만 부과, CPU 시간 청구 0. 별도 스토리지 요금 없음.
상세 정리
  • 배경: 2017년 Worker 출시 당시 캐시/오리진 서버 앞에서 요청을 변환하는 미들웨어 역할로 설계됐다. 이후 Astro/Next.js/Remix 등 SSR 프레임워크가 Worker 자체를 오리진으로 사용하면서, 캐시 레이어 없이 매 요청마다 렌더링 비용이 발생하는 구조가 됐다.
  • 변화: Workers Cache는 Worker 뒤가 아닌 앞에 캐시 레이어를 두어 캐시 가능한 요청이 Worker에 닿기 전에 처리되게 한다.
  • 2-Tier 캐시: 하위 티어는 트래픽을 받는 각 데이터센터에, 상위 티어는 소수의 전략적 위치에 배치된다. 첫 요청이 상위 티어를 채우면 이후 전 세계 데이터센터가 Worker 실행 없이 캐시에서 응답한다.
  • stale-while-revalidate 동작: max-age 내에서는 캐시 직접 반환, 스테일 윈도우 내에서는 캐시 즉시 반환 + Worker 백그라운드 갱신, 양 윈도우 외에서는 Worker가 직접 응답 생성 후 사용자 대기.
  • Vary 헤더: 동일 URL에서 Accept 등 요청 헤더 값에 따라 별도 캐시 엔트리 저장. RFC 9110/9111 준수. 예: WebP/JPEG 이미지를 Accept 헤더에 따라 분리 캐시.
  • 캐시 소유권 격리: 캐시 무효화가 해당 Worker 엔트리포인트 범위로만 제한되어 다른 존의 캐시를 실수로 삭제하지 않는다. workers.dev, 프리뷰 URL, Workers for Platforms 환경 모두 지원.
  • ctx.props 캐시 키: WorkerEntrypoint에서 this.ctx.props 값이 캐시 키에 포함된다. userId 등을 props로 넘기면 사용자별 별도 엔트리가 생성되어 인증 API에서도 안전하게 캐시 가능.
  • 엔트리포인트 간 캐시 조합: 기본 export, 명명된 WorkerEntrypoint, ctx.exports 내부 호출 각각에 독립 캐시를 설정할 수 있다. 인증 레이어(캐시 없음)와 데이터 레이어(캐시 있음)를 같은 Worker 안에서 분리하는 패턴이 가능하다.
  • Smart Placement 연동: 유저 가까운 Worker A(인증/라우팅)와 데이터 가까운 Worker B(렌더링/DB) 사이에 Workers Cache를 두어, 히트 시 Worker B 호출 없이 응답한다.
  • Astro 통합: @astrojs/cloudflare의 cacheCloudflare() 어댑터가 캐시 활성화, Cache-Control 설정, 태그 부착, 무효화를 자동 처리. routeRules로 경로별 max-age/stale 윈도우를 설정한다.
  • 과금 모델: 히트는 요청 요금만, CPU 시간 0. 미스/바이패스는 요청 + CPU 요금. 스토리지 비용 없음. 단, 캐시 활성화 시 기존 무료 요청(정적 에셋, 서비스 바인딩 호출)도 표준 요청 요금이 적용된다.
  • 예정 기능: Smart Placement와 상위 티어 캐시 co-location, 더 큰 캐시 응답 크기, Next.js/TanStack Start 통합, ctx.cache.invalidate() API.
왜 읽나Cloudflare Workers로 SSR 앱을 운영하거나 엣지 캐싱 전략을 설계하는 인프라/백엔드 엔지니어에게 Workers Cache 아키텍처와 실전 설정 패턴을 한 번에 파악할 수 있는 레퍼런스.
cloudflare-blog
Cloudflare Blog 블로그
원문은 여기서 이어서 읽을 수 있어요
원문 읽기
읽음 (0)

이 글과 비슷한

  1. 인프라 / DevOps·AWS KoreaAWS Korea Tech·

    엔터프라이즈 보안 요구사항을 충족하는 프라이빗 Amazon Bedrock AgentCore 구축하기

    Amazon Bedrock AgentCore의 VPC egress 기능(2026년 4월 추가)을 활용해 온프레미스 LLM·사내 IdP·사내 MCP 서버에 인터넷 노출 없이 연결하는 방법을 다룬다. 규제 산업 엔터프라이즈가 기존 사내 자산을 그대로 유지하면서 Bedrock AgentCore를 안전하게 구축하기 위한 구성 가이드다.

    요약 이어보기
    #mcp#amazon-bedrock#vpc+2
  2. 인프라 / DevOps·gitlab-engGitLab Blog·

    OpenTofu와 Argo CD로 구성하는 GitLab 기반 AWS 제어 플레인

    GitLab을 단일 제어 플레인으로 삼아 OpenTofu로 AWS 인프라를 프로비저닝하고, Argo CD로 GitOps 기반 애플리케이션 배포까지 자동화하는 엔드투엔드 튜토리얼이다. VPC·EKS 클러스터 구성부터 Helm 기반 툴 설치, 샘플 앱 배포까지 모든 과정이 GitLab CI/CD 파이프라인으로 연결된다.

    요약 이어보기
    #kubernetes#aws-eks#gitops+2
  3. 인프라 / DevOps·AWS KoreaAWS Korea Tech·

    Amazon Bedrock 기반 사내 LLM, 키 발급부터 비용 차단까지: F&F의 LiteLLM 게이트웨이 운영 사례

    패션 기업 F&F가 Amazon Bedrock과 LiteLLM 프록시를 결합해 구축한 사내 LLM 플랫폼 운영 사례다. API 키 셀프서비스 발급, 모델별 접근 승인 워크플로, 사용자·프로젝트별 예산 자동 차단까지 전 과정을 직접 구현한 아키텍처 결정과 운영 교훈을 공유한다.

    요약 이어보기
    #kubernetes#amazon-bedrock#litellm+2