콘텐츠로 이동

Cloudflare CDN과 캐싱

개요

전 세계 어디에서 접속해도 원본 서버까지 매번 왕복하면 느려요. Cloudflare는 전 세계에 분산된 데이터 센터(edge) 에 콘텐츠 사본을 캐시해 두고, 사용자와 가까운 곳에서 서빙해요. 이게 Cloudflare의 CDN(Content Delivery Network) 이자 캐싱 기능이에요. 공식 문서는 "자주 접근하는 콘텐츠(이미지·비디오·웹페이지)의 사본을 지리적으로 분산된 데이터 센터에 저장해서, 원본 서버 부하를 줄이고 성능을 높이는 것"이라고 설명해요. 이 페이지는 공식 문서 기준으로 기본 캐시 동작과 주요 기능을 풀어요.

핵심 개념

기본 캐시 동작

Cloudflare는 기본적으로 어떤 콘텐츠를 캐시하고 어떻게 응답하는지에 대한 기본 동작(default cache behavior)이 있어요. 일반적으로 정적 파일(이미지·CSS·JS 등)이 캐시 대상이 되고, 동적 콘텐츠는 캐시 여부를 설정으로 정해요. 캐시된 콘텐츠는 원본 서버까지 가지 않고 edge에서 응답하므로, 원본 부하가 줄고 응답이 빨라져요.

Cache Rules

기본 동작만으론 부족할 때 Cache Rules로 "어떤 리소스를 얼마나 캐시할지"를 세밀하게 조정해요. 경로·파일 형식 등 조건에 따라 캐시 대상과 TTL(캐시 유지 시간)을 지정할 수 있어요. 사이트에 맞는 캐시 전략을 규칙으로 표현하는 게 핵심이에요.

Tiered Cache와 Cache Reserve

  • Tiered Cache — 자주 접근하는 콘텐츠를 여러 위치에 캐시해서, 더 빠른 전달과 원본 트래픽 감소를 노리는 기능이에요.
  • Cache Reserve — Cloudflare의 영구 스토리지를 써서 캐시 유지 시간을 늘리는 기능이에요. 오래 캐시해 두고 싶을 때 써요.

Purge (퍼지)

배포로 콘텐츠가 바뀌었는데 CDN이 옛 버전을 캐시하고 있으면, 사용자는 오래된 페이지를 보게 돼요. Purge는 캐시된 파일을 즉시 무효화해서 Cloudflare가 원본 서버에서 새 버전을 다시 가져오도록 해요. 특정 파일만 퍼지하거나 전체를 한 번에 퍼지할 수 있어요. 이 기능이 캐시와 배포 흐름을 잇는 핵심이에요.

캐시와 원본의 관계

CDN 캐시는 "원본 서버를 대신해 응답하는" 관계예요. 캐시된 버전을 서빙하는 동안 원본은 트래픽에서 벗어나지만, 콘텐츠가 갱신되면 캐시도 함께 갱신·무효화돼야 해요. 그래서 캐시 무효화(Purge) 전략을 배포 흐름과 함께 설계해야 해요.

실제 적용 (데이터스케쳐스)

웹빌더가 만든 웹사이트에서 Cloudflare CDN은 페이지·이미지·정적 파일을 사용자와 가까운 edge에서 서빙하는 역할이에요. 방문자가 서울이든 뉴욕이든 자신과 가까운 데이터 센터에서 콘텐츠를 받으니, 원본 서버까지의 먼 왕복이 줄어 로딩이 빨라져요.

운영에서 가장 신경 쓸 부분은 배포 시 캐시 무효화(Purge) 예요. 콘텐츠가 바뀌었는데 캐시가 옛 버전을 들고 있으면 새 콘텐츠가 반영되지 않으니, 배포 파이프라인에서 변경된 경로의 캐시를 퍼지해 사용자가 새 콘텐츠를 보도록 해요. 또 동적 콘텐츠를 과하게 캐시하면 낡은 데이터가 보일 수 있으니, Cache Rules로 캐시할 것과 하지 않을 것을 구분해요. 도메인 연결은 DNS, 악성 트래픽 차단은 WAF에서 이어져요.

더 알아보기