CDN 동작 원리 — 엣지 서버, 캐시 히트, Anycast
CDN은 전 세계에 분산된 서버에 콘텐츠를 캐싱하여 사용자에게 가장 가까운 서버에서 응답합니다. 웹 성능의 핵심 인프라입니다.
CDN이란
CDN(Content Delivery Network) 은 콘텐츠를 사용자에게 지리적으로 가까운 엣지 서버 에서 제공하는 분산 네트워크입니다.
CDN 없이:
한국 사용자 → (태평양 횡단) → 미국 원본 서버 (200ms)
CDN 있을 때:
한국 사용자 → 한국 엣지 서버 (캐시 히트) → 즉시 응답 (5ms)
→ (캐시 미스) → 원본 서버에서 가져와 캐싱
CDN 동작 흐름
1. 사용자가 cdn.example.com/image.png 요청
2. DNS가 가장 가까운 엣지 서버 IP를 반환 (Anycast 또는 GeoDNS)
3. 엣지 서버에서 확인:
캐시 히트 → 즉시 반환 (200 OK)
캐시 미스 → 원본 서버에서 가져옴 → 캐싱 후 반환
4. 캐시 TTL 만료 시 원본에 재검증 (If-None-Match)
Anycast
동일한 IP 주소를 여러 서버에 할당 하고, BGP 라우팅으로 가장 가까운 서버로 트래픽을 전달합니다.
동일한 IP: 1.2.3.4
서울 엣지 서버: 1.2.3.4
도쿄 엣지 서버: 1.2.3.4
LA 엣지 서버: 1.2.3.4
한국 사용자 → BGP 경로 계산 → 서울 서버로 라우팅
미국 사용자 → BGP 경로 계산 → LA 서버로 라우팅
CDN 캐시 전략
| 전략 | 설명 |
|---|---|
| Pull | 첫 요청 시 원본에서 가져와 캐싱 (대부분의 CDN) |
| Push | 콘텐츠를 미리 엣지에 배포 (동영상 등 대용량) |
| TTL | Cache-Control 헤더로 캐시 유효 시간 설정 |
| 퍼지 | 캐시를 수동으로 무효화 (배포 시) |
핵심 포인트
- CDN이 빠른 이유: 지리적 근접성 + 캐싱 + Anycast
- 동적 콘텐츠와 CDN: API 응답도 엣지에서 캐싱 가능 (Cache-Control 설정)
- CDN 장애 대응: 원본 서버 직접 접근으로 폴백
정리
CDN은 정적 자원 전송의 필수 인프라이며, Anycast와 GeoDNS로 사용자에게 가장 가까운 서버를 자동 선택합니다. Cloudflare, CloudFront, Akamai 등이 대표적입니다.