본문 바로가기
Computer Science

[CS] Content Delivery Network

by junseokoo 2025. 3. 16.

CDN (Content Delivery Network)

  • 콘텐츠 전송 네트워크라고 하며 데이터 사용량이 많은 애플리케이션의 웹 페이지 로드 속도를 높이는 상호 연결된 서버 네트워크이다.
  • 사용자가 웹 사이트를 방문할 때 해당 웹 사이트 서버의 데이터는 사용자의 컴퓨터에 도달하기 위해 인터넷을 이동해야한다. 사용자가 해당 서버에서 멀리 떨어져 있는 경우 동영상 또는 웹 사이트 이미지와 같은 대용량 파일을 로드하는 데 시간이 오래걸린다. 대신 웹 사이트 콘텐츠는 지리적으로 사용자와 가까운 CDN서버에 저장되며 컴퓨터에 훨씬 빨리 도달한다.

CDN 이 중요한 이유

  • 대기 시간을 줄이거나 네트워크 설계로 인해 발생하는 통신 지연을 줄이는 것이다. 인터넷의 글로벌하고 복잡한 특성으로 인해 서버와 사용자 간의 통신 트래픽은 아주 먼 물리적 거리를 이동해야 한다. 또한 클라이언트에서 서버로 요청을 보내고 응답을 반환하는 양방향 통신이다.
  • 클라이언트와 웹 사이트 서버 간에 중간 서버를 두어 효율성을 높인다. 이러한 CDN 서버는 클라이언트-서버 통신의 일부를 관리한다. 웹 서버에 대한 트래픽을 줄이고, 대역폭 소비를 줄이며, 애플리케이션의 사용자 환경을 개선한다.

CDN 이점

  • 페이지 로드 시간 단축
    • 페이지 로드시간이 너무 느리면 웹 사이트 트래픽이 감소할 수 있다. CDN은 반송률을 줄이고 사용자가 사이트에서 보내는 시간을 늘릴 수 있다.
  • 대역폭 비용 절감
    • 들어오는 모든 웹 사이트 요청은 네트워크 대역폭을 사용하기 때문에 대역폭 비용이 상당히 높다. 캐싱 및 기타 최적화를 통해 CDN은 오리진 서버가 제공해야 하는 데이터의 양을 줄여 웹 사이트 소유자의 호스팅 비용을 절감할 수 있다.
  • 콘텐츠 가용성 제고
    • 한번에 너무 많은 방문자가 방문하거나 네트워크 하드웨어 오류가 발생하면 웹 사이트가 중단될 수 있다. CDN서비스는 더 많은 웹 트래픽을 처리하고 웹 서버의 로드를 줄일 수 있다.
    • 하나 이상의 CDN 서버가 오프라인으로 전환되면, 다른 운영서버가 해당 서버를 대체하여 서비스가 중단되지 않도록 할 수 있다.
  • 웹 사이트 보안 강화
    • 분산 서비스 거부(Ddos)공격은 대량의 가짜 트래픽을 웹 사이트로 전송하여 애플리케이션이 작동 중지되도록 만들려고 시도한다. CDN은 여러 중간 서버 간에 로드를 분산하여 오리진 서버에 미치는 영향을 줄임으로써 이런한 트래픽 급증을 처리할 수 있다.

CDN 작동원리

  • 캐싱
    • 더 빠른 데이터 엑세스를 위해 동일한 데이터의 여러 복사본을 저장하는 프로레스이다. 컴퓨팅에서 캐싱의 원리는 모든 유형의 메모리 및 스토리지 관리에 적용된다. CDN 기술에서 이 용어는 네트워크의 여러 서버에 정적 웹 사이트 콘텐츠를 저장하는 프로세스를 의미한다.
      • 지리적으로 멀리 떨어진 웹 사이트 방문자는 사이트에서 정적 웹 콘텐츠를 처음 요청
      • 요청이 웹 애플리케이션 서버 또는 오리진 서버에 도달한다. 오리진 서버는 원격 방문자에게 응답을 보낸다. 또한 해당 방문자와 지리적으로 가장 가까운 CDN POP에 응답 복사본을 보낸다.
      • CDN POP 서버는 복사본을 캐싱된 파일로 저장한다.
      • 다음에 해당 방문자 또는 해당 위치에 있는 다른 방문자가 동일한 요청을 하면, 오리진 서버가 아닌 캐싱 서버가 응답을 보낸다.
  • 동적 가속
    • 웹 애플리케이션과 클라이언트 사이의 중개 CDN 서버로 인해 발생하는 동적 웹 콘텐츠 요청에 대한 서버 응답 시간을 단축하는 것이다. 사용자 요청이 있을 때마다 콘텐츠가 변경될 수 있기 때문에 동적 웹 콘텐츠에서는 캐싱이 제대로 작동하지 않는다. CDN 서버는 모든 동적 요청에 대해 오리진 서버와 다시 연결해야 하지만 자신과 오리진 서버 간의 연결을 최적화하여 프로세스를 가속화한다.
    • 클라이언트가 인터넷을 통해 웹 서버로 직접 동적 요청을 보내는 경우 네트워크 대기 시간으로 인해 요청이 손실되거나 지연될 수 있다. 보안 검증을 위해 연결을 열고 닫는 데에도 시간이 걸릴 수 있다. 반면, 근처의 CDN 서버가 요청을 오리진 서버로 전달할 경우, 신뢰할 수 있는 지속적인 연결이 이미 설정되었을 것이다. 예를 들어 다음과 같은 기능을 통해 이들 간의 연결을 더욱 최적화할 수 있다.
      • 지능형 라우팅 알고리즘
      • 오리진에 대한 지리적 접근성
      • 클라이언트 요청을 처리할 수 있으므로 클라이언트 요청을 줄일 수 있다.
  • 엣지 로직 계산
    • 클라이언트와 서버간의 통신을 단순화 하는 논리적 계산을 수행하도록 CDN 엣지 서버를 프로그래밍 할 수 있다.
      • 사용자 요청을 검사하고 캐싱 동작을 수정
      • 잘못된 사용자 요청을 확인하고 처리
      • 응답하기 전에 콘텐츠를 수정하거나 최적화
    • 웹 서버와 네트워크 엣지간에 애플리케이션 로직을 배포하면 개발자가 오리진 서버의 컴퓨팅 요구사항을 오프로드하고 웹 사이트 성능을 높이는 데 도움이 된다.

CDN 사용 예시

  • 고속 콘텐츠 사용
  • 실시간 스트리밍
  • 다중 사용자 확장 등등

'Computer Science' 카테고리의 다른 글

[CS] 양방향 암호화  (0) 2025.04.11
[CS] 단방향 암호화  (0) 2025.04.11
[CS] HTTP vs HTTPS  (0) 2025.04.10
[CS] Serverless  (0) 2025.03.16
[CS] Session vs Token  (0) 2024.11.28