CDN은 어떻게 작동할까

최정환·2022년 12월 2일
0

통신과 브라우저

목록 보기
7/8

CDN이란

CDN(content delivery network)은 전세계에 정적인 HTML을 전달하는 속도를 높이기 위해 개발되었다.

최신 CDN은 HTTP 통신이 되는 곳이라면 어떤 곳이라도 사용이 가능하다.

근본적으로 CDN은 유저에게 물리적인 거리를 가까이 함으로서 내용물을 더 빠르게 가져온다.

이것은 사용자가 인지하는 웹 서비스의 성능을 향상시킨다.

성능은 유저를 참여 및 유지 시키는데 중요하는 것은 유명한 이야기다.

CDN은 유저에게 서비스를 더 가깝게 가져오기 위해서 세계에 백곳이 넘는 장소에 서버를 배포한다.


이 서버의 장소들은 PoPs(Point of Presence)라고 한다.

PoP 내부서버는 현재 엣지(edge) 서버라고 불린다.

세계에 많은 PoP들을 가지고 있는 것은 모든 유저들이 빠르게 가까이 있는 엣지 서버에 도착하는 것을 보장할 수 있다.

다른 CND(amazon cloudfront, cloudflare ...)들은 다른 기술들을 사용해 가까운 PoP에 유저의 요청을 연결시킨다.

두 가지 공통점을 가지고 있다.

DNS 기반 라우팅

각각의 PoP는 자신의 IP주소를 가지고 있다.

유저가 CDN에 대한 IP주소를 찾을 때 DNS는 유저에게 가까운 PoP의 IP주소를 보내 줄것이다.

Anycast

모든 PoP들은 동일한 IP주소를 공유한다.

만약 IP주소에 대한 Anycast 네트워크 요청이 들어온다면 네트워크는 요청을 요청자에게 가장 가까운 PoP에 보낼 것이다.


각각의 엣지 서버는 대용량 콘텐츠 캐시가 있는 리버스 프록시 역할을 한다.

정적인 콘텐츠들은 이 콘텐츠 캐시의 에지 서버에 캐시됩니다.

만약 캐시 안에 콘텐츠가 있다면 유저에게 빠르게 보내 줄 수 있다.

엣지 서버는 캐시에 없는 경우에만 원본 서버에서 정적 콘텐츠의 복사본을 요청하기 때문에 원본 서버 클러스터의 부하 및 대역폭 요구 사항이 크게 줄어든다.

현대의 CDN은 정적 콘텐츠를 보다 최적화된 형식으로 반환해준다.


예를 들면

JS 번들을 작게, 옛날 형식 image 파일(png, jpeg, gif)을 최신(webp, avif)으로 변환

엣지 서버는 또한 최신 HTTP 스택에서 매우 중요한 역할을 한다.

모든 TLS 연결은 엣지 서버에서 종료된다.

TLS handshakes는 비싼 비용을 만들어 낸다.

일반적으로 사용되는 TLS 1.2 버전은 설정하기 위해 여러 네트워크 왕복이 필요하다. > TLS handshakes가 일어난다.

TLS 연결을 엣지에서 종료하는 것은 사용자가 암호화된 TCP 연결을 설정하기 위한 지연시간을 상당히 줄일 수 있다.

이것이 최신 애플리케이션들이 동적이고 캐시 불가능한 HTTP 콘텐츠들도 CDN을 사용하는 이유 중 하나다.

성능 뿐만 아니라 최신 CDN은 두 가지 중요한 이점을 준다.

보안

모든 최신 CDN들은 엣지에 거대한 네트워크 용량을 가지고 있다.

공격자보다 훨씬 큰 용량의 네트워크를 가지는 것이 거대한 규모의 공격의 DDoS에 대해 효과적인 보호를 해주는 열쇠다.

Anycast 네트워크에 구축된 CDN에 특히 효과적이다.

Anycast는 CDN이 많은 수의 서버들에게 공격 트래픽을 분산시킬 수 있게 해준다.

유효성 향상

CDN은 본질적으로 고도로 분산되어 있다.

많은 PoP들에 콘텐츠의 복사본을 가지고 있는 것으로 원본 서버보다 더 많은 하드웨어 오류를 견딜 수 있다.

0개의 댓글