CDN (Content Delivery Network)
CDN은 주로 static content를 호스트합니다. static content는 이미지나, 플래시 비디오, 혹은 자바스크립과 같이 다이나믹하게 작성할 필요없는 컨텐트 화일을 말합니다. 야후, 구글, 혹은 아마존과 같이 어마어마한 유저가 방문하는 사이트들은 CDN을 반드시 사용해야 합니다. 그렇지 않으면 많은 유저의 수를 절대 지원 할 수 없기 때문이죠. 따라서 다이나믹 페이지를 생성하는 서버 호스팅과 스태틱 컨텐트만을 호스팅하는 서버가 있죠. 예를 들어 야후의 페이지에 간후, view source를 하고 가장 밑 부분으로 스크롤하면 이런 코멘트를 보실 수 있습니다.
< !-- f53.www.mud.yahoo.com compressed/chunked Wed Jan 28 23:26:48 PST 2009 -- >
f53.www.mud.yahoo.com은 페이지를 호스팅하는 서버의 이름입니다. 이와 반대로 이미지 파일들의 소스를 보면, http://l.yimg.com/a/i/ww/beta/y3.gif와 같이 l.yimg.com입니다. yahoo.com의 도메인이름을 사용하지 않습니다. 잘 살펴보면 알겠지만 플래시 파일이나 자바스크립 혹은 CSS파일들도 이 l.yimg.com의 호스팅을 사용합니다.
이렇게 서버를 구분하는 이유는 페이지 로딩의 최적화를 위한 것이죠.
CDN의 운영방식
CDN은 다시 개념적으로 2개의 서버가 있습니다. 첫번째 서버는 origin server이고, 또 다른 하나는 edge server라고 합니다. 보통 origin server는 하나고, edge server들은 동부, 서부, 중부등 여러 서버 farm에 퍼져 있습니다. 즉 이미지 파일을 하나 origin server로 업로드를 한후 서버에 특별한 신호를 보내면 바로 이 파일이 edge server들로 카피가 되는 것이죠. 서부에 있는 유저들은 서부에 있는 edge server로 부터 이미지를 다운 받게 되는 것이고, 동부에 있는 유저들은 동부에 있는 edge server로 부터 이미지를 다운 받게 되는 것입니다. 보통 웹 서버도 load balance를 사용하지 않냐라고 질문을 하 실 수 있지만, 이 CDN을 통해 메인 컨텐트를 생성하는 서버의 사용양을 줄이는 것이죠.
그럼 Akamai가 무엇이죠?
Akamai는 단지 CDN의 서비스를 제공하는 회사 입니다. Akamai의 경쟁 사는 Limelight Networks나 CDNetworks등이 있죠. 야후도 마찬가지로 Akamai회사의 CDN서비스를 사용하였죠. 그리고 iPhone으로 유명한 Apple또한 Akamai회사의 CDN서비스를 통해 quicktime무비와 같은 컨텐트를 유저들에게 전송 하고 있답니다.
알고 보면 별거 아닌 거 같지만, 유저수가 엄청난 사이트에서는 반드시 필요한 테크날러지죠. 야후와 같은 경우는 1초마다 최고 12000명의 유저가 접속하죠. 매 1초마다 12000명의 유저가 접속하는데 그 엄청난 양의 밴드위드 뿐만 아니라 서버들이 그 양을 지원 할 뿐만 아니라, 데이타 베이스 최적화, 서버 스크립팅 최적화, 프론트 엔드 스크립팅의 최적화 등도 함께 적용해야 하는 것이죠.
출처 : http://www.korea2usa.com/
댓글