Windows Azure CDN에 대한 이해

빠른 응답 속도나 많은 네트워크 트래픽이 요구 되는 서비스를 할 경우 자체 인프라가 아닌 외부 CDN(Content Delivery Network) 서비스를 활용하게 됩니다. 혹은, 글로벌 비지니스를 목표로 할 경우에 각 나라 별로 데이터 센터를 구축 하기는 어렵기 때문에 CDN 을 고려하게 됩니다. 그리고 이 같은 CDN을 이용하는 컨텐츠는 상대적으로 용량이 큰 미디어나 바이너리 파일 다운로드 등에서 많이 활용이 됩니다.

Windows Azure Platform에서도 이 같은 CDN 서비스를 지원하고 있습니다. Windos Azure 와 같은 클라우드 OS로 세가지로 크게 분류하면 Compute 기능과 Storage 기능 그리고 네트워크 인프라 부분으로 나눠서 생각해 볼 수 있습니다. 이중에 현재 Windows Azure CDN을 적용할 수 있는 것은 Storage 의 Blob 데이터에 대해서만 입니다. (Windows Azure Storage는 Table, Queue, Blob으로 나눠져 있으며, 추가적으로 Blob을 이용해서 mount 해서 NTFS 방식처럼 쓸 수 있는 Drive 도 지원 합니다.)

CDN 기능을 Windows Azure Portal의 Storage Service 에서 활성화 시키면, Windows Azure Storage에 있는 Blob 데이터를 Cache 해서 서비스하는 Windows Azure CDN URL이 생성되며, 1시간 정도의 활성화 시간이 지나면, Windows Azure Storage 에 있는 데이터를 CDN URL을 통해서 접속할 수 있습니다.

Origin Server 는 Windows Azure Storage 이기 때문에, CDN 용 URL로 특정 Data를 처음 요청하면, 현재 전세계에 있는 22개의 CDN 노드 중에 요청지에서 가장 빠르게 서비스할 수 있는 노드에 Caching 되면서 서비스 되고, 향후에 같은 요청이 근처에서 있으면 이미 Caching 된 노드에서 Data 들이 빠르게 서비스 됩니다. Cache 된 데이터는 설정할 수 있는 TTL(Time To Live)시간이 주어지게 되고, 해당 시간동안 Caching된 Data를 노드에서 서비스 되게 됩니다. TTL 을 설정함으로 노드에 Cache 된 데이터가 얼마 동안 유지될지를 설정할 수 있습니다.

Windows Azure CDN은 Windows Update나 Xbox Live 같은 대규모의 글로벌 트래픽을 요하는 서비스들이 사용하는 인프라를 이용해서 자사의 서비스를 글로벌로 사용할 수 있다는 것과, Windows Azure Storage 에 CDN을 이용할 데이터를 집어 넣고 간단히 CDN 을 활성화 할 수 있다는 장점이 있습니다.

* Windows Azure CDN 관련 참고 자료

- Windows Azure Content Delivery Network(CDN)

- About the Windows Azure CDN

- Introducing the Windows Azure Content Delivery Network