안녕하세요. TAK 입니다:)
이번 포스팅은 CDN(Content Delivery Network)란 무엇인지 알아보겠습니다.🤞
익숙하지만 추상적으로 알고 있는 CDN이라는 개념과 작동 방식을 함께 정리하면 좋을 것 같아 준비했습니다!
1. CDN(Content Deliver Network)란?
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. 작동 방식
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 활용편"으로 찾아뵐게요!
💙의견을 자유롭게 댓글로 남겨주세요. 감사합니다:) 💙
'TOPIC > General' 카테고리의 다른 글
#01 Proxy(프록시) 서버란? (0) | 2024.07.31 |
---|---|
[경영정보시각화능력] 자격증 소개 (0) | 2024.03.20 |
CKAD 시험 후기 (0) | 2024.03.04 |
SSL/TLS 알아 보기 (1) | 2024.01.05 |