개발자공부일기
CDN이란? 본문
CDN(Content Delivery Network)이란?
CDN(Content Delivery Network)은 지리적으로 분산된 서버들을 연결한 네트워크로서 웹 컨텐츠의 복사본을 사용자에 가까운 곳에 두거나 동적 컨텐츠(예: 라이브 비디오 피드)의 전달을 활성화하여 웹 성능 및 속도를 향상할 수 있게 합니다.
각 CDN 서버는 이른바 "네트워크 에지(네트워크에서 데이터가 생성되고 소비되는 사용자 또는 장치와 가까운 지점을 의미합니다 )"에 위치합니다. 웹사이트의 출처라 할 수 있는 호스트 서버와 비교하면 사용자와의 거리가 더 가깝습니다. 이러한 이유로 CDN 서버는 흔히 "에지 서버"로 불리곤 합니다. 각 서버는 호스트 서버에 있던 웹 컨텐츠(HTML 파일, 이미지, 오디오, 비디오, 애플리케이션 등) 일부의 복사본을 저장하거나 캐싱합니다. CDN은 이 컨텐츠와 사용자 간의 거리를 줄여 웹사이트 퍼블리셔가 성능을 향상하고, 사용자가 경험하는 로딩 시간을 단축하고, 대역폭 소비 및 비용을 관리할 수 있게 합니다.
CDN의 이점
웹 퍼블리셔는 CDN을 통해 로딩 시간을 단축하고 대역폭 사용량을 줄이는 것을 비롯하여 여러 이점을 누릴 수 있습니다.
웹 퍼블리셔를 위한 연결 기능 및 확장성 강화: CDN은 사이트 사용자의 컨텐츠 로딩 시간을 단축합니다. 그러면 웹 퍼블리셔는 페이지 조회수가 늘고 트래픽이 급증하며 고객 참여가 활성화되고 사이트 이탈이 감소하는 효과를 거둡니다.
대역폭 사용량 감축 : 웹 호스트는 원래 서버로부터 전송되는 데이터를 기준으로 요금을 부과합니다. CDN은 사용자와 더 가까운 곳에 컨텐트의 복사본을 저장함으로써 원래 서버로부터의 데이터 전송량을 줄입니다. 그러면 해당 기업의 대역폭 사용량 및 비용이 절약됩니다.
레이턴시 단축: 레이턴시(latency)란 시스템에 데이터를 요청하는 시점과 시스템에서 그에 응답하여 데이터를 보내기 시작하는 시점 사이의 지연 시간을 의미합니다. 웹 컨텐츠를 요청하는 사용자와 이를 제공하는 서버 간의 거리가 길수록 레이턴시가 늘어날 수 있습니다. CDN 서버는 사용자와 더 가까운 곳에 웹 컨텐츠를 저장하므로, 레이턴시를 단축하고 성능을 향상할 수 있습니다.
트래픽 급증에 더 효과적으로 대응: 컨텐츠 수요가 예상대로, 또는 뜻밖에 급증할 수 있습니다. CDN에서는 로드 밸런싱을 사용하여 이러한 수요를 여러 서버에 분산시킴으로써 하나의 서버에 과부하가 일어나는 것을 방지합니다.
아웃소싱 인프라 지원: CDN을 활용하는 기업에서는 지리적으로 분산된 서버 네트워크를 직접 구축하고 유지 관리하느라 시간, 인력, 비용을 쓸 필요가 없습니다.
보안 강화: CDN에서는 분석 및 자동화 툴을 활용하여 분산형 서비스 거부(DDoS) 공격, MITM(man-in-the-middle) 공격, 방화벽 문제 등을 밝혀낼 수 있습니다.
사용자 만족도 상승: 로딩 속도 저하, 미디어 재생 및 애플리케이션 응답 관련 문제 등은 사용자가 웹사이트를 이탈하거나 회피하는 주된 이유입니다. CDN을 사용하면 이러한 성능 문제 중 일부를 예방하거나 줄일 수 있으며, 그러면 컨텐츠 소비자가 사이트의 대화형 서비스에 만족할 가능성이 커집니다.
더 효과적으로 컨텐츠 서비스: CDN으로 더 빨리 컨텐츠를 제공할 뿐만 아니라 제공되는 컨텐츠의 품질도 향상할 수 있습니다. 비디오 재생, 화상 통화, 라이브 비디오 스트리밍에서는 느린 전송 속도가 걸림돌이 되며, 그로 인해 지터(jitter)(데이터 패킷 전송 간 지연 시간(Latency)의 변동)가 발생할 수 있습니다. CDN은 컨텐츠와 사용자 간의 거리를 단축하고 트래픽 로드 밸런싱으로 라우터나 서버의 과부하를 방지하므로 도움이 됩니다.
CDN의 작동 방식
콘텐츠 전송 네트워크(CDN)는 여러 지리적 위치에 접속 지점(POP) 또는 CDN 엣지 서버 그룹을 설정하는 방식으로 작동합니다. 지리적으로 분산된 이 네트워크는 캐싱, 동적 가속 및 엣지 로직 계산의 원리를 기반으로 작동합니다.
캐싱
캐싱은 더 빠른 데이터 액세스를 위해 동일한 데이터의 여러 복사본을 저장하는 프로세스입니다. 컴퓨팅에서 캐싱의 원리는 모든 유형의 메모리 및 스토리지 관리에 적용됩니다. CDN 기술에서 이 용어는 네트워크의 여러 서버에 정적 웹 사이트 콘텐츠를 저장하는 프로세스를 의미합니다. CDN에서 캐싱은 다음과 같이 작동합니다.
- 지리적으로 멀리 떨어진 웹 사이트 방문자는 사이트에서 정적 웹 콘텐츠를 처음 요청합니다.
- 요청이 웹 애플리케이션 서버 또는 오리진 서버에 도달합니다. 오리진 서버는 원격 방문자에게 응답을 보냅니다. 또한 해당 방문자와 지리적으로 가장 가까운 CDN POP(네트워크 에지와 같은의미)에 응답 복사본을 보냅니다.
- CDN POP 서버는 복사본을 캐싱된 파일로 저장합니다.
- 다음에 해당 방문자 또는 해당 위치에 있는 다른 방문자가 동일한 요청을 하면, 오리진 서버가 아닌 캐싱 서버가 응답을 보냅니다.
동적 가속
동적 가속은 웹 애플리케이션과 클라이언트 사이의 중개 CDN 서버로 인해 발생하는 동적 웹 콘텐츠 요청에 대한 서버 응답 시간을 단축하는 것입니다. 사용자 요청이 있을 때마다 콘텐츠가 변경될 수 있기 때문에 동적 웹 콘텐츠에서는 캐싱이 제대로 작동하지 않습니다. CDN 서버는 모든 동적 요청에 대해 오리진 서버와 다시 연결해야 하지만 자신과 오리진 서버 간의 연결을 최적화하여 프로세스를 가속화합니다.
- 클라이언트가 인터넷을 통해 웹 서버로 직접 동적 요청을 보내는 경우 네트워크 지연 시간으로 인해 요청이 손실되거나 지연될 수 있습니다. 보안 검증을 위해 연결을 열고 닫는 데에도 시간이 걸릴 수 있습니다.
- 반면, 근처의 CDN 서버가 요청을 오리진 서버로 전달할 경우, 신뢰할 수 있는 지속적인 연결이 이미 설정되었을 것입니다. 예를 들어 다음과 같은 기능을 통해 이들 간의 연결을 더욱 최적화할 수 있습니다:
- 지능형 라우팅 알고리즘
- 오리진에 대한 지리적 근접성
- 클라이언트 요청을 처리할 수 있으므로 클라이언트 요청을 줄일 수 있습니다.
엣지 로직 계산
클라이언트와 서버 간의 통신을 단순화하는 논리적 계산을 수행하도록 CDN 에지 서버를 프로그래밍할 수 있습니다. 예를 들어 이 서버는 다음을 수행할 수 있습니다:
- 사용자 요청을 검사하고 캐싱 동작을 수정합니다.
- 잘못된 사용자 요청을 확인하고 처리합니다.
- 응답하기 전에 콘텐츠를 수정하거나 최적화합니다.
웹 서버와 네트워크 엣지 간에 애플리케이션 로직을 배포하면 개발자가 오리진 서버의 컴퓨팅 요구 사항을 오프로드하고 웹 사이트 성능을 높이는 데 도움이 됩니다.
'TIL(Today I Learned)' 카테고리의 다른 글
DNS, 3-way Handshake, SSL/TLS (0) | 2024.12.12 |
---|---|
IP란? (0) | 2024.12.11 |
OSI 데이터링크계층 (0) | 2024.12.09 |
OSI물리계층 (0) | 2024.12.06 |
reduce의 다양한 쓰임새 (0) | 2024.12.06 |