-
CDN(Content Delievery Network)란Etc/WEB 2021. 10. 16. 10:29728x90
CDN
- 지리,물리적으로 떨어져 있는 사용자에게 컨텐츠를 더 빠르게 제공할 수 있는 기술
- 느린 응답속도 / 다운로딩 타임 을 극복하기 위한 기술
- 사용 예)
ex1) 온라인 게임은 OBT(Open Beta Test)나 정식 서비스 시작시점에 클라이언트(Client) 다운로드(Download) 수요가 급격하게 증가한다.
많은 분들이 이때문에 PC방에서 대기했던 경험이 있지 않을까 싶다. 이때 콘텐츠 병목 현상이 일어나거나, 심한 경우 서버다운도 발생하기 때문에 CDN이 필수적으로 사용된다.
이뿐만 아니라 대규모 업데이트(Update)를 위한 패치(Patch)가 있을 경우에도 콘텐츠 병목 현상이 발생하는 경우가 있어 CDN을 사용하게 된다.
ex2) 예를들어 내 홈페이지가 한국에 있고 내가 사용하던 카페24의 서버에 호스팅되어 있다고 하자.
그 호스팅된 공간에 내 홈페이지 이미지가 있고 미국에 거주하는 이용자가 사이트를 접속했을 때 서버는 미국 이용자의 요청을 받아서 이미지를 한국에 있는 서버에서 호출하고 보여주게 된다.
하지만 물리적 거리가 멀기 때문에 어느정도의 시간 지연이 발생한다.
이를 보완하기 위해 CDN 서비스는 서버 자체를 여러곳에 두고 이용자가 요청했을때 제일 근접한 서버에서 처리함으로써 지연되는 시간을 줄여 준다.
이 과정에서 여러곳에 캐시서버를 분산해서 한개의 서버가 뻗더라도 다른 서버에서 이미지를 제공할 수 있다.
즉 ex2)을 요약 하자면 이렇다.
사용자가 원격지에 있는 서버(Origin Server)로 부터 Content(ex Web Object, Video, Music, Image, Document 등)를 다운로드 받을때 가까이 있는 서버에서 받는 것보다 시간이 오래 걸린다.
그러므로 사용자와 가까운 곳에 위치한 Cache Server에 해당 Content를 저장(캐싱)하고 Content 요청시에 Cache Server가 응답을 주는 기술이다.
ex3) e러닝 시장은 빠르게 성장하였고, 이에 따라 동영상과 음성이 적절한 트래픽 관리가 필수적이다.
이 때문에 많은 e러닝 업체들도 CDN 서비스를 도입하여 사용하고 있다.
ex4) 쇼핑몰과 같은 경우에도 많은 이미지를 보여줄 때 이 이미지들을 CDN으로 보내려 할때 아마 퍼징 한다는 말을 많이 들어 볼 수 있을 것이다.
CDN을 사용하지 않는 다면?origin server가 사용자들의 요청을 모두 담당하면, 트래픽 과부하가 걸리고 장애가 발생할 확률이 크다.
하지만 CDN을 사용하면 이런 트래픽 과부하를 예방할 수 있을 뿐더러 사용자에게 더 빠르게 서비스를 제공할 수 있다.CDN의 작동원리
1. 최초 요청은 서버로 부터 컨텐츠를 가져와 고객에게 전송하며 동시에 CDN캐싱장비에 저장한다.
2. 두번째 이후 모든 요청은 CDN 업체에서 지정하는 해당 컨텐츠 만료 시점까지 CDN 캐싱장비에 저장된 컨텐츠를 전송한다.
3. 자주사용하는 페이지에 한해서 CDN장비에서 캐싱이 되며, 해당 컨텐츠 호출이 없을 경우 주기적으로 삭제된다.
4. 서버가 파일을 찾는 데 실패하는 경우 CDN 플랫폼의 다른 서버에서 콘텐츠를 찾아 유저에게 응답을 전송한다.
5. 콘텐츠를 사용할 수 없거나 콘텐츠가 오래된 경우, CDN은 서버에 대한 요청을 프록시로 작동하여 향후 요청에 대해 응답할 수 있도록 새로운 콘텐츠를 저장한다.
'Etc > WEB' 카테고리의 다른 글
Forward Proxy vs Reverse Proxy (0) 2021.10.16 서버사이드 렌더링(SSR) vs 클라이언트사이드 렌더링(CSR) (0) 2021.09.19 Base64 인코딩이란 (0) 2021.09.11 window객체와 document 객체, BOM, DOM (0) 2021.09.02 CI/CD란 (0) 2021.08.31