CDN (Content Delivery Network)
CDN이란 사용자와 지리적으로 멀리 떨어져 있는 Origin Server로 부터 Content(예. Web Object, Video, Music, Image, Document 등)를 다운로드 받으면 시간이 오래 걸리므로(왜 오래 걸리까요? 그건 다음 시간에...), 사용자와 가까운 곳에 위치한 Cache Server에 해당 Content를 저장(캐싱)하고 Content 요청시에 Cache Server가 응답을 주는 기술입니다. 따라서 사용자는 가까운 곳에 있는 서버(Cache Server)로 부터 Content를 수신하므로 빠르게 받을 수 있습니다.
■ CDN 핵심 기술
- Request Routing: 사용자의 Content 요청에 대해, Cache 서버의 부하를 고려하여 사용자와 가장 인접한 Cache Server를 선택하여 사용자가 보다 빠르게 Content를 다운로드 받을 수 있도록 함 [참고 링크]
Content 캐싱(Origin Server에 있는 Content를 Cache Server에 저장하는 행위)은 Static 혹은 Dynamic하게 이루어 질 수 있습니다.
▶ Static Caching
- 사용자의 요청이 없어도 Origin Server에 있는 Content를 운영자가 미리 Cache Server에 복사함
- 따라서 사용자가 Cache Server에 접속하여 Content를 요청하면 무조건 그 Content는 Cache Server에 있음! (100% Cache Hit)
- 대부분의 국내 CDN에서 이 방식을 사용함 (예. Pooq 동영상 스트리밍/다운로드, NCSOFT 게임파일 다운로드 등)
▶ Dynamic Caching
- 최초 Cache Server에는 Content가 없음
- 사용자가 Content를 요청하면 해당 Content가 있는지 확인하고, 없으면(Cache Miss) Origin Server로 부터 다운로드 받아(Cache Fill) 사용자에게 전달해 줌
- 이후 동일 Content를 요청 받으면 저장(캐싱)된 Content를 사용자에게 전달(Cache Hit)
- 각 Content는 일정 시간(TTL)이 지나면 Cache Server에서 삭제될 수 있고, 혹은 Origin Server를 통해 Content Freshness 확인 후에 계속 가지고 있을 수 있음
- Akamai, Amazon과 같은 Global CDN 업체, 그리고 Cisco나 ALU의 통신사업자향 CDN 장비 솔루션에서 이 방식을 지원함
ADN (Application Delivery Network)
ADN도 CDN과 같이 사용자와 Origin Server간에 지리적인 거리로 인해 발생하는 "느린 응답속도/다운로딩 타임"를 해결하는 기술이지만 CDN 처럼 Content를 캐싱하지 않습니다. 대신 망 지연(Latency)이 가장 큰 구간(인터넷)에 위치한 서버들(ADN 서비스용 서버) 간에 다양한 기술들을 적용하여 트래픽을 빨리 전달 할 수 있도록 합니다. ADN은 Content 캐싱이 불가능한 dynamic content(예. 옥션 장바구니, 사이트 검색 결과 등과 같이 개인별로 다른 content가 전달되는 경우)에 적용하여 응답 속도를 향상시켜 줄 수 있습니다.
■ ADN 핵심 기술
- Route (Path) Optimization: 사용자와 Origin Server 사이의 라우팅 경로 최적화 (BGP 한계 극복) [참고 링크]
- Packet Redundancy (FEC: Forward Error Correction): 동일 패킷을 서로 다른 경로를 통해 중복 전달하여 패킷 손실 시 재전송 없이 데이터를 복구할 수 있도록 함
- Data Compression: 데이터 압축을 통해 전송량 최소화
- Data De-duplication: 동일 byte-stream에 대해서는 중복 전송을 하지 않아 전송량 최소화 [참고 링크]
- Application Optimization: 응용 레이어(예. HTTP) 프로토콜 최적화 (예. Web Objects Prefetching, Pipelining)
- TCP Optimization: TCP 프로토콜 최적화 (예. Fast Start, Advanced Congestion Avoidance, Large Window Size)
결국 두 기술 모두 사용자와 Origin Server 사이의 네트워크 지연(RTT)을 극복하기 위한 기술이지만 CDN은 캐싱(Content 저장)을 통해 이 문제를 해결하고, ADN은 네트워크 지연을 최소화할 수 있는 여러 기술을 적용하여 이 문제를 풀고 있습니다.
한마디로 CDN은 "캐싱(Caching) 기술"이고 ADN은 "가속(Acceleration) 기술"입니다.
ADN에 적용된 기술은 WAN 가속기의 기능과 유사함을 볼 수 있는데요(Route Optimization만 빼고), ADN과 WAN 가속기는 적용 환경/방식에서 몇가지 차이를 보입니다.
- WAN 가속기는 클라이언트와 서버 사이 양단에 WAN 가속기 장비가 설치되어야 하기 때문에 보통 기업의 데이터센터/지사 간에 트래픽 가속을 위해 사용되지만(회사직원(지사), 서버(데이터센터) 모두 기업 소유 건물에 위치하니 WAN 가속기 설치 가능), ADN의 경우 클라이언트 혹은 서버 앞단에 WAN 가속기 설치가 불가능한 환경, 예를 들어 일반인을 대상으로 자사 서비스를 빠르게 제공하기 위한 용도나(예. Apple의 iCloud) 또는 Public Cloud 서비스(예. Salesforce.com, Office365 등)를 사용하는 기업에서 적용하는 솔루션입니다.
- WAN 가속기는 Private WAN(예. 통신사업자의 MPLS L2/L3 VPN 서비스)으로 연결된 기업 환경에서 적용이 가능하나, ADN의 경우 ADN 노드가 인터넷에 위치해 있으므로 Private WAN을 사용하는 곳에서는 사용할 수 없습니다.
- WAN 가속기는 "장비를 구매"한다는 개념이지만 ADN은 "서비스 사용료를 지불"한다는 개념입니다. 즉, WAN 가속기를 사용하려면 Riverbed, Bluecoat와 같은 회사 제품을 구매하면 되지만(한번 구매로 땡. 하지만 초기 투자비 필요) ADN을 사용하려면 Akamai, CDNetworks와 같은 ADN 서비스 제공 회사와 계약을 합니다(초기 투자비 불필요. 하지만 사용한 만큼 계속 돈을 내지요~).
제가 이쪽 분야 종사자가 아니라서 우문 하나 드리면요.
그럼 CDN 서비스 회사랑 ADN 서비스 회사는 따로 따로 있는 건가요?
또는 한 회사가 이 2개 서비스를 모두 제공 한다면, CDN용 장비랑 ADN용 장비는 따로 있는 건가요?
그리고 장비가 따로 있는 건 아니구요. 하나의 서버에서 이 2개의 기능을 함께 제공하는 것으로 알고 있습니다.
ADN 서비스업체의 소개를 부탁드립니다.
Akamai, CDNetworks, Limelight 등 CDN 서비스 제공 업체에서 ADN 서비스도 제공하는 것으로 알고 있습니다.
온세텔레콤도 ADN 서비스를 제공하는 것 같더군요.
오, 정말 좋은 글이네요.
개념 잡기에 최고입니다.
CDN이 뭔지 검색하다가 ADN이란걸 방금 처음 접했네요ㅎㅎ
ADN이 있는 줄 몰랐는데 좋은 글 잘 보고 갑니다.
감사합니다.
잘 읽었습니다. 감사합니다.
좋은글 감사합니다^^