CDN 캐시 적중률·오리진 절감 계산기 쉽게 이해하기 — 개념과 원리
콘텐츠 전송 네트워크(CDN)는 사용자와 가까운 엣지 서버에 파일 사본을 보관합니다. 각 요청은 엣지 캐시에서 바로 응답하는 적중(hit)이거나, 원본 서버(오리진)에서 가져와야 하는 실패(miss)입니다. 캐시 적중률은 CDN이 오리진을 얼마나 잘 보호하는지를 나타내며, 오리진 대역폭 비용과 페이지 속도를 함께 좌우합니다. 이 계산기는 적중률과 오리진까지 도달하는 트래픽 추정치를 구합니다.
계산 방법
- 적중률(%) = 적중 수 ÷ (적중 수 + 실패 수) × 100
- 오리진 트래픽(GB) = 전체 트래픽 × 실패 수 ÷ (적중 수 + 실패 수)
- 오리진 절감률은 적중률과 같으며, 오리진이 받지 않은 요청의 비율입니다.
적중·실패 수는 같은 기간의 CDN 로그나 분석 화면에서 가져온 요청 수이고, 전체 트래픽은 그 기간에 사용자에게 전달된 데이터 양입니다.
원리
캐시가 효과를 내는 것은 인기가 고르게 퍼져 있지 않기 때문입니다. 로고, 스크립트, 인기 페이지와 영상처럼 적은 수의 객체가 요청의 대부분을 차지합니다. 객체가 엣지에 저장되고 HTTP 캐싱 규칙(Cache-Control max-age, Expires, 검증자)상 아직 유효하면 반복 요청은 현장에서 처리됩니다. 처음 들어온 요청, 만료된 객체, 캐시할 수 없는 응답만 오리진으로 갑니다. 오리진 트래픽 추정은 실패한 요청의 평균 크기가 적중한 요청과 같다고 가정해 요청 비율을 바이트 비율로 그대로 씁니다. 큰 파일과 작은 파일의 캐시 동작이 다르면 바이트 적중률은 요청 적중률과 꽤 달라질 수 있다는 점을 기억하십시오.
예제 풀이
- 입력값은 적중 950,000건, 실패 50,000건, 전체 트래픽 10,000 GB입니다.
- 전체 요청은 950,000 + 50,000 = 1,000,000건입니다.
- 적중률은 950,000 ÷ 1,000,000 × 100 = 95%입니다.
- 실패 비율은 50,000 ÷ 1,000,000 = 0.05입니다.
- 오리진 트래픽은 10,000 × 0.05 = 500 GB입니다.
| 캐시 적중 수 | 적중률 |
|---|---|
| 237,500 | 82.61% |
| 475,000 | 90.48% |
| 712,500 | 93.44% |
| 950,000 | 95% |
| 1.19e+06 | 95.96% |
| 1.42e+06 | 96.61% |
| 1.9e+06 | 97.44% |
결과 해석
적중률은 높을수록 좋습니다. 캐시 수명이 긴 정적 파일은 매우 높은 적중률을 보이는 경우가 많고, 개인화된 HTML, 쿼리 문자열 변형이 많은 페이지, 짧은 TTL은 훨씬 낮습니다. 상위 구간의 작은 차이가 큰 효과를 냅니다. 95%에서 99%로 올리면 오리진 요청이 5%에서 1%로 줄어 부하가 5분의 1이 됩니다. 전체 수치 하나보다 콘텐츠 유형별, 지역별로 나누어 살펴보는 것이 좋습니다.
흔한 실수
- 한 도구의 요청 적중률과 다른 도구의 바이트 적중률을 그대로 비교하는 경우
- API나 로그인 페이지처럼 캐시할 수 없는 요청까지 넣고 높은 적중률을 기대하는 경우
- 무작위 쿼리 문자열이나 쿠키가 캐시 키에 들어가 캐시가 계속 무효화되는 경우
자주 묻는 질문
적중률은 어느 정도면 좋은가요?
콘텐츠 구성에 따라 다릅니다. 정적 파일 위주라면 90% 이상이 흔하고, 동적 사이트는 정적 자산의 적중률을 높이는 것이 현실적인 목표입니다.
적중률을 높이려면 어떻게 하나요?
버전이 붙은 파일에 긴 Cache-Control 수명을 주고, 불필요한 쿼리 문자열과 쿠키를 캐시 키에서 빼며, 오리진 실드 계층을 검토합니다.
재검증 요청도 적중으로 보나요?
업체마다 다릅니다. 304 Not Modified로 끝나는 조건부 요청도 오리진에 접속하지만 전송량은 작습니다.
출처: IETF RFC 9111, HTTP Caching