본문 바로가기

조금은 전문적인 이야기/IT

CDN(Content delivery network)과 Free CDN 에 대하여...



 CDN에 대하여 한번 쯤은 포스팅을 하려고 생각 하고 있던 차에, Free CDN Service라는 재미있는 서비스를 알게 되서 포스팅을 하기로 했다. 


 먼저 CDN(Content delivery network)은 한국말로 풀어 쓰면 "콘텐츠 전송 네트워크"라고 하는데, 탄생 목적은 서버를 한개로 운영하게 될 경우 병목 현상 및, 비 효율적인 네트워크 이동을 막기 위해서라고 볼 수 있겠다. 풀어서 설명을 하자면 서버를 하나로 운영할 경우 과도하게 사용자가 몰리거나 해킹을 당해 트랙픽이 비정상적으로 증가하게 될 경우 서버가 죽어버리거나 프리징이 되어 버리는 현상이 발생하는데, CDN을 사용할 경우 가까운 쾌적한 서버로 자동으로 연결을 해주기 때문에 어느정도 해당 상황을 피할 수 있다. 또한 해외에서의 이용시에 한국의 서버에서 데이터를 이용하게 되면 속도 관련 문제로 인한 문제가 발생하는데 이 또한 해결이 가능하다. 


 그렇다면 어떤 원리로 이것들이 가능하게 하는가? 인터넷을 찾아보던 중에 꽤나 잘 설명이 되어 있는 사진이 있는데, 그 사진을 예로 들어 설명을 해보곘다. 


출처 : Samsung IDC


 첫번쨰 경우에 대한 설명이다. 굉장히 직관적으로 그려놨는데, 이런식으로 운영이 될 경우 가장 끝에 있는 엣지라고 부르는 곳 한 두개가 죽는다고 해도 이상없이 서비스가 가능하다. 기본적인 CDN의 운영은 오리진이라고 불리우는 메인서버가 기준 서버가 되고 그 메인 서버에서 엣지라고 불리우는 서브 서버들로 데이터를 캐싱하여 처리를 하게 된다. 여기서 조금만 생각을 넓혀보면 이 엣지를 해외에 두게 되면 해외의 서버를 이용 할 수 있게 되는 것이다. 그러므로 CDN 업체에서 해외에 엣지를 많이 둔 업체일 수록 경쟁력이 생기는 데 이는 곧 하나의 CDN 업체를 이용하면 엣지가 있는 국가의 서버를 개별 운영하는 것과 다름이 없기 때문이다. 


출처 : Samsung IDC


 이런 식으로 이용이 가능하게 되는데, 타 국가에 있는 엣지에서 데이터를 캐싱해와서 그 곳에서 바로 서비스를 하는 방식이라는 것이다. 각 CDN 업체 별로 오리진의 메인데이터를 관리하는 방법과 엣지에 데이터를 전송하는 형태의 도구들은 제공을 해준다. 다만 오리진에 올라왔다고 해서 모든 데이터가 바로바로 엣지로 가는 것은 아닌데, 그런 식으로 운영이 될경우 쓸데없는 트래픽이 발생되기 때문이다. 


 엣지의 캐싱이 작동되는 방식은 만일 사용자가 서버에 접속을 시도를 했다고 보면 CDN 서비스에서 가장 쾌적한 엣지를 서칭을 해서 한군데의 엣지에 연결을 시켜준다. 이 때에 사용자가 요구하는 서비스(파일)가 엣지에 없다면 엣지는 오리진에 서비스(파일)을 요청하게 되고 직통 라인을 통해 오리진은 엣지로 빠르게 데이터를 쏴준뒤에 사용자에게 보여준다. 

 

 여기서 CDN의 유일한 단점이 나오는데, "만일 엣지에 서비스(파일)이 없다면" 이다. CDN 업체에서는 퍼블리싱을 하는 속도가 업체별로 차이가 나고 옵션으로 추가과금을 하는 경우가 있다. 빠르면 빠를 수록 좋은 기능인데, 이를 방지하는 차원에서 일부 업체에서는 그냥 일괄적으로 오리진의 데이터를 엣지에 싱크를 시켜주는 기능도 있다. 다만 그 주기를 설정하는 업체가 있는 반면, 수동으로 눌러서 바로바로 가능하게 하는 업체가 있다. 


 만일 상업적인 용도로 CDN 업체를 선정해야 하는 경우라면 체크해야 하는 부분이 몇 가지가 있는데, 가장 기본적인 것은 엣지의 보유 수량과 보유 국가의 숫자, 그리고 퍼블리싱이나 캐싱의 방법에 대한 부분이다. 물론 각 업체별로 테스트를 할 수 있는 기간을 주기 때문에, 충분한 테스트를 해봐야 할 테지만 재미있는 점은 호주에서 접속을 한다고 반드시 호주의 엣지에 접속이 되는 것은 아니라는 점이다. 그렇기 때문에 퍼블리싱의 속도가 매우 중요한데, 엣지에 연결되는 방식이 데이터의 유무가 아니라 속도에 있기 때문에, 만일 한 엣지에서 캐싱을 요구한 뒤에 다시 접속을 하면 비어있는 엣지에 접속이 될 수도 있다는 점이다. 퍼블리싱 속도가 빠르다면 큰 문제는 없으나, 그 속도가 느리다면 CDN을 사용하는 이점을 얻기가 힘들다. 


 약간 이해가 어려울 수가 있는데 예를 들자면 A라는 엣지에 최초 접속으로 했는데 서비스(파일)이 없는 상태라 오리진에서 캐싱을 해왔다고 치자, 그러다 50%정도에 에러가 발생해서 취소가 되었는데, 다시 접속을 하니 B라는 엣지에 접속이 됬고 캐싱을 처음부터 하게 되는 상황이 발생할 수 있는 것이다. 


 CDN 이라는 기술은 글로벌 서비스를 해야하는 업체나 개인들에게는 굉장히 획기적인 방안이라고 볼 수 있는데, 무턱대고 선정을 하기보다는 확실한 테스트를 통해서 선정을 해야 한다. 


 해당 내용에 대해서 살펴보다가 공짜로 CDN 서비스를 해주는 곳이 있길래 일단 확인을 해봤다. 해당 업체는 Incapsula 라는 곳이였는데, 외국 업체이긴 하지만 상대적으로 저렴한 요금에 CDN서비스를 하고 있었다. 개다가 한달에 50GB의 트래픽 제한이 있기는 했지만 공짜로 서비스도 가능한 업체였다. 뭐 사실 조금 찾아보면 공짜로 서비스를 해주는 곳이 더 있지만 처음 찾은 이 곳에서 테스트를 진행하려고 한다. 



 가입을 하게 되면 사이트를 입력을 하고 그 사이트에 대한 오리진 작업을 실행한다. 받은 메일에 의하면 해당 작업은 7~8시간이 소요가 된다고 하는데, 아직 진행 중이라 정확한 테스트는 못해봤다.  작업이 7-8시간이 걸리는 것이 아니라, 부가적으로 세팅을 해줘야 하는 부분이 있었다. Tistory의 경우 CDN을 사용해서 우회 접속 할 경우 페이지가 제대로 보이지 않는 문제가 있었다. 


속도나 서비스에 대해서는 사용을 좀 더 해본 뒤에 후기를 적어보도록 할텐데, 솔직히 트랙픽이 얼마 되지도 않는 블로그에 사용을 해봐야 50GB 로 떡을 치고도 남을 것이다. 단점이라면 FTP등의 파일 서버들은 등록이 불가능 했다. 솔직히 개인적으로 CDN이 필요한 이유는 파일 서버를 두고 해외 출장중에 사용할 미디어 서버를 만드려고 한 것 이였는데 그 점은 좀 아쉽다. 하지만 꼼수를 통해서 어떻게 해 볼 수 있을 것 같은데....


 그리고 굉장히 재미있는 사이트를 발견했다. Coral 이라고 하는 이 사이트는 기존에 있는 사이트 들을 CDN 형식으로 이용을 하게 해주는 사이트 이다. 이 사이트는 개별 서버를 두고 사용 하는 방식이 아닌 P2P 형식으로 이루어 져있다고 하는데, 사이트를 조금 살펴본 결과 사용자들의 PC를 서버화 시켜 엣지를 만들어 뿌리는 형태인 것 같다. 


 

 역시 FTP등의 사이트는 사용이 불가능 했도, 로그인이 필요한 사이트 역시 사용이 불가능 했다. 다만 파일링크등의 개별 주소들은 이용이 가능했는데, 놀랍게도 해외에서 굉장히 느린 사이트 들이 꽤나 쾌적하게 돌아간다. 게다가 파일 전송속도도 꽤나 빠르게 나온다. 사용 방법은 간단하게 ".nyud.net" 을 주소 뒤에 붙이거나 [GO] 버튼 앞의 텍스트 박스에 해당 주소를 적어 주면 사용이 가능하다. 


 Coral에 대해서는 여러모로 테스트를 좀 더 해볼 예정인데, 어떻게 다른 활용 방안이 없을지 고심 중이다.