IT 도서 리뷰/개발자가 되기 위해 꼭 알아야 하는 IT 용어

[PART4] 클라우드/데브옵스 - TERMS 07

goldenkiwi-coder 2025. 5. 2. 03:49

[ TERMS 07 ]  CDN

CDN을 설명하는 이미지 (출처 : https://www.hostinger.in/tutorials/what-is-cdn)

 

1. CDN(Contents Delivery Network)의 정의

 최근 네트워크가 많은 발전을 이룬 덕분에 언제 어디서든 정보를 교환할 수 있게 되었다. 현대의 우리는 네트워크 속에 살고 있다고 표현할 수 있다. 심지어 해외에서 만들어진 앱도 문제없이 사용이 가능하다. 만약 교환되는 정보가 대용량이라면 어떨까? 데이터를 언제 어시서든 지연 없이 처리하기 위해 등장한 것이 CDN 서비스이다.

 

2. CDN는 어디서 접하게 될까?

 웹 또는 앱이 많은 사용자를 보유하고 있거나 전 세계 또는 먼 곳에 콘텐츠를 제공할 때 CDN을 이용한다. 온라인 동영상 스트리밍 서비스를 제공하는 넷플릭스는 CDN 기술을 활용해 전 세계 사람들에게 콘텐츠를 안정적으로 제공하고 있다. 또한 보안을 강화하고 싶을 때도 CDN이 활용된다.

 

3. CDN 알아보기

>  개념

 CDN은 콘텐츠 전송 네트워크를 뜻한다. 즉 콘텐츠를 사용자에게 빠르고 안전하게 전달하는 기술이다. '서버 분산 네트워크'라고도 부르는 CDN은 본 서버의 기능과 데이터를 분산시켜서 지리적 제약 없이 사용자에게 콘텐츠를 제공한다.

 CDN의 개념은 본사와 체인점으로 비유할 수 있다. 예를 들어 제주도에 개인이 운영하는 한 편의점이 있다고 가정하자, 해당 편의점의 도시락이 맛있어서 전국적으로 유명해진다면, 제주에 거주하는 사람들은 도시락을 먹기위해 편의점에 가지만, 타 지역에 사는 사람들은 제주도로 오기 쉽지 않다. 점점 편의점에 많은 관광객이 방문하면서 도시락 공급이 힘들어진다. 편의점 사장은 이 문제를 해결하기 위해 다른 지역에 체인점을 오픈하여, 타 지역 주민들도 그 지역에서도 도시락을 먹을 수 있게 된다.

cdn을 설명하는 이미지 (출처 : https://www.cloudns.net/blog/cdn-content-delivery-network/)

 

>  특징

 앞서 CDN을 통해 서버를 분산시킨다는 것을 알았다.  즉, 본 서버가 클라이언트의 요청을 직접 받지 않는다. 이러한 특징으로 CDN은 많은 이점을 갖는다. 먼저 대역폭 비용이 크게 절감된다. 여기서 대역폭은 '동시에 많은 데이터를 보낼 수 있는 정도'를 말한다. 자동차들이 지나다니는 도로의 너비를 생각하면 쉽다. 서버에서 전송하는 데이터가 많아지면 대역폭은 넓어져야 한다. 하지만 CDN 기술은 본 서버가 클라이언트의 요청을 받지 않기 때문에 대역폭을 넓게 만들 필요가 없어 대역폭 비용이 절감된다. 뿐만 아니라 본 서버의 부담을 줄이면 가용성과 안정성도 향상된다.

 

>  원리

 CDN의 개념을 보면 본 서버를 똑같이 복제해서 각 지역으로 배포한다고 생각할 수 있지만 그렇지 않다. CDN은 사용자에게 제공할 콘텐츠와 데이터만 따로 각 지역 서버에 저장해 두는 방식이다. 클라이언트가 요청하면 그 클라이언트와 제일 근접한 CDN 서버에서 콘텐츠와 데이터를 제공한다. 여기서 지역별로 존재하는 CDN서버를 엣지(Edge)라고 한다. 본 서버에서는 캐싱(Caching)을 통해서 엣지에 저장한다.

 캐싱은 정적 캐싱과 동적 캐싱으로 나뉜다. 정적 캐싱은 필요한 데이터를 미리 엣지에 저장해 두는 방식이다. 동적 캐싱은 사용자가 요청했을 때 콘텐츠가 엣지에 있는지 확인한 후 제공하는 방식이다. 데이터가 있으면 클라이언트에게 바로 전송해 주고 저장된 데이터가 없으면 본 서버에 데이터를 요청한다. 동적 캐싱은 날씨 정보, API 요청 결과와 같이 빈번하게 업데이트되는 데이터를 다룰 때 사용된다. 용도에 따라 적합한 캐싱 방식을 사용해서 데이터를 용이하게 전송할 수 있다.

 

4. CDN을 사용하는 이유

 최근에는 웹 또는 앱에서 많은 기능을 제공하고 있으며 앱의 동시간 서비스 이용자수가 증가하고 있다. 이러한 상황에서 원활하고 안정적인 서비스를 제공하기 위해 CDN을 활용한다. CDN을 통해 국내뿐만 아니라 해외까지 범위를 확장하여 서비스를 제공한다. 또한 기존 인터넷 망이 갖는 한계점을 보완하고 서버의 부하 분산과 무정지 서비스, 고품질 서비스를 제공한다.

 

5. CDN 더 알아보기

>  CDN 업체의 역할

 CDN은 서비스 회사에서 직접 운영할 수도 있지만, CDN 업체들이 운영 서비스를 제공하기도 한다. CDN 업체는 각 지역에 분산된 서버들을 관리한다. 또한 사용자들이 특정 서버에 몰리는 현상을 막기 위해 클라이언트를 분석하고, 적합한 서버와 연결시켜 준다. 이 외에도 클라이언트에게 데이터를 신속하게 전달하기 위해 콘텐츠에 맞는 TTL(Time To Live)을 지정해 준다. TTL은 컴퓨터나 네트워크에서 데이터의 유효 기간을 나타내는 방법이다. 데이터의 유효 기간이 만료되면 폐기된다. TTL은 콘텐츠에 따라 다양하기 때문에 이를 알맞게 지정하는 것은 매우 중요하다.

 

>  보안을 강화하는 CDN

 악성 코드로 컴퓨터가 피해를 입는 경우가 종종 있다. 대표적으로  디도스(DDoS) 공격이 있다. 디도스 공격은 웹 사이트 또는 앱을 악성 코드로 공격하는 것이다. 공격자는 대량의 패킷과 요청을 동시에 생성하여 서버 과부하를 발생시키고, 서버를 마비시킨다. CDN은 집중된 요청들을 수많은 엣지로 분산시키기 때문에 본 서버가 마비되는 것을 막을 수 있다. 이 외에도  CDN을 관리하는 CDN 업체들이 인증 방식을 강화하는 등 디도스 공격을 막을 다양한 대응책을 마련하고 있다.

 

>  함께 알아 두면 좋은 용어

  • 인터넷
  • DNS