본문 바로가기
IT 기술/인프라

[HTTP 기초] CTN(Contents Delivery Network)

by Chacha2211 2024. 1. 20.

1. CDN(Contents Delivery Network)이란?

- 한글로는 콘텐츠 배포망으로 번역된다.
- 콘텐츠 전송 네트워크(CDN)는 데이터 사용량이 많은 애플리케이션의 웹 페이지 로드 속도를 높이는 상호 연결된 서버 네트워크이다.
- CDN은 원격지서버(Origin Server)와 사용자 사이의 물리적인 거리를 줄여 콘텐츠 로딩에 소요되는 시간을 최소화한다. CDN은 각 지역에 캐시 서버(PoP, Points of presence)를 분산 배치해, 근접한 사용자의 요청에 원본 서버(Origin Server) 가 아닌 캐시 서버(Cache Server)가 콘텐츠를 전달한다.

[그림] 출처: https://www.digitalocean.com/blog/what-is-a-cdn

 

2. CDN 장점

1. 웹사이트 로드 시간 단축
2. 인터넷 회선 비용 절감
    - 캐싱 및 기타 최적화를 통해 CDN은 원격지서버(Origin Server)가 제공해야 하는 데이터의 양을 줄여 웹 사이트 호스팅 비용을 절감할 수 있다.
3. 컨텐츠 제공의 안정성(가용성)
    - 웹 트래픽을 처리하고 웹 서버의 로드를 줄일 수 있다. 하나 이상의 CDN 서버가 오프라인으로 전환되면 다른 운영 서버가 해당 서버를 대체하여 서비스가 중단되지 않도록 할 수 있다.
4. 웹사이트 보안 개선
    - 분산 서비스 거부(DDoS)공격은 대량의 가짜 트래픽을 웹 사이트로 전송하여 애플리케이션이 작동 중지되도록 만들려고 시도한다. CDN은 여러 중간 서버 간에 로드를 분산하여 오리진 서버에 미치는 영향을 줄임으로써 이러한 트래픽 급증을 처리할 수 있다.
 
 

3. CDN의 작동원리

콘텐츠 전송 네트워크(CDN)는 여러 지리적 위치에 접속 지점(POP) 또는 CDN 엣지(edge) 서버 그룹을 설정하는 방식으로 작동한다. 지리적으로 분산된 이 네트워크는 캐싱, 동적 가속 및 엣지 로직 계산의 원리를 기반으로 작동한다.

CDN은 세 가지 종류의 서버에 의존한다.

 

오리진 서버: 오리진 서버에는 콘텐츠의 원본 버전이 포함되어 있으며 원본 소스 역할을 한다. 콘텐츠를 업데이트해야 할 때마다 오리진 서버에서 변경이 이루어진다. 


엣지 서버 : 엣지 서버는 전 세계 여러 지리적 위치에 위치하며, 이를 ‘PoP(Point of Presence)’라고도 한다. 이러한 PoP 내의 엣지 서버는 오리진 서버에서 복사된 콘텐츠를 캐싱하고, 인근 사용자에게 해당 콘텐츠를 전송하는 역할을 담당한다. 사용자가 오리진 서버의 콘텐츠에 대한 접속을 요청하면 지리적으로 가까운 엣지 서버에 캐싱된 콘텐츠 사본으로 리디렉션된다. 캐싱된 콘텐츠가 오래된 경우 엣지 서버는 오리진 서버에 업데이트된 콘텐츠를 요청한다.

 

DNS 서버 : DNS(도메인 네임 시스템) 서버는 오리진 및 엣지 서버의 IP 주소를 추적하고 제공한다. 클라이언트가 오리진 서버에 요청을 보내면, DNS 서버는 콘텐츠를 더 빠르게 제공할 수 있는 페어링된 엣지 서버의 이름으로 응답한다.

 
 
캐싱
캐싱은 더 빠른 데이터 액세스를 위해 동일한 데이터의 여러 복사본을 저장하는 프로세스이다. 컴퓨팅에서 캐싱의 원리는 모든 유형의 메모리 및 스토리지 관리에 적용된다. CDN 기술에서 이 용어는 네트워크의 여러 서버에 정적 웹 사이트 콘텐츠를 저장하는 프로세스를 의미한다. CDN에서 캐싱은 다음과 같이 작동한다.

1. 지리적으로 멀리 떨어진 웹 사이트 방문자는 사이트에서 정적 웹 콘텐츠를 처음 요청한다.
2. 요청이 웹 애플리케이션 서버 또는 오리진 서버에 도달한다. 오리진 서버는 원격 방문자에게 응답을 보낸다. 또한 해당 방문자와 지리적으로 가장 가까운 CDN POP에 응답 복사본을 보낸다.
3. CDN POP 서버는 복사본을 캐싱된 파일로 저장한다.
4. 다음에 해당 방문자 또는 해당 위치에 있는 다른 방문자가 동일한 요청을 하면, 오리진 서버가 아닌 캐싱 서버가 응답을 보낸다. 
 
 
동적 가속
동적 가속은 웹 애플리케이션과 클라이언트 사이의 중개 CDN 서버로 인해 발생하는 동적 웹 콘텐츠 요청에 대한 서버 응답 시간을 단축하는 것이다.

클라이언트가 인터넷을 통해 웹 서버로 직접 동적 요청을 보내는 경우 네트워크 지연 시간으로 인해 요청이 손실되거나 지연될 수 있다. 보안 검증을 위해 연결을 열고 닫는 데에도 시간이 걸릴 수 있다. 반면, 근처의 CDN 서버가 요청을 오리진 서버로 전달할 경우, 신뢰할 수 있는 지속적인 연결이 이미 설정되었을 것이다.

[클라이언트-서버 연결 최적화 기능]

  • 지능형 라우팅 알고리즘
  • 오리진에 대한 지리적 근접성
  • 클라이언트 요청을 처리할 수 있으므로 클라이언트 요청을 줄일 수 있다.

 
 
엣지 로직 계산
클라이언트와 서버 간의 통신을 단순화하는 논리적 계산을 수행하도록 CDN 에지 서버를 프로그래밍할 수 있다.

[CDN 에지 서버 수행 역할]

  • 사용자 요청을 검사하고 캐싱 동작을 수정한다.
  • 잘못된 사용자 요청을 확인하고 처리한다.
  • 응답하기 전에 콘텐츠를 수정하거나 최적화한다.

웹 서버와 네트워크 엣지 간에 애플리케이션 로직을 배포하면 개발자가 오리진 서버의 컴퓨팅 요구 사항을 오프로드하고 웹 사이트 성능을 높이는 데 도움이 된다.

 
 

4. CDN 사용 예

고속 콘텐츠 전송
정적 및 동적 인터넷 콘텐츠 전송을 결합하여 CDN을 사용하여 고객에게 글로벌 고성능 전체 사이트 환경을 제공할 수 있다.

ex.)
Reuters는 위성 링크 통신에 대한 의존도를 최소화하고 보다 저렴하고 가용성이 높으며 안전한 글로벌 분산 네트워크 플랫폼을 구축하기 위해 Amazon의 CDN 서비스인 Amazon CloudFront를 Amazon Simple Storage Service(Amazon S3)와 함께 사용한다.

 

실시간 스트리밍
CDN은 고품질의 풍부한 미디어 파일을 안정적이고 비용 효율적으로 제공할 수 있도록 지원한다. 비디오 및 오디오를 스트리밍하는 기업은 CDN을 사용하여 대역폭 비용 절감, 확장성 향상, 제공 시간 단축이라는 세 가지 과제를 해결합니다.

ex.)
Amazon CloudFront를 사용하여 증가하는 고객 기반에 20GBps 이상의 데이터를 지속적으로 스트리밍한다.


다중 사용자 확장
CDN은 다수의 동시 사용자를 지원하는 데 도움이 된다. 웹 사이트 리소스는 한 번에 제한된 수의 클라이언트 연결만 관리할 수 있다. CDN은 애플리케이션 서버에서 로드 일부를 가져옴으로써 이 수를 빠르게 확장할 수 있다.

ex.)

King의 게임 애플리케이션은 중앙 데이터 센터에 사용자의 게임 데이터를 기록하여 게임 진행 데이터 그대로 다른 디바이스에서 게임을 할 수 있게 한다. 데이터 센터는 대역폭이 제한된 구형 컴퓨터에서 사용자가 게임에 참여하더라도 사용자에게 일관된 환경을 제공하는 것을 목표로 한다.
King은 Amazon CloudFront를 사용하여 매일 수백 테라바이트의 콘텐츠를 제공하며, 이 규모는 새로운 게임을 출시하거나 대규모 마케팅 프로그램을 시작할 때 0.5 페타바이트 이상으로 급증한다.

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

'IT 기술 > 인프라' 카테고리의 다른 글

데이터 베이스 샤딩(Sharding)  (0) 2024.01.05
데이터 오류 검출 방식  (1) 2023.12.24
인프라 아키텍처 들어가기  (0) 2023.12.10

댓글