CDN이란?
Content Delivery/Distribution Network의 약자로 지리적으로 분산된 여러 개의 서버이다. 웹 콘텐츠를 사용자와 가까운 곳에서 전송함으로써 전송 속도를 높인다. 전 세계 데이터센터는 캐싱이라는 파일 복사본을 임시로 저장하는 프로세스를 사용함으로써 사용자는 가까운 서버를 통해 웹 활성화 디바이스 또는 브라우저에서 인터넷 콘텐츠에 빠르게 접속이 가능하다. CDN은 웹 페이지, 이미지, 비디오 등의 콘텐츠를 사용자의 물리적 위치와 가까운 프록시 서버에 캐싱함으로써 콘텐츠가 로딩될 때따지 기다릴 필요없이 영화 감상, 소프트웨어 다운로드, 은행 잔고 확인, 소셜 미디어 포스팅, 구매 등과 같은 작업을 할 수 있다.
가까운 곳에 있는 ATM을 이용하면 은행에서 긴 줄을 서서 기다릴 필요없이 빠르고 효율적이게 현금을 찾을 수 있는 것 처럼 CDN을 ATM 기기에 비유할 수 있다.
중앙 서버에서 개별 사용자에게 콘텐츠를 전송하려면 시간이 오래 걸렸지만, CDN은 텍스트, 그래픽, 스크립트, 미디어 파일부터 소프트웨어 다운로드, 문서, 포털, 이커머스, 라이브 스트리밍 미디어, 온디맨드 비디오 스트리밍 미디어, 소셜 미디어 사이트에 이르기까지 모든 것을 빠르게 처리한다.
또한 CDN은 보안을 강화해 DDos(Distributed Denial-of Service) 공격과 악의적 공격자를 차단하는 기능을 웹사이트에 제공할 수 있다.
CDN 사용 사례
뉴욕에 있는 사용자가 런던에 있는 업체를 보고 싶어하는 영우, 이 웹 사이트는 영국의 서버에 호스팅 되어있다. 해당 사용자가 뉴욕에서 영국까지 요청을 보낸다면 웹 사이트의 콘텐츠 로딩 시간은 길어질 것이다. CDN은 이런 문제를 해결하기 위해서 런던 웹 사이트 콘텐츠를 캐싱해 전 세계 여러 곳의 'PoP(Points of Presence)'에 저장한다. 이러한 PoP는 자체 캐싱 서버를 갖고 있으며 뉴욕에 있는 사용자에게 해당 콘텐츠를 전송한다.
사용자의 물리적 위치와 가장 가까운 서버에서 전송되는 콘텐츠를 더 빠른 고성는 웹 경험을 제공한다.
CDN 사용의 효과
CDN 사용으로부터 얻을 수 있는 효과는 필요에 따라 다르지만 대부분의 사용자에 대한 기본 효과는 다음 네 가지로 정의할 수 있다.
1. 웹사이트 로드 시간 개선
웹 사이트 방문자에게 가까운 CDN 서버의 콘텐츠를 제공하므로 페이지 로드 시간이 빨라지게 된다. 사이트 로드가 느리면 방문자 이탈률이 증가하기 때문에 CDN은 이탈률을 줄이고 방문자가 사이트에 머무르는 시간을 늘릴 수 있다.
2. 대역폭 비용 절감
CDN은 캐싱과 기타 최적화를 사용하여 원본 서버가 제공해야하는 데이터 양을 줄이고 웹 사이트 소유자의 호스팅 비용을 줄일 수 있다.
3. 콘텐츠 가용성 및 이중화
대규모 트래픽이나 하드웨어 장애로 정상적인 웹 사이트 기능이 멈출 수 있다. CDN은 분산되어 있기 때문에 다수의 원본 서버보다 더 많은 트래픽을 처리하고 하드웨어 장애를 견딜 수 있다.
4. 웹 사이트 보안 개선
CDN은 DDoS 완화, 보안 인증 개선, 기타 최적화를 제공하여 보안을 강화할 수 있다.
CDN 작동 원리
기본적으로 CDN은 콘텐츠를 가능한 빠르고, 저렴하고, 신뢰할 수 있으며, 안전하게 전송하기 위해 상호 연결된 서버의 네트워크이다. CDN은 속도와 연결을 개선하기 위해 다양한 네트워크 사이의 익스체인지 포인트에 서버를 배치한다.
이러한 인터넷 익스체인지 포인트(IXP)는 다른 네트워크에서 발생한 트래픽에 대해 상호 액세스를 제공하기 위하여 다양한 인터넷 제공자들이 연결하는 주요 위치이다. CDN 제공자는 이러한 고속 대규모 상호 연결 장소에 연결하여 고속 데이터 전송 시 비용과 전송 시간을 줄일 수 있다.
CDN은 IXP에 서버를 배치하는 것 이외에도 표준 클라이언트/서버 데이터 전송을 다양하게 최적화한다. CDN은 전 세계 전략적 위치에 데이터 센터를 배치하고, 보안을 강화하고, 다양한 유형의 장애와 인터넷 정체를 극복하도록 제작된다.
CDN이 웹 사이트 로드 시간을 개선하는 방법
- CDN은 전 세계에 분산되어 있어 사용자와 웹 사이트 자원 사이의 거리가 가까워진다. 웹 사이트의 원본 서버가 어디에 있든 사용자는 지리적으로 가까운 데이터 센터에 연결할 수 있다. 이동 시간 단축으로 서비스가 빨라진다.
- 효율적인 부하 분산(Load Blancing)과 솔리드 스테이트 하드 드라이브 같은 하드웨어 및 소프트웨어 최적화가 사용자에게 더 빨리 데이터를 전달하는데 도움을 줄 수 있다.
- CDN은 최소화와 파일 압축 같은 전술로 파일 크기를 줄여 전송 데이터 양을 줄일 수 있다. 파일 크기가 작아져 로드 시간이 빨라진다.
- CDN은 연결 재사용을 최적화하고 TLS 폴스 스타트를 사용해 TLS/SSL 인증을 사용하는 사이트의 속도도 높일 수 있다.
CDN이 웹 사이트 가용성/신뢰성을 유지하는 방법
악의적인 공격이나 조회수 상승으로 인해 하드웨어 장애와 트래픽 급증이 발생하면 웹 서버와 사용자가 사이트나 서비스를 엑세스하지 못할 수 있다. 잘 구성된 CDN은 가동 중간 시간을 최소화하는 여러 기능이 있다.
- 부하 분산은 여러 서버에 네트워크 트래픽을 골고루 분산시켜 트래픽 가속을 간소화한다.
- 하드웨어 오작동으로 하나 이상의 CDN 서버가 멈추더라도 지능형 장애 조치가 중단 없는 서비스를 제공하며 장애 조치가 트래픽을 다른 운영 서버로 분산할 수 있다.
- 전 데이터 센터에 기술 문제가 발생한 경우 Anycast 라우팅이 트래픽을 다른 데이터 센터로 전송하여 사용자가 웹 사이트를 계속 액세스할 수 있게 한다.
CDN의 데이터 보안 방법
정보 보안은 CDN의 핵심이다. CDN은 최신 TLS/SSL 인증으로 사이트를 보호하며 이로서 인증, 암호화, 무결성을 높은 수준으로 유지한다.
CDN이 대역폭 비용을 줄이는 방법
웹 호스팅 서비스는 오리진 서버로 전송되거나 오리진 서버에서 전송되는 데이터에 대해 요금을 부과한다.(이때 이 요금이 "대역폭") 그러나 웹 사이트의 콘텐츠 대부분을 CDN 내에 캐싱할 경우 웹 사이트의 호스트 서버 안팎으로 전송할 데이터가 훨씬 적어져 대역폭 비용이 절감된다.
참고자료:
https://www.akamai.com/ko/our-thinking/cdn/what-is-a-cdn
https://www.cloudflare.com/ko-kr/learning/cdn/what-is-a-cdn/
'FrontEnd' 카테고리의 다른 글
[Vue.js] Vue CLI + Vuetify + Vue Router (0) | 2021.11.20 |
---|---|
검색 엔진 최적화(Search Engine Optimization) (0) | 2021.09.30 |
HTTP vs HTTPS (0) | 2021.09.21 |
HTTP(Hyper Text Transfer Protocol)이란? (0) | 2021.09.19 |
SSR(Server Side Rendering) vs CSR(client Side Rendering) (0) | 2021.09.18 |
댓글