[Network] CDN이란?

김강욱·2024년 12월 29일
0

Network

목록 보기
3/4
post-thumbnail

이번 포스팅에서는 CDN이 무엇인지에 대해 알아보려고 합니다.

📝 CDN이란?

CDN이란 Content Delivery Network의 약자로 지리적 제약 없이 전 세계 사용자에게 빠르고 안전하게 컨텐츠를 전송할 수 있는 컨텐츠 전송 기술을 의미합니다.

CDN은 서버와 사용자 사이의 물리적인 거리를 줄여 컨텐츠 로딩에 소요되는 시간을 최소화합니다. 각 지역에 캐시 서버(PoP, Points Of Presence)를 분산 배치해 근접한 사용자의 요청에 원본 서버가 아닌 캐시 서버가 컨텐츠를 전달합니다.

예를 들어, 미국에 있는 사용자가 한국에 호스팅된 웹 사이트에 접근하는 경우 미국에 위치한 캐시 서버에서 웹 사이트 컨텐츠를 사용자에게 전송하는 방식입니다.


📝 CDN의 필요성

OTT 서비스와 같이 대용량 데이터를 지연 없이 처리하기 위해서는 데이터를 분산해서 전달하는 기술이 필요한데, 이에 지리적으로 먼 거리에 떨어져 있는 사용자에게 지연 없이 컨텐츠를 분산해 전달할 수 있는 CDN 서비스가 등장하였습니다.

CDN은 동영상 스트리밍이나 온라인 게임, 대용량 파일 전송, 해상도가 높아 용량이 큰 이미지를 다루는 쇼핑몰, 포털 사이트 등에서 안정적인 서비스 제공을 위해 활용되고 있습니다.

이러한 CDN 기술은 정적 컨텐츠(이미지, 동영상, 파일, CSS, JS 등)를 캐시에 보관하고 사용자에게 제공하는 역할을 하는데 DB와는 다르게 데이터의 동기화가 비교적 덜 필요하기 때문에 캐시에 저장하여 빠르게 전송할 수 있습니다.


📝 CDN의 특징

1. 속도 향상

사용자와 물리적으로 가까운 CDN 서버에서 컨텐츠를 제공하기 때문에 기본적으로 전송 속도가 향상됩니다.

2. 서버 부하 감소

모든 요청이 원본 서버로 가지 않고, CDN 서버가 대신 처리해주기 때문에 원본 서버의 부하가 감소합니다.

3. 안정성

만약 특정 지역의 서버에 문제가 생겨도, 다른 지역의 CDN 서버가 요청을 처리하면 되므로 안정성이 높습니다.

4. 보안

DDos 공격에 대한 방어에도 유리합니다.


📝 CDN의 사용자 요청 제어

지역에 따라 서비스를 제공해주는 캐시 서버들이 존재하기 때문에 각 사용자의 위치에 따라 어떤 CDN 서버가 컨텐츠를 제공할지에 대한 제어가 필요합니다. 그 중간 관문 역할을 하는 것이 바로 CDN 라우팅 시스템입니다.

우선 사용자 요청 흐름에 대해 알아보도록 하겠습니다.

📌 사용자 요청 흐름

1. 사용자가 웹 사이트에 접속

사용자가 example.com에 접속합니다.

2. DNS 작동

사용자 브라우저는 example.com의 IP 주소를 찾기 위해 DNS에 요청합니다. 일반 웹 사이트일 경우 고정된 IP로 요청이 전달되지만, CDN 사용 웹 사이트일 경우 DNS 요청을 CDN 라우팅 시스템으로 보내게 됩니다.

3. 가장 가까운 CDN 서버로 연결

사용자는 가장 가까운 CDN 서버와 연결되며, 캐시에 저장된 정적 컨텐츠를 이 서버에서 직접 가져옵니다.

4. 컨텐츠 전송

CDN 서버에 캐시가 있으면 바로 전송하고, 없으면 원본 서버에 요청하여 컨텐츠를 가져옵니다. 가져온 컨텐츠는 CDN 서버의 캐시에 저장되고, 다음 요청부터는 CDN 서버에서 바로 전송해줍니다


3번의 과정에서 동작하는 것이 바로 CDN 라우팅 시스템입니다. CDN 라우팅 시스템에는 프록시 서버(에지 서버)와 DNS 라우팅 서버가 있습니다.

프록시 서버(에지 서버)는 CDN 시스템의 최전방에 있는 서버로, 캐시된 정적 컨텐츠(이미지, CSS 등)를 사용자에게 직접 제공하는 역할을 합니다.

DNS 라우팅 서버는 사용자 요청을 가장 적합한 프록시 서버(에지 서버)로 라우팅하는 역할을 합니다.

주로 사용자 위치 기반, 부하 분산, 캐싱 최적화를 목적으로 하여 그에 알맞은 프록시 서버(에지 서버)로 요청을 전송하게 됩니다.

그 중에서 사용자의 위치에 따른 라우팅 방식에 대해서 다음 포스팅에서 살펴보도록 하겠습니다. 아래 링크를 참고하시면 됩니다.

[Network] GeoDNS와 Anycast

profile
TO BE DEVELOPER

0개의 댓글

관련 채용 정보