CS

CDN(Content Delivery Network)이란?

감자b 2025. 6. 5. 15:07

우리가 매일같이 사용하는 웹 사이트나 앱은 사실상 전 세계 어디서든 접근 가능해야 한다.

그런데 모든 요청이 본 서버(Origin Server)까지 가서 처리된다면 속도도 느려지고 서버 과부하도 일어나게 되는데, 이런 문제를 해결해주는 게 바로 CDN(Content Delivery Network)이다.

 

CDN은 말 그대로, 콘텐츠를 전달하는 데 특화된 네트워크로, 본 서버와 사용자 사이에 있는 전 세계 각지의 서버(엣지 서버)에 데이터를 캐싱해두고 중간에서 데이터를 대신 전달해주는 역할을 한다.

이 때 전달하려는 데이터가 정적인지, 동적인지에 따라 전달 방식이 달라진다.

 

정적 캐싱 vs. 동적 캐싱

  • 정적 캐싱: 이미지, JS 파일처럼 미리 예측 가능한 콘텐츠를 각 엣지 서버에 미리 저장
  • 동적 캐싱: 사용자가 요청할 때마다 엣지 서버가 콘텐츠가 있는지 확인
    • 있으면 Cache HIT로 바로 사용자에게 전달.
    • 없으면 Cache MISS로 본 서버에서 받아와 전달합니다.

또한 콘텐츠는 무한정 캐싱하고 있는 것이 아니라 캐시 데이터가 얼마나 오래 저장될지 결정하는 값인 TTL(Time-To-Live)을 통해 설정한다.

 

CDN 동작 과정

1. DNS 서버는 사용자의 위치, 트래픽 상황, 서버 성능 등을 기준으로 가장 가까운 엣지 서버의 IP 주소를 반환한다.

2. 엣지 서버는 요청된 콘텐츠가 캐싱되어 있는지 확인한다.

3. 연결된 엣지 서버는 요청한 콘텐츠가 이미 캐시되어 있다면 즉시 응답(Cache HIT)한다. 만약 콘텐츠가 없다면 원본 서버에서 가져와 캐시에 저장한 후 사용자에게 응답(Cache MISS)한다.

 

따라서 사용자는 CDN을 통해 빠르고 안정적인 콘텐츠를 제공받을 수 있다.

CDN 과정

 

대표적인 CDN 업체로는 Cloudflare, Akamai, AWS CloudFront, Azure CDN 등이 있다.
CDN을 사용하면 본 서버로의 직접 요청을 크게 줄여 대역폭을 절약하고, 가용성과 안정성을 높일 수 있다.

또한, 디도스(DDoS) 공격에도 효과적으로 대응하며 HTTPS 기반의 콘텐츠 암호화에도 기여한다.
이러한 이유로 CDN은 빠르고 안전한 콘텐츠 전송을 위한 필수적인 인프라로 자리 잡고 있다.

 

대역폭 : 주어진 시간 동안 네트워크를 통해 전송할 수 있는 데이터의 최대량

전송 속도 : 데이터가 출발지에서 목적지까지 물리적으로 이동하는 속도