Fastly_CDN/CDN_설정

패스틀리(Fastly), 캐싱 베스트 프랙티스 정리

CDN_SKY 2025. 10. 28. 17:10

웹사이트 성능을 최적화하려면 “캐싱”이 핵심입니다. 특히 Fastly 같은 고성능 CDN을 활용할 때, 제대로 된 캐싱 전략을 세우면 응답 속도를 높이고, 오리진 서버 부하를 줄이며, 사용자 경험을 크게 개선할 수 있습니다. 이번 포스팅에서는 Fastly에서 제안하는 캐싱 베스트 프랙티스를 핵심만 정리해 공유드립니다.

 

 

1. 가능한 많은 콘텐츠를 캐싱하세요

  • 오리진 요청을 줄이기 위해 HTML, JSON, API 응답 등도 캐싱을 고려해보세요.
  • 특히 로그인하지 않은 유저에게 제공되는 정적 콘텐츠는 캐싱 대상으로 적극 고려해야 합니다.
Tip: “no-cache”가 아니라 “private”나 “max-age”를 적절히 활용하세요.

 

 

2. 캐시 유효 시간(TTL)은 명확하게 지정하세요

  • TTL(Time To Live)은 콘텐츠가 캐시에 얼마나 오래 저장될지를 결정합니다.
  • 적절한 TTL 설정으로 성능과 콘텐츠 신선도 사이의 균형을 맞출 수 있습니다.
Cache-Control: public, max-age=3600

 

  • 주기적으로 업데이트되는 콘텐츠는 짧은 TTL, 거의 변하지 않는 콘텐츠는 긴 TTL로 설정하세요.


3. 
Cache-Control 과  Surrogate-Control 헤더 활용

  • Cache-Control은 브라우저 및 중간 CDN에 영향을 줍니다.
  • Fastly 전용 TTL을 지정하려면 Surrogate-Control을 사용하세요.
Cache-Control: private, max-age=0
Surrogate-Control: public, max-age=86400

 

4. 캐싱 키 조절을 통해 불필요한 캐시 분산 방지

  • 기본적으로 Fastly는 Host + URL path를 캐싱 키로 사용합니다.
  • 필요 시 Vary 헤더, 쿼리 파라미터, 쿠키 등을 조정해 키를 세분화 또는 단순화할 수 있습니다.
예: 쿼리 파라미터가 무의미한 경우, 이를 무시하도록 설정

 

 

5. 쿠키 주의: 불필요한 쿠키가 캐싱을 방해할 수 있음

  • Fastly는 기본적으로 Set-Cookie가 있는 응답을 캐싱하지 않습니다.
  • 만약 쿠키가 필수라면, VCL 또는 Compute@Edge 코드로 캐시 정책을 커스터마이징하세요.

 

 

6. 조건부 요청과 유효성 검사 활용

  • ETag, Last-Modified, If-None-Match 등을 사용해 조건부 캐싱이 가능
  • 캐시된 객체가 만료되었을 때, 변경되지 않았다면 304 Not Modified 응답으로 불필요한 데이터 전송을 방지합니다.

 

 

7. purge는 효율적으로: 콘텐츠 업데이트 시에는 ‘soft purge’

  • Fastly는 Surrogate-Key를 사용한 그룹 단위 purge를 지원
  • soft purge를 이용하면 캐시가 바로 사라지지 않고, 새로운 요청 시 백엔드에서 갱신


8. 오리진의 압축 응답을 활용

  • 오리진에서 gzip, brotli 압축 응답을 제공하고, Fastly에서 그대로 전달
  • 압축된 응답도 캐싱되므로, 네트워크 트래픽 절감 가능

9. Stale 콘텐츠를 활용해 안정성 확보

  • stale-while-revalidate, stale-if-error 설정을 통해, 백엔드 장애나 지연 상황에서도 캐시된 콘텐츠를 제공 가능
Cache-Control: max-age=600, stale-while-revalidate=30, stale-if-error=86400

→ 캐시 만료 후에도 최대 하루 동안은 오류 상황 시 캐시 제공 가능

 

10. 캐싱 정책은 테스트와 모니터링이 중요

  • Fastly의 Real-time Log, Domain Inspector, Origin Inspector 등을 통해 캐시 동작을 점검
  • X-Cache, Age, X-Served-By 등의 헤더로 응답이 캐시에서 왔는지 확인 가능

 


 

마무리: 캐싱은 전략이다

 

단순히 TTL을 설정하고 끝나는 게 아니라, 어떤 콘텐츠를 얼마 동안, 어떤 조건 하에 캐시할지를 전략적으로 설계하는 것이 중요합니다. Fastly는 강력한 캐시 설정 기능과 유연한 제어가 가능하므로, 위의 가이드라인을 참고해 자신의 서비스에 맞는 최적의 캐싱 전략을 설계해보세요.

 


 

참고 링크

해당 포스팅은 아래의 Fastly 의 공식문서를 참고해서 만들었습니다. 흥미 있으신 분들은 아래 Fastly의 공식 문서도 확인해 주세요.

 

Fastly 공식 문서: Caching Best Practices