CDN(Contents Delivery Network)의 정의
- 대용량 또는 사용자의 잦은 요청이 있는 컨텐츠들을 Cache 서버에 분산 배치하여 컨텐츠의 전송 중 발생하는 트래픽 집중 & 병목현상 및 데이터 손실을 해결하기 위해 등장한 컨텐츠 전송 기술 ( 느린 응답속도/다운로딩 타임을 극복하기 위한 기술 )
CDN의 작동 원리
1. 웹 브라우저가 실행되는 디바이스인 PC나 모바일 기기의 사용자 에이전트가 특정 주소에 접근하여 HTML, 이미지, CSS, JavaScript 파일 등 렌더링하는 데 필요한 콘텐츠를 서버로부터 요청
2. DNS는 콘텐츠에 대한 각 요청이 발생하면 End User와 가장 가까운 위치에 최적으로 배치된 CDN 서버에 End User가 매핑되고, 해당 서버는 요청된 파일의 캐싱된(사전 저장된) 버전으로 응답(전송).
3. 서버가 파일을 찾는 데 실패하는 경우 CDN 플랫폼의 다른 서버에서 콘텐츠를 찾은 다음 End User에게 응답을 전송. 콘텐츠를 사용할 수 없거나 콘텐츠가 오래된 경우, CDN은 오리진 서버에 대한 요청 프록시로 작동하여 향후 요청에 대해 응답할 수 있도록 Patch된 새로운 콘텐츠를 저장
CDN의 구성 요소
- CDN 서버 : 컨텐츠 저장, 최종 사용자에게 스트리밍 서비스
- Contents 분배 : 지정된 컨텐츠를 스케쥴에 따라 지정된 CDN 서버에 전송하여 최신 컨텐츠 버전을 유지함.
- GLB라우터 : 지역적으로 분산되어 설치된 여러 CDN 서버를 사용자와 가장 가까운 CDN서버에서 사용자가 서비스 받을 수 있도록 하는 라우터
- CDN관리 및 모니터링 SW : 분산되어 있는 CDN서버를 중앙에서 관리, 장애상황 대처
CDN기술요소
- Contents Sync : CP의 웹컨텐츠 중 변경된 내용이 있다면 CDN서버와 Sync
- Caching 기술 : 자주 사용되는 파일 캐쉬 서버에 저장
- Pull 모델 - ISP들의 POP지점에 Cache서버 배치
- Push 모델 = 캐쉬서버를 웹서버 앞에 위치
- Load Balancing : 서버사이의 트래픽 향상
- Product-Based 솔류션 : 기업 소유 형태
- Service-Based 솔류션 : 아웃소싱 형태
- Streaming 기술 : 실시간으로 사용자가 원하는 컨텐츠 전송 기술
- Multicasting Streaming : 동시에 많은 고객
- On-demand Streaming : 주문형 서비스
CDN 캐싱 방식의 종류
- 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 도입효과
- CP측면 : Web성능향상, 다양한 멀티미디어 제공, 비용절감, QoS증가
- ISP측면 : Performance 향상, 사용자 만족도 향상
- User측면 : QoS확보된 서비스 제공, 다양한 컨텐츠 서비스
참고
https://blog.naver.com/paninfo/10139797986
https://cdn.hosting.kr/cdn%EC%9D%B4%EB%9E%80-%EB%AC%B4%EC%97%87%EC%9D%B8%EA%B0%80%EC%9A%94/
http://brainwave.tistory.com/82
https://idchowto.com/?p=16938
http://i5on9i.blogspot.com/2014/05/cdn-proxy-server.html
https://www.kdata.or.kr/info/info_04_view.html?field=&keyword=&type=techreport&page=231&dbnum=127531&mode=detail&type=techreport
'IT > IT 기술' 카테고리의 다른 글
DNS 동작원리 (1) | 2018.11.05 |
---|---|
HTTP/1.1 VS HTTP/2 (1) | 2018.11.01 |
Container (0) | 2018.10.29 |