CDN 서비스 아키텍처
CDN 서비스는 콘텐츠를 제공하는 원본 서버와 실제 인터넷을 통해 콘텐츠를 사용하는 최종 사용자 사이에서
리버스 프록시 서버 형태로 존재
한다.
웹 캐시 서버와의 차이점
웹 캐시 서버는 사용자가 사용하는 네트워크나 사용자의 디바이스 등, 사용자 가까이에 위치한 로컬 캐시 서버를 의미한다.
CDN은 이런 웹 캐시 서버들을
글로벌하게
분산 배치한 네트워크를 의미한다. 원본 서버에서부터 멀리 떨어져 있는 곳에 위치한 사용자들이 빠르게 웹 콘텐츠들을 다운로드 받을 수 있도록 하기 위해서 원본 서버의 콘텐츠들을 각 캐시 서버에 캐시해 사용자들에게 서비스한다.
엣지 서버
사용자들과 가까운 곳에 위치한 웹 캐시 서버들을 의미한다.
사용자들에게 빠르고 안정적인 서비스를 제공하려면 가능한 많은 위치에 많은 수의 엣지 서버들이 필요하다.
CDN 동작 방법
CDN을 사용하지 않을 때 웹 사이트 접속
브라우저 주소창에 URL 입력
DNS로부터 웹 사이트의 IP 주소를 조회. 재귀적 질의를 통해 DNS 서버가 해당 도메인명에 대한 IP 주소를 응답
브라우저는 해당 IP 주소로 웹 콘텐츠를 요청
만약 사용자가 웹 호스팅 서버와 지리적으로 먼 곳에 위치한다면
RTT
(Round Trip Time, 요청이 서버까지 도달했다가 응답이 사용자에게 도착하는 시간)가 오래 걸린다.
CDN을 사용할 때는?
브라우저가 웹 사이트 IP 주소를 조회할 때 DNS 서버가 CDN 서비스 제공자의 도메인 명을 반환
브라우저는
CDN 서비스 제공자의 내부 DNS 서버에 해당 도메인 명에 대한 IP 주소를 다시 한 번 더 요청
CDN 업체의 DNS 서버는
사용자와 가장 가까이 위치한 에지 서버의 IP
를 최종 반환
에지 서버에 해당 콘텐츠가 캐시되었다면
사용자에게 빠르게 반환