Intro
평소에 궁금하거나 정리가 필요했던 내용을 작성하는 기간을 가지려고 한다. 첫번재로 CDN에 대해 알아보자.
TOC
CDN이란?
CDN은 Content Delivery Network의 약자로, 데이터 사용량이 많은 애플리케이션의 웹 페이지 로드 속도를 높이는 상호 연결된 서버 네트워크다(CDN은 콘텐츠 전송 네트워크 또는 콘텐츠 배포 네트워크를 의미할 수 있다.).
CDN은 서버와 사용자 사이의 물리적인 거리를 줄여 콘텐츠 로딩에 소요되는 시간을 최소화한다. 웹 서버에 대한 웹 트래픽을 줄이고, 대역폭 소비를 줄이며, 애플리케이션의 사용자 환경을 개선한다.
사용자가 웹 사이트를 방문할 때 해당 웹 사이트 서버의 데이터는 사용자의 컴퓨터에 도달하기 위해 인터넷을 통해 이동해야 합니다. 사용자가 해당 서버에서 멀리 떨어져 있는 경우 동영상 또는 웹 사이트 이미지와 같은 대용량 파일을 로드하는 데 시간이 오래 걸립니다. 대신 웹 사이트 콘텐츠는 지리적으로 사용자와 가까운 CDN 서버에 저장되며 컴퓨터에 훨씬 빨리 도달합니다.
Pros(이점)
- 페이지 로드 시간 단축: CDN은 사용자에게 가까운 서버의 콘텐츠를 제공함으로써 대기 시간과 로드 시간을 줄여 더 빠르고 응답성이 뛰어난 웹사이트를 만든다.
- 글로벌 제공: 여러 지리적 지역에 위치한 CDN을 통해 기업은 대기 시간을 줄이고, 안정성을 높여 전 세계 사용자에게 콘텐츠를 제공한다.
- 콘텐츠 가용성 제고: 한 번에 너무 많은 방문자가 방문하거나 네트워크 하드웨어 오류가 발생하면 웹 사이트가 중단될 수 있다. CDN 서비스는 더 많은 웹 트래픽을 처리하고 웹 서버의 로드를 줄일 수 있다. 또한 하나 이상의 CDN 서버가 오프라인으로 전환되면 다른 운영 서버가 해당 서버를 대체하여 서비스가 중단되지 않도록 할 수 있다.
- 대역폭 비용 절감: 들어오는 모든 웹 사이트 요청은 네트워크 대역폭을 사용하기 때문에 대역폭 비용이 상당히 높다. 캐싱 및 기타 최적화를 통해 CDN은 오리진 서버가 제공해야 하는 데이터의 양을 줄여 웹 사이트 소유자의 호스팅 비용을 절감할 수 있다.
- 웹 사이트 보안 강화: 분산 서비스 거부(DDoS) 공격보호, SSL/TLS 암호화, 웹 애플리케이션 방화벽과 같은 추가 보안 기능을 제공하여 다양한 사이버 위협으로부터 웹사이트와 애플리케이션을 보호한다.
컴퓨터공학에서는 데이터의 최대 전송 속도를 대역폭이라고 한다.
전송할 수 있는 인터넷 콘텐츠는 어떤 것들이 있나요?
-
정적 콘텐츠
정적 콘텐츠는 사용자 간에 변경되지 않는 웹 사이트 데이터. 웹 사이트 헤더 이미지, 로고 및 글꼴 스타일은 모든 사용자에게 동일하게 유지되며 기업이 자주 변경하지 않는 것들. 정적 데이터는 수정, 처리 또는 생성할 필요가 없으며 CDN에 저장하는게 이상적이다. -
동적 콘텐츠
소셜 미디어 뉴스 피드, 날씨 보고서, 로그인 상태 및 채팅 메시지와 같은 동적 콘텐츠는 웹 사이트 사용자마다 다르다. 이 데이터는 사용자의 위치, 로그인 시간 또는 사용자 기본 설정에 따라 변경되며 웹 사이트는 모든 사용자와 모든 사용자 상호 작용에 대한 데이터를 생성해야 한다.
어떻게 작동하나?
콘텐츠 전송 네트워크(CDN)는 여러 지리적 위치에 접속 지점(POP) 또는 CDN 엣지 서버 그룹을 설정하는 방식으로 작동한다. 지리적으로 분산된 이 네트워크는 캐싱, 동적 콘텐츠 가속 및 엣지 로직 계산의 원리를 기반으로 작동한다.
캐싱
캐싱은 더 빠른 데이터 액세스를 위해 동일한 데이터의 여러 복사본을 저장하는 프로세스다. 컴퓨팅에서 캐싱의 원리는 모든 유형의 메모리 및 스토리지 관리와 유사하다. CDN 기술에서 이 용어는 네트워크의 여러 서버에 정적 웹 사이트 콘텐츠를 저장하는 프로세스를 의미한다.
- 지리적으로 멀리 떨어진 웹 사이트 방문자는 사이트에서 정적 웹 콘텐츠를 처음 요청.
- Request가 웹 애플리케이션 서버 또는 오리진 서버에 도달하며. 오리진 서버는 원격 방문자에게 Respose를 보낸다. 또한 해당 방문자와 지리적으로 가장 가까운 CDN POP에 응답 복사본을 보낸다.
- CDN POP 서버는 복사본을 캐싱된 파일로 저장한다.
- 다음에 해당 방문자 또는 해당 위치에 있는 다른 방문자가 동일한 요청을 하면, 오리진 서버가 아닌 캐싱 서버가 응답을 보낸다.
동적 콘텐츠 가속(Dynamic Content Acceleration)
동적 콘텐츠 가속은 웹 애플리케이션과 클라이언트 사이의 중개 CDN 서버로 인해 발생하는 동적 웹 콘텐츠 요청에 대한 서버 응답 시간을 단축하는 것이다. 사용자 요청이 있을 때마다 콘텐츠가 변경될 수 있기 때문에 동적 웹 콘텐츠에서는 캐싱이 제대로 작동하지 않는다. CDN 서버는 모든 동적 요청에 대해 오리진 서버와 다시 연결해야 하지만 자신과 오리진 서버 간의 연결을 최적화하여 프로세스를 가속화한다.
클라이언트가 인터넷을 통해 웹 서버로 직접 동적 요청을 보내는 경우 네트워크 지연 시간으로 인해 요청이 손실되거나 지연될 수 있다. 보안 검증을 위해 연결을 열고 닫는 데에도 시간이 걸릴 수 있다. 반면, 근처의 CDN 서버가 요청을 오리진 서버로 전달할 경우, 신뢰할 수 있는 지속적인 연결이 이미 설정되었을 것이다. 예를 들어 다음과 같은 기능을 통해 이들 간의 연결을 더욱 최적화할 수 있다.
엣지 로직
클라이언트와 서버 간의 통신을 단순화하는 논리적 계산을 수행하도록 CDN Edge 서버를 프로그래밍할 수 있다.
- 사용자 요청을 검사하고 캐싱 동작을 수정.
- 잘못된 사용자 요청을 확인하고 처리.
- 응답하기 전에 콘텐츠를 수정하거나 최적화.
- 웹 서버와 네트워크 엣지 간에 애플리케이션 로직을 배포하면 개발자가 오리진 서버의 컴퓨팅 요구 사항을 Offload하고 웹 사이트 성능을 높이는 데 도움된다.
CDN 활용 사례
CDN은 일반적으로 대량의 트래픽을 처리하거나 전 세계적으로 콘텐츠를 제공하는 웹 사이트 및 온라인 서비스에서 사용한다. 미디어 스트리밍 플랫폼, 전자 상거래 웹사이트, 뉴스 포털 및 기타 콘텐츠가 많은 사이트에 특히 유용하다(ex. Netflix, Youtube, Airbnb 등등)
[읽을거리] CDN 기반 DDoS 방어란?
제대로 설정된 고급 CDN(콘텐츠 전송 네트워크)은 DDoS 공격을 방어하는 데 도움이 된다. 웹사이트 보안 서비스 제공업체가 CDN을 사용해 HTTP 및 HTTPS 프로토콜을 사용하는 트래픽을 특별히 단속하면 해당 URL을 대상으로 하는 모든 DDoS 공격을 네트워크 엣지에서 차단할 수 있다.
즉, Layer 3 및 Layer 4 DDoS 공격은 웹 Port 80 및 443을 대상으로 하지 않기 때문에 즉시 방어할 수 있다.