[Network] CDN이란?
CDN이란?
롤을 좋아하시는 분 들 중, 저번 큰 이슈 중 하나로 CDN 서버가 나가서 대회가 중단되었던 사례가 있습니다.
일반적으로 사용자가 많은 사이트나, 서버에서는 거의 대부분 CDN을 사용합니다. 저희 회사에서 배포하는 서비스 또한 CDN을 당연히 쓰고 있고 이에 대한 개념을 아는 것은 거의 필수라고 볼 수 있습니다. 그에 따라 한번 내용을 정리해볼려고합니다.
CDN의 정의
CDN(Contents Delivery Network)은 물리적으로 멀리 떨어져있는 사용자에게 컨텐츠 제공자의 컨텐츠를 더 빠르게 제공할 수 있는 기술을 의미합니다.
일반적으로 우리가 많이 보는 넷플릭스와 같이 큰 영상 데이터를 스트리밍해서 사용자에게 보내줘야하는 경우에는 이러한 CDN은 반드시 필요한 기술입니다.
좀 더 자세하게 설명하자면, 기본적으로 사용자는 원격에 있는 서버(Origin Server)로 부터 Content(Ex. Web Object, Video, Music, Image 등등)을 다운 받을때는 가까이에서 받는것보다 시간이 오래걸립니다. 따라서 사용자와 가까운 곳에 위치한 Cache Server에 Content를 저장(캐싱)하고 Content 요청시에 Cache Server에 응답을 주는 기술입니다.
즉, CDN은 콘텐츠를 전송하도록 최적화된 전세계적으로 촘촘히 분산된 서버로 이루어진 플랫폼입니다. 이 CDN은 Origin이라고 불리는 콘텐츠 서버와 엔드유저(Client) 사이에서 컨텐츠를 저장하는 역할을 합니다.
CDN의 이용시 장점
일반적으로 CDN을 사용하지 않으면 Origin 서버의 경우에는 모든 클라이언트의 요청에 일일이 응답해야합니다. 이는 막대한 트래픽을 유발하고, 장애 발생확률을 높입니다.
CDN을 이용하면 다음과 같은 장점을 가집니다.
-
성능
- 온라인 콘텐츠가 빠르게 전송시킬 수 있습니다.
- 해당 Origin 서버가 여러 위치에 CDN을 설치해놓으면 해당 위치에서 신규 콘텐츠를 요청하는 경우, 가까운 곳에서 직접 액세스가 가능하고 이를 통해서 수백, 수천 킬로미터의 왕복시간을 절약할 수 있습니다.
-
가용성
- 여러 트래픽 급증, 서버 중단 등의 이슈에서도 클라이언트에게 콘텐츠를 제공할 수 있습니다.
-
보안
- 보안적인 지원이 많이 들어가는 CDN을 사용하는 경우, CDN은 악성 유저들의 공격을 막음으로서 사용자들을 보호할 수 있습니다.
CDN의 작동원리.
CDN은 다음과 같이 작동합니다.
- 일반적으로 웹 브라우저가 실행되는 디바이스인 PC나 모바일에서 사용자가 접근해서 필요한 콘텐츠를 요청합니다.
- 대부분의 CDN의 경우, 각 요청이 발생시 가장 가까운 위치에 최적으로 배치된 CDN 서버에 클라이언트가 매핑되고 해당 서버는 이 데이터를전송합니다.
- 오래된 CDN의 경우, 요청 프록시를 통해서 Origin 서버에 콘텐츠를 요청하고 새로운 콘텐츠로 저장합니다.
CDN 캐싱 방식의 종류
Content 캐싱은 Static과 Dynamic으로 나눌 수 있습니다.
Static Caching
- 사용자 요청이 없어도 Origin Server에 있는 Content를 운영자가 미리 Cache Server에 복사합니다,
- 따라서 사용자가 Cache Server에서 Content를 요청시 반드시 해당 컨텐츠는 Cache Server에 있습니다.
- 대부분의 국내 CDN은 이 방식을 선호합니다.
Dynamic Caching
- 최초 Cache Server에는 Content가 없습니다.
- 사용자가 Content를 요청하면, 해당 Content가 있는지 확인하고 없으면 Origin Server로부터 다운로드 받습니다
- 이후 동일 Content 요청을 받은 경우, 저정(캐싱)된 Content를 사용자에게 전달합니다. (Cache Hit)
- 각 Content는 일정시간(TTL)이 지나면 Content Server에서 삭제될 수 있고 혹은 Origin Server를 통해서 Content 최신화 된 이후 계속 가지고 있을 수 있습니다.
- Global CDN 업체의 경우에는 일반적으로 이 방식을 선호합니다.
마무리.
오늘은 간단하게, CDN에 대해 정리해보았습니다. 많은 회사에서 CDN을 쓰고 있고 이에 따라 이정도의 개념은 알고 있는 것이 좋은 것 같습니다.
출처