MINGKYME 블로그

CDN의 구성

개요

CDN은 크게 3가지 요소로 이뤄져있다.

  1. Edge
  2. Relay
  3. Origin

각각의 요소가 하는 역할을 알아보자.

1. Edge

클라이언트가 접근하는 곳이 Edge 서버이다.

해당 서버에서는 Hot content를 cache 한다.

Edge 서버는 Round Robin 형식으로 트래픽을 분배한다.

만약, URL을 기준으로 트래픽을 분배한다면 Hot Content를 담당하는 서버는 트래픽을 버티지 못할 것이기 떄문이다.

Edge의 캐시 조건으로는

  • 사용 횟수가 일정 횟수 이상 (proxy_cache_min_uses)
  • 마지막으로 사용된 기간 (expires)

등이 있다.

만약 Cache가 돼 있지 않는다면? Relay로 요청을 넘긴다.

2. Relay

Relay 서버는 Edge 서버가 접속하는 서버이다.

Relay는 분배 방식이 URL 기반으로 hash를 가진다.

해당 부분은 트래픽 분산의 목적보다 cache 저장 효율을 높이기 위해 분배 방식이 다르다.

Cold Contents를 Cache 한다.

대체로 min_uses는 짧고, expries는 길다. (Origin 서버의 부담을 줄이기 위해)

Relay 서버에서 컨텐츠가 Cache 돼 있지 않는다면? Origin으로 요청을 넘긴다.

3. Origin

해당 서버는 원본 자료가 있는 서버이다.

CDN 사의 Origin 서버를 사용할 수 도 있지만, 사용자가 EC2 등의 서버를 이용하여 Origin으로 사용할 수 있다.

CDN 사의 서비스를 이용하는 경우 CDN Origin을 이용하게 된다.

  • S3 등 스토리지 서비스

Origin 서버는 많은 트래픽을 견딜 수 없으므로, Origin의 요청을 적게 보내는게 목표라고 볼 수 있다.