정의 & 특징
- Content Delivery Network
- 지리적 제약 없이 전 세계 사용자에게 빠르고 안전하게 콘텐츠를 전송할 수 있는 콘텐츠 전송 기술
- 서버와 사용자 사이의 물리적인 거리를 줄여 콘텐츠 로딩에 소요되는 시간을 최소화한다.
왜 필요한가?
1. 물리적 거리의 한계
미국에서 제공하는 어떤 서비스가 있다고 가정해보자. 우리가 웹 페이지에 접속하는건 해당 서비스를 제공하는 서버에 요청을 보내고 그 응답으로 돌아오는 컨텐츠를 이용하는 것이다. 그렇다면 이 서비스를 이용하는데 서버와 가까운 미국 사람들은 쾌적하게 서비스를 즐길 수 있겠지만, 저 바다 건너 한국, 인도네시아, 남극 이런 곳들은 거리가 있기 때문에 요청과 응답에 시간이 걸리게 되는 문제가 생긴다.
2. 서버의 과부하
글로벌 서비스의 경우 전 세계의 수많은 유저들이 다양한 요청을 서버에 보낸다. 이러한 요청을 한 곳에서 모두 받다보면 과부하가 생길 수 있다. 이에 요청을 처리하는 곳을 분산시켜 나눠서 처리할 필요가 있었다.
3. 요청의 무게
우리가 서비스를 이용하다보면 용량이 큰 이미지, 영상 등을 이용할 때가 있다. 이러한 데이터는 서버에서 전달하는데 시간이 꽤 소요되며 매번 받은 요청에 같은 일을 수행하는 것도 꽤 비효율적이다. 이에 이러한 컨텐츠들을 메인 서버에 요청하는 것이 아니라 어딘가에 저장해두고 요청이 들어오면 그 곳에서 받을 수 있도록 하는 방식이 필요했다.
정리하자면, 본사에 손님이 너무 많아 불편함이 생기니 일종의 체인점이 필요해진 것이다.
원리
프록시 서버에서 출발한 웹 캐시의 클라우드화다.
프록시 : 서버와 클라이언트 사이에서 대리로 통신을 수행해주는 것.
프록시 서버 : 클라이언트가 자신을 거쳐 다른 네트워크에 접속할 수 있도록 중간에서 대리해주는 서버.
웹 캐시 : 사용자가 웹사이트(client)에 접속할 때, 정적 컨텐츠(JS,이미지, CSS)을 특정 위치에 저장하여, 웹 사이트 서버에 해당 컨텐츠를 매번 요청하여 받는 것이 아닌, 특정 위치에서 불러옴으로서 사이트 응답 시간을 줄이고, 서버 트래픽 감소 효과를 볼 수 있는 것
전세계 각지에 캐시 서버를 엄청 많이 설치한다.
그리고 한국에 있는 사용자가 접속하면 한국 캐시 서버가 정보를 보낸다.
프랑스에 있는 사용자가 접속하면 프랑스 캐시 서버에서 정보를 보낸다.
이런 식으로 CDN 자체가 알아서 사용자와 가장 가까운 캐시 서버에서 정보를 찾아 보내는 것이다.
장점
- 자주 사용되는 파일의 병목현상을 해결할 수 있다. 데이터를 항상 빠르고 안정적으로 전송할 수 있다.
- CDN을 쓰면 트래픽이 줄어들기 때문에 서버 유지 비용도 저절로 감소한다. 원리는 caching과 비슷하다. 자주 쓰이는 파일들을 중간중간에 replica로 만들어 놓아서 클라이언트가 replica에 접근할 수 있게 한다.
- 가까운 CDN 서버를 사용하여 웹사이트 방문자에 가까운 콘텐츠를 제공하므로 페이지 로드 시간이 빨라지게 된다. 로드 시간이 개선된만큼 이탈률을 줄이고 이용 시간이 증가하게 된다.
- CDN을 제대로 구성하면 DDOS(Distributed Denial of Service) 공격같은 일반적인 악성 공격으로부터 웹사이트를 보호하는 데도 도움이 될 수 있다. 즉, 웹사이트 보안 개선에 효과가 있다.
필요한 경우
인터넷을 통해 비즈니스를 운영하거나 웹 사이트에서 그래픽 이미지, 동영상 파일 등의 콘텐츠를 제공한다면 CDN 서비스를 이용할 필요가 있다. CDN은 동영상 스트리밍이나 온라인 게임, 대용량 파일 전송, 그리고 해상도가 높아 용량이 큰 이미지를 다루는 쇼핑몰, 포털 사이트 등에서 안정적인 서비스 제공을 위해 활용되고 있습니다.
제공 업체
- Cloudflare
- Akamai
- Azure 등등
활용 사례
넷플릭스(Netflix) - 전 세계의 사용자들에게 안정적인 서비스를 제공하기 위해 2011년에 자체 CDN을 구축했다. 넷플릭스의 서비스 범위가 전 세계에 걸쳐 있고, 구독자의 절반 이상이 미국 외의 지역에 분포하고 있어 콘텐츠를 안정적이고 빠르게 세계 각지로 전달하기 위해서는 CDN 기술이 필수적이기 때문이다.
에어비앤비(Airbnb) - CDN 기술을 활용해 전 세계 고객에게 언제 어디서나 숙박 시설과 각종 액티비티를 예약할 수 있는 서비스 환경을 구축했다.
출처
https://library.gabia.com/contents/infrahosting/8985/
https://namu.wiki/w/CDN
https://www.cloudflare.com/ko-kr/learning/cdn/what-is-a-cdn/
'Programming > 11. etc' 카테고리의 다른 글
005_npm ci, npm i (0) | 2022.05.08 |
---|---|
003_css의 다양한 숨김처리 방법 (0) | 2022.04.11 |
002_인터넷 🌎 (0) | 2022.04.03 |
001_브라우저의 저장소에 대해 알아보자 🌎 (0) | 2022.03.31 |
댓글