CDN(Content Delivery Network)
콘텐츠 전송 네트워크는 데이터 사용량이 많은 앱의 웹페이지 로드 속도를 높이는 상호 연결된 서버 네트워크.
지리, 물리적으로 떨어져 있는 사용자에게 느린응답속도/다운로딩 타임을 극복하여 컨텐츠를 더 빠르게 제공할 수 있는 기술
원거리에 있는 클라이언트는 본 서버에서 데이터를 전송받게 되면 오래걸린다. 그래서 컨텐츠를 캐싱하여 캐시서버에 저장을 해두고 원거리 클라이언트가 요청을 하면 캐시서버에서 컨텐츠를 전달해주는 방식
CDN의 장점
CDN의 작동원리
CDN의 필요기술
GSLB(Global Server Load Balancing)
DNS(도메인 이름을 IP 주소로 변환하는 서비스)서비스의 발전된 형태로 볼 수 있음
DNS vs GSLB
🔸 health check
: DNS 는 서버의 상태를 알 수 없어서 서비스를 실패하는 유저가 발생할 수 있으나, GSLB 는 서버의 상태를 모니터링하고 실패한 서버의 IP는 응답에서 제외
🔸 로드밸런싱
: DNS는 우선순위를 두지 않고, 순서대로 시간단위로 할당하는 Round Robin 방식을 사용하여 정교한 로드밸런싱이 어려우나, GSLB 는 서버의 로드를 모니터링하기 때문에 로드가 적은 서버의 IP를 반환하는 식으로 정교한 로드밸런싱 가능
🔸 레이턴시
: Round Robin 방식을 사용하는 DNS 는 유저를 네트워크상에서 멀리 떨어진 위치의 서버로 연결 할 수도 있다. 반면 GSLB 는 각 지역별로 서버에 대한 레이턴시 정보를 가지고 있기 때문에 유저가 접근을 하면, 유저의 지역에서 가까운(더 작은 레이턴시를 가지는) 서버로 연결을 한다.
// 레이턴시는 통신에서 렉 이라고 해석됨
🔸 위치 기반
: DNS -> Round Robin ... / GSLB -> 유저의 저역정보를 기반으로 해당 지역을 서비스하는 서버로 연결 가능
컨텐츠를 배포하는 기술
컨텐츠의 삭제나 수정이 일어났을 때 이를 관리할 수 있는 기술이 필요
CDN의 트래픽을 감지하는 기술
통계자료를 고객에게 제공하기 위해 필요
트래픽 을 분산하기 위해 필요
CDN 캐싱 방식
Static Caching
Origin Server 에 있는 Content 를 운영자가 미리 Cache Server 에 미리 복사해두기 때문에 사용자가 Cache Server 에 Content 를 요청시 무조건 Cache Server 에 있음
Dynamic Caching
Origin Server 에 있는 Content 를 운영자기 미리 Cache Server 에 복사하지 않고 사용자가 Content 요청시 해당 Content 가 없는 경우 다운로드 받아서 전달하고 일정시간이후에 삭제 될 수 있음
CDN 으로 전송가능한 컨텐츠
동영상, 오디오 스트림, 앱/게임/OS 업데이트 와 같은 소프트웨어, 의료정보와 금융정보가 포함된 데이터레코드 등등 디지털화가 가능한 모든 데이터
CDN 서비스 이용방법
CDN 이용시 소스코드 상에서 이미지 링크나 리다이렉트등 CDN 서비스를 이용할 도메인을 호출하는 경우 도메인의 주소를 CDN 업체 장비의 주소로 이미지를 호출하는 경로로 변경
<img src= "http://www.goddaehee.com/~~~~">
위 내용을 아래처럼
<img src= "CDN 업체 서버 도메인">
서비스 신청 대상 도메인이 서버(Origin Server)를 바라보게끔 CDN 장비주소로 연결해주는 작업을 해야함 (CDN 서비스 신청시 CDN 서비스를 이용할 도메인의 네임서버레코드르르 CDN 서버시 업체에 저공하는 도메인 주소 또는 IP 주소로 연결)
http://www.goddaehee.com 이 CDN 서비스를 신청하고 싶은
도메인이라면 네임서버 A레코드를
CDN업체도메인.co.kr 으로 변경작업을 한다.
브라우저 주소창에 http://www.goddaehee.com를
입력했을때 발생되는 요청을
CDN업체 서버로 가게 해주는 작업이다.
기존 http://www.goddaehee.com 에
연결된 A레코드 IP값과 도메인 정보를
보내주면 CDN업체측에서 변경에
필요한 CNAME을 준다.
이에 따라 DNS상에서 CNAME을
각각의 도메인에 적용하여 수정해줘야 한다.