CDN(Content Delivery Network)은 정적 리소스(이미지·JS·CSS·동영상)를 사용자와 가장 가까운 엣지 서버에서 서빙해서 지연시간을 최소화하는 분산 캐싱 시스템이다.

작동 흐름(실제 트래픽 기준)

1. 클라이언트가 resource.example.com/image.png 요청


2. DNS가 CDN 엣지 서버 IP로 라우팅 (Geo-DNS)


3. 엣지 서버에 캐시 HIT → 바로 응답
❗ 속도 10~100ms급


4. 캐시 MISS → 원본(origin) 서버로 요청 → 캐싱 후 사용자에게 전달


5. TTL(캐시 만료) 또는 purge 정책 기반으로 캐시가 갱신됨



즉, CDN = DNS 기반 지리적 라우팅 + Cache Layer + Origin Shield 구조.


---

✅ 대표적인 CDN 인프라 (실무에서 가장 많이 씀)

1) Cloudflare CDN

글로벌 PoP(엣지) 가장 많음

무료 플랜도 강력

DDoS 방어, Bot 보호, Firewall Rule, Worker 연계

이미지 최적화(Polish), WebP 변환, Cache reserve 등 고급 기능


2) AWS CloudFront

AWS와 연동 최강

S3, ALB, API Gateway, Lambda@Edge와 tightly integrated

Origin Shield 기능 강력 → 오리진 부하 급감


3) Akamai

엔터프라이즈급 시장 점유율 1위

통신사·공공기관·대용량 스트리밍에서 많이 사용

속도와 SLA 최고, 가격도 최고


4) Fastly

API/동적 캐싱 강점

VCL 기반의 고도로 커스텀 가능한 캐싱 로직

GitHub, Stripe, Slack 등이 사용


5) KT CDN, SKB CDN

국내 통신사 기반 CDN

정부기관·공공 사이트에서 많이 씀 (망 라우팅 최적화)



---

✅ CDN 성능에 도움이 되는 HTTP 헤더

정적 파일 캐싱 성능 = HTTP 캐시 헤더 세팅이 절반을 먹고 들어간다.

1) Cache-Control

가장 중요한 헤더.

예시: 강력 캐싱

Cache-Control: public, max-age=31536000, immutable

public: CDN, 브라우저 모두 캐시 허용

max-age: TTL, 초 단위

immutable: 파일 변경 없을 때 최적 (버전 해시 쓸 때 필수)


정적 리소스(js/css/img) → immutable 캐싱이 정석이다.


---

2) ETag

리소스 변경 감지용 "컨텐츠 기반 태그"

CDN은 이걸 이용해 원본 갱신 여부 판단 가능


예시

ETag: "f1a2b3c4"

단점:
파일 변경 체크를 위해 조건부 요청(If-None-Match) 이 발생할 수 있어 원본 부하 증가.
→ 대규모 시스템은 ETag 끄고 Cache-Control 위주로 간다.


---

3) Last-Modified

시간 기반 캐싱 검증
CDN은 "만약 변경 안 됐으면 304 Not Modified" 로 응답 가능.

Last-Modified: Tue, 14 Nov 2024 10:00:00 GMT


---

4) Expires

구 헤더지만 아직도 존재

Cache-Control이 있으면 무시됨.


Expires: Wed, 21 Oct 2025 07:28:00 GMT


---

5) Vary

사용자 특성에 따라 캐시를 분리할 때 사용
예: 모바일/PC 구분

Vary: User-Agent

CDN이 캐시 키를 분기해 충돌 방지.


---

6) CDN-specific 헤더 (중요)

CloudFront

X-Cache: Hit from cloudfront

Cloudflare

CF-Cache-Status: HIT / MISS / EXPIRED / BYPASS

CDN 성능 디버깅할 때 필수.


---

✅ CDN 성능 최적화 기본 전략(백엔드 기준)

1) Hash 기반 파일 네이밍

app.1a2b3c.js
style.9f8e7d.css

→ cache-busting 해결
→ max-age=1년 설정 가능

2) 정적 파일은 Origin 요청 최소화

CloudFront: Origin Shield 사용

Cloudflare: Tiered Cache 사용


3) HTML은 캐싱 짧게, 자원은 길게

HTML → max-age=0, no-cache
JS/CSS/IMG → max-age=1year, immutable

4) HTTP/2 + Brotli + WebP 조합

정적 리소스 응답 사이즈 최소화


---

📌 최종 요약

CDN 원리 = 전세계 엣지 서버에 정적 리소스를 캐싱해서 "사용자와의 물리적 거리"를 줄이는 기술

대표 CDN = Cloudflare, CloudFront, Akamai, Fastly, KT CDN

캐시 관련 헤더 = Cache-Control, ETag, Last-Modified, Expires, Vary
→ CDN HIT률과 응답속도를 결정하는 핵심

LIST

+ Recent posts