CDN(Content Delivery Network)

hi2li·2026년 5월 10일

network

목록 보기
7/17
  • 사용자에게 콘텐츠를 더 빠르고 안정적으로 전달하기 위해 전 세계 여러 서버에 콘텐츠를 분산 저장하는 시스템

CDN이 필요한 이유

예를 들어 미국에 원본 서버가 있다고 가정해보자. 한국 사용자가 미국 서버에 저장된 이미지를 요청하면, 데이터는 태평양을 건너 사용자에게 전달되어야 한다. 이 과정에서 네트워크 구간이 길어지고 응답 시간이 증가하게 된다.

이미지, 동영상, 게임패치파일, 자바스크립트 파일 등등 용량이 클수록 원본 서버에서 직접 다운로드 하려면 거리에 따라 속도 저하 문제나 또는 서버에 부하가 집중될 수 있다. CDN은 사용자와 가까운 지역에 콘텐츠를 미리 저장해두고 전달함으로써 이러한 문제를 해결한다.

CDN의 기본 동작 방식

CDN은 전 세계 여러 지역에 서버를 배치한다. 이를 Edge Server 또는 CDN 서버라고 부른다.

예를 들어

미국
한국
일본
싱가포르
유럽

이런 국가마다 CDN서버 (엣지서버)를 둘 수 있다.

한국 사용자가 웹사이트에 접속하면 CDN은 사용자와 가장 가까운 엣지서버를 선택한다.

이후 해당 CDN서버에 파일이 이미 저장되어 있다면 , 원본 서버까지 가지 않고 바로 사용자에게 전달한다. (캐싱)

Cache Hit와 Cache Miss

CDN에서는 캐시(Cache) 개념이 매우 중요하다.

CDN 서버 안에 이미 요청한 파일이 존재하는 경우를 Cache Hit라고 한다. 이 경우 CDN 서버가 즉시 사용자에게 파일을 전달하기 때문에 속도가 매우 빠르다.

반면 CDN 서버에 파일이 없는 경우를 Cache Miss라고 한다. 이 경우 CDN 서버는 원본 서버로부터 파일을 가져온 뒤 사용자에게 전달한다. 이후 해당 파일은 CDN 서버에 저장되며, 다음 요청부터는 빠르게 제공할 수 있게 된다.

즉 CDN은 단순 중계 서버가 아니라, 콘텐츠를 저장하고 재사용하는 캐시 서버 역할도 수행한다.

CDN의 핵심 목적

CDN의 핵심 목적은 크게 세 가지이다.

첫 번째는 속도 향상이다. 사용자는 가까운 지역의 CDN 서버로부터 콘텐츠를 받기 때문에 응답 속도가 빨라진다.

두 번째는 원본 서버 부하 감소이다. 반복적으로 요청되는 이미지나 정적 파일을 CDN이 대신 제공하므로 원본 서버의 트래픽 부담이 줄어든다.

세 번째는 글로벌 사용자 대응이다. 여러 국가의 사용자가 동시에 접속하더라도 각 지역 CDN 서버가 요청을 분산 처리할 수 있다.

즉 CDN은 성능과 확장성을 동시에 해결하기 위한 구조라고 볼 수 있다.

AWS CloudFront와의 관계

Amazon CloudFront 는 AWS의 CDN 서비스이다.

예를 들어 AWS S3에 이미지를 저장한 뒤 CloudFront를 연결하면, CloudFront가 전 세계 Edge 서버에 해당 이미지를 캐싱한다. 이후 사용자는 가장 가까운 지역의 CDN 서버를 통해 이미지를 다운로드하게 된다.

→ cloud front는 "전 세계 Edge 서버에 캐싱해주는 CDN 계층”

cloud front에서는 원본서버를 Origin이라고 표현하는데 Origin이 될 수 있는 것들은 다양하다.

  • S3
  • EC2
  • ALB
  • Nginx 서버
  • Apache 서버
  • 외부 HTTP 서버

CDN이 사용되는 대표적인 사례

1. 이미지 및 정적 파일 제공

대부분의 웹사이트는 CDN을 사용해 이미지와 CSS, JavaScript 파일을 제공한다.

예를 들어 쇼핑몰 사이트에서 상품 이미지가 수천 개 존재한다고 가정해보자. 사용자가 접속할 때마다 모든 이미지를 원본 서버에서 직접 내려보내면 서버 부하가 매우 커질 수 있다.

CDN을 사용하면 이미지가 각 지역 CDN 서버에 캐싱되므로 사용자는 가까운 서버에서 빠르게 이미지를 다운로드할 수 있다. 따라서 페이지 로딩 속도가 빨라지고 원본 서버 부하도 감소한다.

2. 동영상 스트리밍 서비스

Netflix 나 YouTube 같은 동영상 플랫폼은 CDN을 매우 적극적으로 사용한다.

동영상은 데이터 용량이 매우 크기 때문에 모든 사용자가 중앙 서버에 직접 접근하면 네트워크 비용과 서버 부하가 폭발적으로 증가할 수 있다.

그래서 CDN 서버를 여러 지역에 배치하고, 인기 있는 영상을 각 지역 서버에 미리 저장해둔다. 사용자는 가장 가까운 지역의 CDN 서버로부터 영상을 스트리밍 받게 된다.

이 구조 덕분에:

  • 영상 버퍼링 감소
  • 고화질 스트리밍 가능
  • 글로벌 동시 접속 처리

가 가능해진다.

3. 게임 패치 및 대용량 다운로드

게임 회사들도 CDN을 매우 많이 사용한다.

예를 들어 대형 게임 업데이트가 배포된다고 가정해보자. 수백만 명의 사용자가 동시에 수십 GB 크기의 패치 파일을 다운로드하면 원본 서버만으로는 감당하기 어렵다.

그래서 게임 회사들은 CDN을 통해 패치 파일을 여러 지역 서버에 미리 배포한다. 사용자는 가까운 CDN 서버에서 패치 파일을 다운로드하게 된다.

이 방식은:

  • 다운로드 속도 향상
  • 서버 트래픽 분산
  • 글로벌 동시 배포

를 가능하게 만든다.

4. DDoS 방어와 보안 기능

최근 CDN은 단순 캐시 기능만 제공하는 것이 아니라 보안 기능도 함께 제공한다.

대표적으로 Cloudflare 같은 서비스는 CDN 기능과 함께 아래와 같은 기능들도 제공한다.

  • DDoS 방어
  • WAF(Web Application Firewall)
  • Bot 차단
  • Rate Limiting

즉 CDN은 단순 속도 향상 시스템이 아니라, 트래픽 보호 및 보안 인프라 역할까지 수행하는 방향으로 발전하고 있다.

profile
Easy come , Easy go

0개의 댓글