CDN 작동 방식
CDN(Content Delivery Network)은 전 세계에 걸쳐 정적 HTML 파일을 빠르게 전달하기 위해 개발된 시스템입니다.
이는 HTTP 통신이 가능한 어떤 장소에서든 사용될 수 있으며, 기본적으로 CDN은 사용자에게 물리적 거리를 단축시킴으로써 웹 콘텐츠를 더욱 빠르게 제공합니다. 이는 웹 서비스의 성능을 향상시키고, 사용자의 참여 및 유지에 중요한 역할을 합니다.
CDN은 전 세계에 100개 이상의 장소에 서버를 배포하여, 사용자가 가까운 서버에서 서비스를 받을 수 있도록 합니다. 이러한 서버의 위치를 PoP(Point of Presence)라고 하며, PoP 내부의 서버는 엣지(edge) 서버라고 불립니다.
세계 곳곳에 많은 PoP를 두는 것은 모든 사용자가 가까운 엣지 서버에 빠르게 접근할 수 있도록 보장합니다.
CDN은 주로 두 가지 방법을 사용하여 사용자의 요청을 가까운 PoP에 연결합니다.
DNS 기반 라우팅에서는 각 PoP가 고유의 IP 주소를 가지고 있으며, 사용자가 CDN의 IP 주소를 찾을 때, DNS는 사용자에게 가장 가까운 PoP의 IP 주소를 안내합니다.
Anycast 방식에서는 모든 PoP들이 동일한 IP 주소를 공유하며, Anycast 네트워크 요청이 들어오면 네트워크는 요청을 사용자와 가장 가까운 PoP로 보냅니다.
엣지 서버는 대용량 콘텐츠 캐시를 갖춘 리버스 프록시 역할을 하며, 정적 콘텐츠는 이 캐시에 저장됩니다. 콘텐츠가 캐시에 있으면, 사용자에게 빠르게 전달할 수 있으며, 캐시에 없는 경우에만 원본 서버에서 콘텐츠를 요청합니다. 이는 원본 서버의 부하와 대역폭 요구를 크게 줄입니다.
현대 CDN은 정적 콘텐츠를 더 최적화된 형태로 제공합니다. 예를 들어, JS 번들을 작게 만들거나, 기존 이미지 파일(png, jpeg, gif)을 최신 포맷(webp, avif)으로 변환합니다. 또한, 엣지 서버는 최신 HTTP 스택에서 중요한 역할을 하며, 모든 TLS 연결은 엣지 서버에서 종료됩니다. 이는 TLS 핸드셰이크로 인한 지연 시간을 상당히 줄일 수 있습니다.
최신 CDN은 성능 향상 뿐만 아니라 보안과 유효성 향상에서도 중요한 역할을 합니다. 엣지에 거대한 네트워크 용량을 갖추고 있어, 대규모 DDoS 공격에 대한 효과적인 보호를 제공합니다. Anycast 네트워크는 공격 트래픽을 여러 서버에 분산시키는 데 특히 효과적입니다. 또한, CDN은 고도로 분산된 구조로 되어 있어, 많은 PoP들에 콘텐츠의 복사본을 보관함으로써 원본 서버보다 더 많은 하드웨어 오류를 견딜 수 있습니다. 이는 웹 서비스의 가용성을 크게 향상시키는 요소입니다.
이와 같은 기능을 통해 CDN은 웹 사이트의 속도와 성능을 개선할 뿐만 아니라, 웹 사이트의 보안과 가용성을 강화하는 중요한 역할을 합니다. 사용자는 전 세계 어디서든 빠르고 안정적인 접근성을 경험할 수 있으며, 웹 사이트 소유자는 자신의 콘텐츠를 보다 효과적으로 배포하고 관리할 수 있습니다.
요약하자면, CDN은 다음과 같은 주요 이점을 제공합니다:
- 성능 향상: 사용자와 물리적 거리를 단축시켜 웹 콘텐츠의 로딩 시간을 줄임으로써 전반적인 사용자 경험을 향상시킵니다.
- 보안 강화: 거대한 네트워크 용량과 분산 서비스 아키텍처를 활용하여 DDoS 공격과 같은 보안 위협으로부터 웹 사이트를 보호합니다.
- 가용성 증가: 고도로 분산된 서버 네트워크를 통해 하드웨어 오류에 대한 저항력을 강화하고, 웹 서비스의 지속적인 가용성을 보장합니다.
CDN의 이러한 이점은 웹 사이트와 온라인 서비스를 운영하는 기업 또는 개인에게 매우 중요합니다. 이를 통해 사용자 만족도를 높이고, 보안 위험을 최소화하며, 서비스의 안정성을 최대화할 수 있습니다.
따라서 현대의 디지털 환경에서 CDN은 필수적인 인프라 구성 요소로 자리 잡고 있습니다.
참고 :
[1] velog - CDN은 어떻게 작동할까 (https://velog.io/@wjdghks963/CDN%EC%9D%80-%EC%96%B4%EB%96%BB%EA%B2%8C-%EC%9E%91%EB%8F%99%ED%95%A0%EA%B9%8C)
[2] Amazon Web Services - CDN이란 무엇인가요? - 콘텐츠 전송 네트워크 설명 (https://aws.amazon.com/ko/what-is/cdn/)
[3] IBM - CDN(Content Delivery Network)이란? (https://www.ibm.com/kr-ko/topics/content-delivery-networks)
[4] Cloudflare - CDN 작동방식 및 웹호스팅과의 차이 (https://www.cloudflare.com/ko-kr/learning/cdn/what-is-a-cdn/)