에 대해서 갑자기 궁금해졌습니다.
흔히들 알고있는 CDN 사용에 있어서의 이점은 이미지 파일이나, JS, CSS 등과 같이 변경되지 않은 정적인 컨텐츠를 캐싱하여, 사용자의 요청이 들어왔을 때 오리진 서버에서 응답하기보다 캐시 서버에서 응답함으로써 오리진 서버의 과부하를 막고 더 빠른 속도로 응답할 수 있다는 점입니다.
그런데.. 사용자 요청이나 데이터의 정보를 기반으로 즉석에서 생성되는 동적 컨텐츠의 경우에는, 이를 캐싱하더라도 Cache Hit Ratio가 높지 않아서 CDN 을 굳이 사용할 필요가 있을까 생각했습니다.
생각이 짧았군여..
일반적으로 캐시 서버는 지역적으로 분산되어 있습니다. 그 이유는 사용자가 어떠한 요청을 했을 때, 가장 인접한 캐시 서버로부터 컨텐츠를 전달받아 원활한 서비스를 받을 수 있기 때문입니다. 만약 사용자는 한국에, 오리진 서버는 미국에 있다면 캐시 서버가 없다면 한국 <-> 미국 사이에 요청과 응답이 이동하면서 지연 시간은 길어질 수 밖에 없습니다.
동적 컨텐츠의 경우에 이러한 캐시 서버의 지역적 분산으로 이점을 얻을 수 있습니다. 사용자는 동적 컨텐츠를 캐시 서버로 요청하고, 캐시 서버에서는 Cache Miss 가 발생합니다. 그러면 오리진 서버에게 해당 컨텐츠에 대한 요청을 보냅니다. 캐시 서버와 오리진 서버 사이에는 빠른 통신이 제공됩니다. 그 결과 보다 빠르게 컨텐츠를 받을 수 있습니다. 그러므로 동적 컨텐츠의 경우에도 CDN 을 사용하는게 사용하지 않는 경우보다 더 빠르게 서비스가 진행될 수 있습니다.