콘텐츠 전송 네트워크(Content delivery network 또는 content distribution network (CDN))는 콘텐츠를 효율적으로 전달하기 위해 여러 노드를 가진 네트워크에 데이터를 저장하여 제공하는 시스템을 말한다. 즉 대용량 또는 사용자의 잦은 요청이 있는 컨텐츠들을 Cache 서버에 분산 배치하여 컨텐츠의 전송 중 발생하는 트래픽 집중 & 병목현상 및 데이터 손실을 해결하기 위해 등장한 컨텐츠 전송 기술을 의미한다. (느린 응답속도/다운로딩 타임을 극복하기 위한 기술)
최초로 웹 브라우저에서 URL을 이용하여 웹 사이트에 접속을 시도하게 되면 Origin Server로부터 컨텐츠를 가져와 유저에게 전송하며 동시에 CDN Cache Server에 저장한다. 하지만 CDN Cashing 방식이 무엇이냐에 따라 이는 달라질 수도 있다고 한다.
그 이후에 발생하는 요청은 유저와 가장 가까운 위치에 배치된 CDN Cache Server로 사용자를 접속시키게 되며 컨텐츠 만료 시점까지 저장된 컨텐츠를 여기서 바로 전달해준다. 서버가 Cache Server에서 요청된 파일을 찾는데 실패했거나 너무 오래되어 만료기간이 지났을 경우에는 삭제 되어있을 것이므로 Origin Server에서 파일을 조회하여 사용자에게 전달하며, CDN은 새로운 콘텐츠를 저장한다.
💡 CDN Cashing 방식의 종류
✔ 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 장비 솔루션에서 이 방식을 지원함
✔ CDN의 장점
✔ CDN의 단점