TOPIC/General

CDN(Content Delivery Network)란?

admin_cloud 2024. 7. 1. 14:48

안녕하세요. TAK 입니다:)

 

이번 포스팅은 CDN(Content Delivery Network)란 무엇인지 알아보겠습니다.🤞

 

익숙하지만 추상적으로 알고 있는 CDN이라는 개념과 작동 방식을 함께 정리하면 좋을 것 같아 준비했습니다!


1. CDN(Content Deliver Network)란?

(좌)https://www.cloudflare.com/ko-kr/learning/cdn/what-is-a-cdn/ (우)https://blog.scaleflex.com/content/images/2022/12/how-does-a-cdn-work.png

 

CDN은 웹 콘텐츠를 사용자에게 효율적으로 전달할 수 있는 분산 서버 네트워크입니다.

 

말 그대로, CDN은 콘텐츠를 소비하는 사용자에게 필수적인 서비스로, 대기 시간을 최소화하며 최종 사용자에게 콘텐츠를 전달하는 역할을 합니다.

 

쉽게 표현하자면, 웹 페이지의 이미지, 동영상 등의 콘텐츠를 사용자(User)의 실제 위치(지리적 위치)와 가까운 서버에 캐싱하여, 콘텐츠를 기다릴 필요 없이 쇼핑, 영화 감상, 콘텐츠 다운로드, SNS 게시 등 작업을 원활히 수행할 수 있게 해 줍니다.

 

CDN은 이를 위해 PoP(Point of Presence) 위치에 캐시 된 콘텐츠(데이터 센터에 파일 사본을 임시로 저장하는 ‘캐싱’이라는 프로세스)를 Edge 서버에 저장합니다. 이를 통해 최종 사용자와 가까운 서버에서 콘텐츠를 제공하여 빠르고 효율적인 서비스가 가능해집니다.

 

1-1. 용어 설명

위에서 언급한 주요 용어에 대해서 살펴보겠습니다.

1-1-1. 캐싱(Caching)

캐싱은 파일의 사본을 임시로 저장하는 프로세스를 의미합니다.(즉, 임시로 저장한 테이터 요청 시간을 단축시키는 기술) CDN은 보통 글로벌 서비스를 제공하는데, 원본 서버에서 제공하는 콘텐츠를 전 세계 데이터 센터에 파일을 캐싱하여, 사용자가 가까운 서버에서 인터넷 콘텐츠에 접속할 수 있도록 합니다. 이를 통해 데이터 전송 시간을 단축하고 서버 부하를 줄입니다.

  • 속도 향상: 사용자가 요청한 콘텐츠를 가까운 개시 서버에서 제공하여 대기 시간을 줄이고 빠르게 전달
  • 서버 부하 감소: 원본 서버에 대한 요청을 줄여 서버 부하를 분산
  • 대역폭 비용 절감: 원본 서버와 사용자 간의 직접 통신을 줄여 네트워크 대역폭 사용을 최적화
  • 가용성 증가: 원본 서버 문제 시에도 캐시 서버에 저장된 콘텐츠를 통해서 서비스 지속 가능

**캐싱 방식

: CDN에서 캐싱은 크게 정적(Static) 캐싱동적(Dynamic) 캐싱으로 나눌 수 있습니다.

두 가지 방식은 각각의 콘텐츠 유형과 특성에 맞추어 최적화된 방법으로 캐시를 관리합니다.

 

*정적(Static) 캐싱

: 정적 캐싱은 자주 변하지 않는 콘텐츠를 캐시에 저장하는 방식입니다. 정적 콘텐츠는 일반적으로 변경 빈도가 낮고, 여러 사용자에게 동일한 형태로 제공되는 파일들입니다.(ex. 이미지, HTML, CSS 등)

 

- 변경 빈도가 낮음: 콘텐츠가 자주 변경되지 않아, 한 번 캐시에 저장되면 오랜 기간 동안 유효하게 사용할 수 있습니다.
- TTL 설정: Cache-Control 헤더를 통해 TTL(Time To Live)을 길게 설정하여, 캐시된 콘텐츠가 오랜 시간 동안 유지되도록 합니다.
 - 고정된 URL: 정적 파일의 URL이 변경되지 않으므로, 캐시 히트를 통해 빠르게 제공됩니다.

 

- 속도 향상: 자주 요청되는 콘텐츠를 캐시에서 즉시 제공하여 로딩 시간 감소

- 서버 부하 감소: 원본 서버로의 요청이 줄어들어 서버 부하를 감소

- 일관성 유지: 동일한 콘텐츠가 여러 사용자에게 일관되게 제공

 

*동적(Dynamic) 캐싱

: 동적 캐싱은 자주 변경되는 콘텐츠를 캐시에 저장하는 방식입니다. 동적 콘텐츠는 사용자의 요청에 따라 실시간으로 생성되거나 변경되며, 사용자별로 다를 수 있는 데이터입니다. (ex. 실시간 뉴스, 주식, 쇼핑몰 추천 목록 등 )

 

- 변경 빈도가 높음: 콘텐츠가 자주 변경되어 캐시의 유효 기간을 짧게 설정하거나, 조건부 요청을 통해 최신 상태를 유지합니다.
- 조건부 요청 사용: ETag 또는 Last-Modified 헤더를 사용하여, 콘텐츠가 변경된 경우에만 캐시를 갱신합니다.
- 사용자별로 다름: 개인화된 콘텐츠의 경우, 사용자별로 다른 캐시를 관리해야 할 수 있습니다.

 

- 성능 최적화: 자주 변경되는 콘텐츠도 일정 기간 캐시를 통해 빠르게 제공할 수 있어 성능이 최적화 가능
- 최신 상태 유지: 조건부 요청을 통해 항상 최신 콘텐츠를 제공
- 서버 부하 감소: 동적 콘텐츠도 캐시를 통해 서버 부하를 줄일 수 있음.

 

1-1-2. PoP(Point of Presence)

PoP는 CDN의 네트워크 인프라의 일부로, 지리적으로 분산된 데이터 센터를 의미합니다. 각 PoP는 여러 캐시 서버를 포함하며, 사용자와 가까운 위치에서 콘텐츠를 제공하여 네트워크 지연 시간을 최소화합니다.

  • 지연 시간 감소: 사용자와 가까운 PoP에서 콘텐츠를 제공하여 네트워크 지연 시간을 최소화
  • 트래픽 분산: 전 세계에 분산된 PoP를 통해 트래픽을 분산시켜 네트워크 혼잡을 완화
  • 지역 최적화: 각 지역의 네트워크 조건과 사용자 요구에 맞춰 최적화된 서비스를 제공
  • 확장성: PoP를 추가하여 네트워크 용량을 확장하고, 급증하는 트래픽을 효율적으로 처리 가

1-1-3. Edge 서버

Edge 서버는 CDN에서 사용자와 가까운 위치에 배치되어 콘텐츠를 제공하는 서버입니다. PoP 내에 위치하거나 PoP 자체를 지칭하기도 하며, 사용자 요청을 처리하는 첫 번째 지점입니다. Edge 서버는 캐시된 콘텐츠를 통해 빠르게 사용자에게 데이터를 전달합니다.

  • 콘텐츠 캐싱: 자주 요청되는 콘텐츠를 캐싱하여 빠르게 제공.
  • 지연 시간 감소: 사용자와 지리적으로 가까운 위치에 배치되어 데이터 전송 거리 최소화
  • 트래픽 분산: 트래픽을 분산시켜 네트워크 혼잡을 완화하고, 서버 과부하를 방지
  • 지역 최적화: 특정 지역의 네트워크 조건과 사용자 요구에 맞춘 최적화
  • 보안 강화: DDoS 공격 방어, SSL 암호화 등 보안 기능을 수행하여 원본 서버를 보호하고 사용자 데이터를 안전하게 전송

 

2. 작동 방식

(좌)https://www.hostinger.com/tutorials/wp-content/uploads/sites/2/2019/01/how-does-a-CDN-work-1-1024x886.webp (우)https://www.akamai.com/site/en/images/article/2023/what-is-a-cdn.png



CDN은 위에서 언급한 것처럼, 결과적으로는 사용자에게 빠르고 효율적으로 콘텐츠를 전달하기 위해 서비스입니다.

 

이를 위한 CDN 동작 방식을 예시와 함께 알아보겠습니다.

 

예를 들어, A 사용자가 한국에서 미국에 있는 웹 사이트(taknhyen.com)에 접속하여 고화질 동영상을 스트리밍 하려고 합니다.

 

a. 사용자 요청 (User Request)

- 사용자 A는 브라우저를 열고 taknhyen.com에 접속하여 고화질 동영상을 스트리밍 하기 위해 클릭합니다.

 

b. DNS 요청 (DNS Request)

- 사용자 A의 브라우저는 taknhyen.com의 IP 주소를 찾기 위해 DNS 서버에 요청을 보냅니다.

- DNS 서버는 taknhyen.com의 IP 주소를 확인하고, 가장 가까운 PoP(Point of Presence)를 찾기 위해 CDN의 DNS 서버로 요청을 전달합니다.

 

c. 가장 가까운 PoP 선택 (Selecting the Closest PoP)

- CDN의 DNS 서버는 사용자 A의 위치를 기반으로 가장 가까운 PoP를 선택합니다. 사용자 A는 한국 서울에 있으므로, 서울에 있는 PoP가 선택됩니다.

- DNS 서버는 사용자 A의 브라우저에 서울 PoP의 IP 주소를 반환합니다.

 

d. PoP의 Edge 서버에서 캐시 확인 (Cache Checking at PoP's Edge Server)

- 사용자 A의 브라우저는 서울 PoP의 Edge 서버에 콘텐츠 요청을 보냅니다.

- 서울 PoP의 Edge 서버는 요청된 고화질 동영상이 캐시에 있는지 확인합니다.

 

e. (상황 1) 캐시 적중 (Cache Hit) : 만약 고화질 동영상이 서울 PoP의 Edge 서버에 이미 캐시 되어 있다면, Edge 서버는 즉시 동영상을 사용자 A에게 스트리밍 합니다.

- 사용자 A는 서울 PoP의 Edge 서버로부터 고화질 동영상을 빠르게 스트리밍 할 수 있습니다.

 

e. (상황 2) 캐시 미스 (Cache Miss) : 만약 고화질 동영상이 서울 PoP의 Edge 서버에 없다면, Edge 서버는 미국에 있는 원본 서버(Origin Server)로부터 동영상을 가져와야 합니다.

- 서울 PoP의 Edge 서버는 미국의 원본 서버에 요청을 보내 고화질 동영상을 다운로드합니다.

- 원본 서버는 요청된 동영상을 서울 PoP의 Edge 서버로 전송합니다.

 

f. 콘텐츠 전달 (Content Delivery)

- 서울 PoP의 Edge 서버는 원본 서버로부터 받은 동영상을 캐시에 저장합니다.

- 저장된 동영상을 사용자 A에게 스트리밍 합니다.

- 사용자 A는 원본 서버에서 가져온 동영상을 서울 PoP의 Edge 서버를 통해 스트리밍 하게 됩니다.

 

g. 추가 요청 처리 (Handling Subsequent Requests)

- 이후 다른 사용자들이 같은 고화질 동영상을 요청하면, 서울 PoP의 Edge 서버에 캐시 된 동영상을 빠르게 제공할 수 있습니다.

- 이를 통해 대기 시간이 줄어들고, 서버 부하가 분산됩니다.

 

위와 같은 단계를 통해 CDN 서비스를 제공합니다.

 


지금까지 CDN의 개념과 작동 방식에 대해 함께 살펴보았습니다.

다음 포스팅에서는 "CDN 활용편"으로 찾아뵐게요!

 

💙의견을 자유롭게 댓글로 남겨주세요. 감사합니다:) 💙

728x90
320x100
SMALL

'TOPIC > General' 카테고리의 다른 글

#01 Proxy(프록시) 서버란?  (0) 2024.07.31
[경영정보시각화능력] 자격증 소개  (0) 2024.03.20
CKAD 시험 후기  (0) 2024.03.04
SSL/TLS 알아 보기  (1) 2024.01.05