Cloudflare 내 서비스의 캐시는 잘 동작하는 걸까?

2024. 3. 30. 00:30Trouble Shooting

728x90

Cloudflare 를 사용하는 많은 사용자들이 생각보다 놓치고 있는 부분입니다.

 

Cf-Cache-Status 는 기본적으로 HIT 가 설정되지 않는 이상 대부분 캐싱이 적중하지 않았다는 의미입니다.

대표적으로 DYNAMIC 은 Cloudflare가 판단할때 캐싱할 가치가 없다고 판단한건데 대표적인 이유는 공식문서에서 기재되어 있습니다.

 

 

 

위 이미지 및 링크에 명시된 확장자의 경우 별도의 설정 없이도 기본적으로 캐싱에 반드시 적중합니다.

하지만 첫줄 내용을 읽어보면 HTML은 기본적으로 cache 하지 않는다고 합니다.

 

이유는 동적 컨텐츠가 많기 때문이겠죠?

 

 

이걸 해결하기 위해서는 cloudflare 에 등록한 도메인별 캐시 설정이 필요합니다.

 

 

 

 

 

 

 

캐시 룰을 위와 같이 설정합니다.

 

캐시 적합성 -> 캐시에 적합

에지 TTL -> 캐시 제어 헤더가 있는 경우 사용하고, 없는 경우 기본 Cloudflare 캐싱 동작을 사용합니다.

 

에지 TTL의 2번째를 선택하는 이유는 코드로 따지면 override 가 가능해진다는 의미입니다.

사용자가 정의한 cache-control / cdn-cache-control / cloudflare-cdn-cache-control 헤더를 선언해서 사용자가 정의한걸 먼저 따르게 되는건데 없을땐 기본 동작으로 할당하는거죠.

 

3번째의 경우는 코드나 서버 설정의 별도 처리 없이 cloudflare 프록시내에서 강제로 설정하게 됩니다.

 

 

 

 

이러한 Edge Cache를 설정하지 않은 경우 cloudflare의 pages 및 worker 등에서 응답이 굉장히 느립니다.

특히나 한국의 경우 Enterprise 요금제를 사용하지 않을 경우 ICN(인천) 리전의 연산 및 응답을 받지 못하기 때문에 AWS 같은 서비스 대비 가격 말고는 이점이 없는 수준이 되는거죠.

 

하지만 Edge TTL을 사용한다면 Cloudfront 급의 속도까진 아니지만 그와 유사한 것을 무료로 사용할 수 있게됩니다.

 

728x90