CDN은 전 세계에 분산된 서버에 콘텐츠를 캐싱하여 사용자에게 가장 가까운 서버에서 응답합니다. 웹 성능의 핵심 인프라입니다.


CDN이란

CDN(Content Delivery Network) 은 콘텐츠를 사용자에게 지리적으로 가까운 엣지 서버 에서 제공하는 분산 네트워크입니다.

CDN 동작 흐름

PLAINTEXT
CDN 없이:
한국 사용자 → (태평양 횡단) → 미국 원본 서버  (200ms)

CDN 있을 때:
한국 사용자 → 한국 엣지 서버 (캐시 히트) → 즉시 응답  (5ms)
           → (캐시 미스) → 원본 서버에서 가져와 캐싱

CDN 동작 흐름

PLAINTEXT
1. 사용자가 cdn.example.com/image.png 요청

2. DNS가 가장 가까운 엣지 서버 IP를 반환 (Anycast 또는 GeoDNS)

3. 엣지 서버에서 확인:
   캐시 히트 → 즉시 반환 (200 OK)
   캐시 미스 → 원본 서버에서 가져옴 → 캐싱 후 반환

4. 캐시 TTL 만료 시 원본에 재검증 (If-None-Match)

Anycast

동일한 IP 주소를 여러 서버에 할당 하고, BGP 라우팅으로 가장 가까운 서버로 트래픽을 전달합니다.

PLAINTEXT
동일한 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콘텐츠를 미리 엣지에 배포 (동영상 등 대용량)
TTLCache-Control 헤더로 캐시 유효 시간 설정
퍼지캐시를 수동으로 무효화 (배포 시)

핵심 포인트

  • CDN이 빠른 이유: 지리적 근접성 + 캐싱 + Anycast
  • 동적 콘텐츠와 CDN: API 응답도 엣지에서 캐싱 가능 (Cache-Control 설정)
  • CDN 장애 대응: 원본 서버 직접 접근으로 폴백

정리

CDN은 정적 자원 전송의 필수 인프라이며, Anycast와 GeoDNS로 사용자에게 가장 가까운 서버를 자동 선택합니다. Cloudflare, CloudFront, Akamai 등이 대표적입니다.

댓글 로딩 중...