개발/이미지 최적화

CDN (Content Delivery Network) 이해하기

dev_jiwonpark 2025. 10. 15. 23:06

이전 글에서는 개발자 도구를 통해 웹 브라우저 내부에서 어떤 일이 일어나는지를 살펴봤다.
그때 ‘렌더링, 네트워크, 메인 스레드’ 같은 단어들을 보면서

결국 사용자에게 콘텐츠가 얼마나 빠르게 도달하느냐가 핵심이라는 생각이 들었다.

 

이번엔 콘텐츠가 전 세계 사용자에게 어떻게 전달되는지,
그리고 이 과정에서 핵심 역할을 하는 CDN(Content Delivery Network) 개념을 정리해보려고 한다.


 

먼저 CDN 이란 무엇일까?

CDN은 Content Delivery Network의 줄임말로 

데이터 사용량이 많은 애플리케이션의 웹 페이지 로드 속도를 높이는 상호 연결된 서버 네트워크이다. 

 

말그대로 콘텐츠를 더 빠르게 전달하기 위한 네트워크 이다.

사용자가 웹 사이트를 방문할 때 웹사이트 서버 데이터는 사용자의 컴퓨터로 도달하기 위해서 인터넷을 통해 이동해야한다.

그런데 사용자가 해당 서버에 멀리 있다면 동영상 & 이미지 같은 대용량 파일을 로드하는 데 시간이 오래걸리게 된다.

 

그래서 전 세계 여러 지역에 콘텐츠 복사본을 미리 저장해두고, 사용자가 웹사이트를 방문하면 가장 가까운 서버에서 데이터를 전송한다.


예를 들어, 한국에 있는 사용자가 미국 서버에 있는 이미지를 요청한다면 시간이 오래 걸리겠지만,

서울 근처 CDN 서버에 이미지가 캐싱되어 있다면 그 이미지는 훨씬 빠르게 로드된다.

 

즉, "서버와 사용자 사이의 거리" 를 줄이는 기술이 바로 CDN이다. 

 

예를 들어, 넷플릭스에 따끈따끈한 신작이 나왔다고 가정해보았을때

전세계 유저들이 넷플릭스 웹 사이트에 동시에 릴리즈 시간에 맞춰 접근한다면,,!

각 국의 사용자가 넷플릭스 서버와의 거리, 네트워크 경로, 트래픽 혼잡도에 따라서 지연되는 현상을 느낄 수 있다. 

 

CDN은 이런 물리적 & 네트워크적 한계를 완화해줄 수 있다!

아까 위에서 " 상호 연결된 서버 네트워크 " 라고 한 이유를 이제 설명할 수 있다.

사용자 ( 클라이언트 ) 에서 웹 사이트 ( 서버 ) 로 요청을 보내고 응답을 반환하는 이 양방향 통신이 먼 거리 때문에 지연되는 상황에서

CDN은 이런 통신 지연을 줄이기 위해서 웹 사이트 (서버) & 사용자 (클라이언트) 가운데에 중간 서버를 두게 된다.

그래서 클라이언트와 서버 사이에서 상호 연결된 서버 네트워크라고 한 것 이다.

 


그럼 CDN을 사용할때의 주요 이점들을 알아보자!

항목 설명
페이지 로드 시간 단축 페이지 로드가 너무 느리면 트래픽이 감소할 수 있다.
하지만 클라이언트 입장에서 가까운 서버로부터 콘텐츠를 받아오므로 페이지가 빠르게 열리게 된다.
대역폭 비용 절감 캐싱 덕분에 원본 서버가 전송해야하는 데이터의 양이 줄어 웹 사이트 호스팅 비용 감소하게 된다.
가용성 향상 한꺼번에 사용자가 몰려 서버 장애가 발생해도 다른 엣지 서버가 대신 응답 가능할 수 있어
서비스가 중단되지 않도록 할 수 있다.
보안 강화 DDoS 공격은 대량으로 가짜 트래픽을 서버로 전송해 중단 시키려고 하는데
CDN으로 분산 시켜 오리진 서버의 부하를 줄일 수 있다.

 

 

CDN을 통해 전송할 수 있는 인터넷 콘텐츠는 어떤 것들이 있을까?

 

CDN은 정적 콘텐츠와 동적 콘텐츠 두가지 유형의 콘텐츠를 전송할 수 있다.

 

정적 콘텐츠란?

사용자 간에 변경되지 않는 웹 사이트 데이터이다.

예를 들어 고정적으로 보여줘야 되는 이미지, 로고, 글꼴 스타일은 동일하게 유지되고 자주 변경되지 않는다.

정적 콘텐츠는 수정되거나 새로 생성할 필요가 없어 CDN에 저장하는것이 효율적이다.

 

동적 콘텐츠란?

사용자의 설정, 위치, 데이터에 따라서 변경되는 웹사이트는 예를들어 뉴스, 소셜 미디어, 채팅이 가능한 사이트 등등이 있다.

그런 사이트들에서 활용되는 데이터들을 동적 콘텐츠라고 한다.

 

CDN은 어떻게 작동하는 것일까?

 

  • 캐싱 (Caching)
    • 사용자가 처음 요청하면 오리진 서버가 응답하고,
      그 복사본을 캐싱된 파일로 지리적으로 가까운 엣지 서버(POP) 에 저장한다.
    • 다음에 동일한 요청부터는 오리진 대신 엣지 서버가 직접 응답한다.
  • 동적 가속 (Dynamic Acceleration)
    • 요칭이 있을때마다 변경되는 동적 웹 콘텐츠인 경우 캐싱이 제대로 작동하지 않는다.
    • 따라서 CDN 서버와 오리진 서버 간의 연결을 최적화한다.
    • 아래 기능을 통해 연결 최적화가 가능해진다.
      • 지능형 라우팅 알고리즘 
        • CDN은 전세계 네트워크 상태를 모니터링해서 안정적인 경로로 트래픽을 보낸다. 
        • 즉 트래픽의 길을 최적화 하는것
      •  오리진에 대한 지리적 접근성
        • 오리진 서버와 가까운 CDN 엣지 서버가 중계 역할을 맡는다.
      • 클라이언트 요청 처리
        • 어떤 요청은 아예 엣지 서버에서 처리되 오리진으로 가지 않는다. 
  • 엣지 로직 계산 (Edge Logic)
    • 엣지 서버에서도 일부 로직을 수행하도록 설정 가능하다.
      • 요청을 검사하고 캐싱 동작을 수정
      • 잘못된 요청을 확인하고 처리
      • 응답하기 전에 콘텐츠 수정 및 최적화
    • 이렇게 하면 오리진 서버의 부하를 덜고 응답 속도를 높일 수 있다.

 

CDN은 단순히 '이미지를 빠르게 보내주는 기술' 이 아니고

사용자 경험을 개선하기 위한 전 세계적인 분산 시스템이다. 

 

실제로 AWS CloudFront 같은 CDN 서비스를 활용하면 정적 자원(이미지, CSS, JS)을 효율적으로 캐싱하고,
오리진 서버 부하를 줄이면서 전 세계 어디서든 빠른 응답 속도를 확보할 수 있다.

 

예를 들어, 오리진 서버가 미국 버지니아에 있다면, 한국 사용자의 요청이 바로 버지니아로 가지 않고
일본 도쿄 POP(엣지 서버) → 버지니아 오리진 이런 식으로 이동하게 된다.

 


 

다음 글에서는 AWS의 CloudFront를 직접 사용해보면서
실제로 어떤 설정을 통해 정적 콘텐츠를 배포하고, 캐싱이나 엣지 로직이 어떻게 동작하는지를 실습해볼 예정이다!

 

 

 

 

참고

https://goddaehee.tistory.com/341

 

[AWS] 10. CloudFront(CDN) 이해 및 사용해보기

안녕하세요. 갓대희 입니다. 이번 포스팅은 [ AWS - CloudFront란?(사용해보기) ] 입니다. : ) 0. 들어가기 앞서 ▶ CloudFront란 AWS에서 제공하는 CDN(Content Delivery Network or Content Distribution Network, 콘텐츠 전

goddaehee.tistory.com

https://inpa.tistory.com/entry/AWS-%F0%9F%93%9A-CloudFront-%EA%B0%9C%EB%85%90-%EC%9B%90%EB%A6%AC-%EC%82%AC%EC%9A%A9-%EC%84%B8%ED%8C%85-%F0%9F%92%AF-%EC%A0%95%EB%A6%AC

 

[AWS] 📚 CloudFront 개념 원리 & 사용 세팅 💯 정리

CloudFront 클라우드프론트는 개발자 친화적 환경에서 짧은 지연 시간과 빠른 전송 속도로 데이터, 동영상, 애플리케이션 및 API를 전세계 고객에게 안전하게 전송하는 고속 콘텐츠 전송 네트워크(C

inpa.tistory.com

https://aws.amazon.com/ko/what-is/cdn/

 

CDN이란 무엇인가요? - 콘텐츠 전송 네트워크 설명 - AWS

콘텐츠 전송 네트워크(CDN)의 주 목적은 대기 시간을 줄이거나 네트워크 설계로 인해 발생하는 통신 지연을 줄이는 것입니다. 인터넷의 글로벌하고 복잡한 특성으로 인해 웹 사이트(서버)와 사용

aws.amazon.com