Contents Delivery Network
CDN 은 기본적으로 Web cache 의 응용이라고 보면 될 듯 하다. Web cache 는 보통 proxy server 에서 제공해 주는데, 이 proxy server 를 이용해서 구성한 하나의 network 가 CDN 이다.
기본적으로 Web server 에 대한 서비스만을 제공하는 듯 하다.
Web 이라 함은 http protocol 을 사용하는 애들을 얘기하는 듯 하다.
그렇다면 이것을 벗어나는 경우에 대한 서비스는 안되는 것이다. 왜냐하면 caching 을 위한 값이 다 http protocol 로 날아다닌다. 쉽게 cache 를 구현하기 위해서 http 를 사용한다.
기본적으로 proxy 가 무엇인지 알아야 할 텐데, 그것은 wiki 를 참조하도록 하자. 단순하게 얘기하면 proxy 의미 그대로 "대리인" 같은 것이다. 좀 더 간단하게 표현하면, 복사본 같은 것이다.(참고 : ref. 1)
이런 proxy 의 설치로 인해 아래의 이점을 가질 수 있다.
- 부하(load) 를 낮추고,
- 고객과 좀 더 가까운 곳에 둠으로써 latency 를 줄일 수 있다.
이런 이점을 이용한 network 가 CDN 이다.
CDN 과 proxy 의 차이
Real User monitoring(RUM)
- Boomerang.js
- Pion.
monitoring tools
- Cacti
- Munin
- CollectD
CDN 의 동작
ref. 1 의 Reverse Proxy 동작을 통해 CDN 의 동작을 유추해 보자. 이해하기 쉽게 하기 위해 예를 하나 들어보자.http://home.net 이라는 홈페이지가 있다고 하자. 이 홈페이지의 사진(이미지)에 CDN 서비스를 적용한다고 하면, CDN 서비스에서 서버 주소를 하나 받게 되고, 그곳에 이미지들을 올려놓게 될 것이다. 이 때 CDN 의 서비스에서 받은 서버 주소를 http://cdn.net 이라고 하자. 그러면 이미지의 주소는 http://cdn.net/1.jpg 같은 형식이 될 것이다. 이 때 이 http://cdn.net 을 origin server 라고 한다.[ref.2]
그러면 user 가 web browser 를 통해 http://home.net 에 접속을 하면 page 를 http://home.net 이라는 domain 에 mapping 된 ip address 를 찾아가서 그 서버에서 page 를 가져온다. 그리고 그 page 에 있는 이미지 url 을 보고 image 를 가져온다. 이미지 url 은 http://cdn.net/1.jpg 라고 되어 있어서 web browser 는 http://cdn.net 으로 request 를 날리는데 이 때 부터가 CDN 서비스의 범위에 들어가게 된다.
결론적으로 http://cdn.net/1.jpg 로 들어온 DNS query 를 어떤 ip adress 로 mapping 해주는가로 reverse proxy server 에 접속하게 되고, 이 proxy server 에서 cache 가 존재하는지 여부를 체크하고, file 이 존재하지 않으면 이 proxy server 가 origin 에 접속해서 file 을 가져와서 caching 하고, 가져온 file 을 다시 건내줄 것이다.[ref. 2][ref. 3]
물론 http://home.net 의 page 에 대해서도 cache 를 사용할 수 있다. 하지만 cache miss 가 날 확률이 높을 듯 해서 안하는 것이다.
감사합니다. 많은 도움이 되었습니다.
답글삭제감사합니다. 많이 배웠습니다.
답글삭제정말 아시는 분이시네요.. 설명 잘들었습니다.
답글삭제