문서 기준: 2026년 8월
웹 서비스의 사용자는 전 세계에 분산되어 있지만, 오리진 서버는 특정 리전에 있습니다. 멀리 떨어진 리전의 사용자에게는 물리적 거리만큼 지연이 발생합니다.
CDN (Content Delivery Network)은 전 세계 엣지 로케이션에 콘텐츠를 캐싱하여, 사용자에게 가장 가까운 위치에서 빠르게 전달하는 서비스입니다. 오리진 서버까지 가지 않고 엣지에서 응답하므로 지연 시간이 크게 줄어들고, 오리진 부하도 감소합니다.
sequenceDiagram
participant User as 사용자
participant Edge as CDN 엣지
participant Origin as 오리진 서버
User->>Edge: 요청
alt 캐시 히트
Edge-->>User: 즉시 응답 (빠름)
else 캐시 미스
Edge->>Origin: 원본 요청
Origin-->>Edge: 응답 + 캐싱
Edge-->>User: 응답
end
개념
설명
오리진 (Origin)
원본 콘텐츠가 있는 서버. 객체 스토리지, VM, 로드밸런서 등
엣지 (Edge/PoP)
사용자에게 가까운 캐시 서버. 전 세계 수백 개 지점
캐시 히트/미스
엣지에 콘텐츠가 있으면 히트(빠름), 없으면 미스(오리진에서 가져옴)
TTL (Time To Live)
캐시 유효 시간. 만료되면 오리진에서 다시 가져옴
캐시 무효화 (Invalidation)
TTL 만료 전에 강제로 캐시를 삭제. 전 세계 전파에 시간 소요
클라우드 CDN은 HTTPS를 기본 권장 하며, 무료 TLS 인증서가 통합 제공되어 별도 인증서 구매 없이 SSL/TLS를 적용할 수 있습니다. HTTP도 지원하지만 보안상 HTTPS 전용 구성을 권장합니다.
CDN은 정적 파일뿐 아니라 다양한 워크로드에 적용할 수 있습니다.
대상
설명
정적 파일
이미지, CSS, JS. 가장 기본적인 CDN 활용
API 응답
변경이 드문 API 응답을 엣지에서 캐싱. 오리진 부하 감소
동영상 스트리밍
MP4 다운로드, HLS/DASH 적응형 스트리밍. 대용량 전송에 필수
동적 콘텐츠 / API
캐싱은 안 되지만, 엣지에서 TCP/TLS 종료 + 벤더 백본 경유로 지연 감소. 오리진 커넥션 재사용으로 핸드셰이크 비용 절감
주의
REST API에 CDN을 태울 것인가? 두 가지 이점이 있습니다:
캐싱 가능한 API (공개 데이터, 상품 목록, 환율) — 짧은 TTL(5–60초)로 오리진 부하 감소
캐싱 불가능한 API (인증 기반, 개인화) — 캐싱 없이도 엣지 TCP/TLS 종료 + 백본 경로 최적화로 지연 감소
모든 주요 CDN(CloudFront, Front Door, Cloud CDN)이 동적 콘텐츠 가속을 지원합니다. Cache-Control: no-store로 캐싱을 비활성화해도 네트워크 경로 최적화 이점은 유지됩니다.
계층
위치
제어 방법
브라우저 캐시
사용자 디바이스
Cache-Control, ETag 헤더
CDN 엣지 캐시
벤더 엣지 로케이션
TTL 정책, 캐시 키 설정
오리진 캐시
오리진 서버 앞단 (선택)
리버스 프록시, 오리진 쉴드
전략
방법
TTL 설정
해시 파일명
app.a3f2c1.js (빌드 시 해시 삽입)
매우 길게 (1년). 무효화 불필요
버전 쿼리
app.js?v=2
중간. 일부 CDN에서 캐시 키로 인식 안 할 수 있음
짧은 TTL
동일 URL, TTL 5분
API 응답 등 자주 바뀌는 콘텐츠에 적합
무효화
수동 Invalidation 요청
긴급 수정 시에만. 비용 발생 가능
패턴
설명
CDN 효과
단일 리전 오리진 + 글로벌 사용자
DB/앱이 한 리전에만 있고 사용자는 전 세계
엣지 캐싱으로 오리진 리전까지의 지연 제거
1:다수 배포
동일 콘텐츠를 수만–수백만 사용자에게 전달
오리진 부하를 엣지로 분산. 오리진 1대로도 대규모 서빙 가능
트래픽 스파이크 흡수
이벤트/뉴스 등 갑작스러운 트래픽 급증
엣지가 대부분 흡수, 오리진은 평소 부하 유지
정적 사이트 호스팅
SPA/정적 사이트를 객체 스토리지에서 서빙
CDN + 객체 스토리지만으로 서버 없이 운영
CDN을 통해 배포하면서도 접근을 제한해야 하는 경우 (유료 콘텐츠, 인증된 사용자만 접근):
방법
설명
AWS
Azure
Google Cloud
Signed URL
시간 제한이 있는 서명된 URL
CloudFront Signed URL
Front Door Private Link
Cloud CDN Signed URL
Signed Cookie
쿠키 기반 인증. 여러 파일 동시 적용
CloudFront Signed Cookie
—
—
Token 인증
엣지에서 토큰 검증
CloudFront Functions
Front Door Rules Engine
—
지역 제한
특정 국가/지역 허용 또는 차단
지원
지원
지원
WAF 연동
IP 제한, Rate Limiting, Bot 차단
CloudFront + WAF
Front Door + WAF
Cloud Armor
벤더
제품
비고
AWS
CloudFront
400+ 엣지 로케이션. Origin Shield(오리진 보호 캐시 계층)
Azure
Azure CDN / Front Door
Front Door에 CDN + WAF + 글로벌 LB 통합
Google Cloud
Cloud CDN
Cloud Load Balancing과 통합. 캐시 무효화 빠름
OCI
OCI CDN (Akamai/Fastly 파트너십)
글로벌 CDN은 파트너 연동. Edge Services로 WAF/DDoS 통합
AWS CloudFront — 엣지 로케이션 수가 많고, Lambda@Edge/CloudFront Functions로 엣지에서 코드를 실행할 수 있습니다. Origin Shield로 오리진 부하를 추가로 줄일 수 있습니다.
Azure Front Door — CDN, 글로벌 로드밸런서, WAF를 하나의 서비스로 통합합니다. 별도 CDN 설정 없이 Front Door 하나로 전체 트래픽을 관리할 수 있습니다.
Google Cloud Cloud CDN — Cloud Load Balancing에 체크박스 하나로 활성화할 수 있어 설정이 간단합니다. 캐시 무효화가 수 초 내에 전파됩니다.
OCI — 자체 CDN 서비스 대신 Akamai, Fastly 등 전문 CDN과의 파트너십을 통해 글로벌 배포를 지원합니다. Edge Services에서 WAF와 DDoS 보호를 제공합니다.
CDN은 콘텐츠를 캐싱 하여 빠르게 전달하지만, 캐싱이 불가능한 워크로드(게임 서버, IoT, 실시간 API)에는 네트워크 가속기 가 필요합니다. 가속기는 캐싱 없이 TCP/TLS 연결을 엣지에서 종료하고 벤더 백본 네트워크로 오리진까지 전달하여 지연을 줄입니다.
구분
CDN
네트워크 가속기
목적
콘텐츠 캐싱 + 엣지 서빙
TCP/TLS 연결 경로 최적화
캐싱
지원
—
대상 프로토콜
HTTP/HTTPS
TCP/UDP 모든 프로토콜
동작
캐시 히트 시 오리진 불필요
항상 오리진으로 전달, 경로만 최적화
사용 예
정적 파일, 스트리밍, API 캐싱
게임 서버, IoT, 글로벌 API (캐싱 불가)
벤더
서비스
가속 대상
제약
AWS
Global Accelerator
TCP/UDP
L4만. HTTP 라우팅 필요 시 ALB와 조합
Azure
Front Door
HTTP + TCP
L7 통합. TCP 프록시는 Premium 티어
Google Cloud
Cloud LB (Premium Tier)
HTTP/TCP/UDP
기본 글로벌. Standard Tier는 리전 한정
요구사항
선택
HTTP 콘텐츠 캐싱이 주 목적
CDN
TCP/UDP 앱의 글로벌 지연 감소 (게임, IoT)
글로벌 가속기
HTTP + 글로벌 분산 + WAF 통합
Azure Front Door / CloudFront + GA 조합
고정 Anycast IP 필요 (IP 화이트리스트)
Global Accelerator
CDN 엣지에서 코드를 실행하여 요청/응답을 변환하거나, 간단한 로직을 오리진 없이 처리할 수 있습니다.
벤더
제품
비고
AWS
CloudFront Functions
경량 (요청/응답 헤더 변환, 리다이렉트). 밀리초 이내
AWS
Lambda@Edge
풀 기능 (오리진 요청/응답 변환, 인증). 수 밀리초
Azure
Front Door Rules Engine
규칙 기반 라우팅/변환
Google Cloud
Cloud CDN + Cloud Functions
별도 조합
index.html에 긴 TTL을 설정 — 정적 파일 해시가 바뀌어도 사용자가 구 버전 HTML을 계속 받습니다. index.html은 짧은 TTL(수 분), 나머지 정적 파일은 해시 파일명 + 긴 TTL로 운영하세요.
캐시 무효화(Invalidation)를 배포 루틴으로 사용 — 전 세계 전파에 시간이 걸리고 비용이 발생합니다. 해시 파일명 전략이 정답입니다.
인증 필요한 API에 CDN 캐싱을 적용 — 다른 사용자의 개인 데이터가 캐시에서 반환될 수 있습니다. Cache-Control: no-store를 명시하거나 캐시 키에 인증 토큰을 포함하세요.