CDN(Content Delivery Network)은 전 세계에 분산되어 있는 서버들을 통해 사용자가에게 웹 컨텐츠를 빠르고 효율적으로 제공하는 기술이다.
사용자가 웹사이트를 방문할 때 해당 웹사이트 서버의 데이터는 사용자의 컴퓨터에 도달하기 위해 인터넷을 통해 이동해야 한다. 하지만 사용자가 해당 서버에 물리적으로 멀리 떨어져있는 경우 동영상 또는 웹사이트 이미지와 같은 대용량 파일을 로드하는데 시간이 오래 걸린다. 대신 웹사이트 콘텐츠는 지리적으로 사용자와 가까운 CDN 서버에 저장되며 컴퓨터에 훨씬 빨리 도달한다.
콘텐츠 전송 네트워크(CDN)의 주 목적은 대기 시간을 줄이거나 네트워크 설계로 인해 발생하는 통신 지연을 줄이는 것이다. 인터넷의 글로벌하고 복잡한 특정으로 인해 웹사이트(서버)와 사용자(클라이언트) 간의 통신 트래픽은 아주 먼 물리적 거리를 이동해야 한다. 또한 클라이언트에서 서버로 요청을 보내고 응답을 반환하는 양방향 통신이다. CDN은 클라이언트와 웹사이트 서버 간에 중간 서버를 두어 효율을 높인다.
이러한 CDN 서버는 클라이언트-서버 통신의 일부를 관리한다. 웹 서버에 대한 웹 트래픽을 줄이고, 대역폭 소비를 줄이며, 애플리케이션의 사용자 환경을 개선한다.
정적 콘텐츠는 사용자 간에 변경되는 않는 웹사이트 데이터이다. 웹사이트 헤더 이미지, 로고 및 글꼴 스타일은 모든 사용자에게 동일하게 유지되며 기억이 자주 변경하지 않는다. 정적 데이터는 수정, 처리 또는 생성할 필요가 없으며 CDN에 저장하는게 이상적이다.
소셜 미디어 뉴스 피드, 날씨 보고서, 로그인 상태 및 채팅 메시지와 같은 동적 콘텐츠는 웹사이트 사용자마다 다르다. 이 데이터는 사용자의 위치, 로그인 시간 또는 사용자 기본 설정에 따라 변경되며 웹사이트는 모든 사용자와 모든 사용자 상호 작용에 대한 데이터를 생성해야 한다.
콘텐츠 전송 네트워크(CDN)는 여러 지리적 위치에 접속 지점(POP) 또는 CDN 엣지 서버 그룹을 설정하는 방식으로 작동한다. 지리적으로 분산된 이 네트워크는 캐싱, 동적 가속 및 엣지 로직 계산의 원리를 기반으로 작동한다.
캐싱은 더 빠른 데이터 액세스를 위해 동일한 데이터의 여러 복사본을 저장하는 프로세스이다. 컴퓨팅에서 캐싱의 원리는 모든 유형의 메모리 및 스토리지 관리에 적용된다. CDN 기술에서 이 용어는 네트워크의 여러 서버에 정적 웹사이트 콘텐층를 저장하는 프로세스를 의미한다. CDN에서 캐싱은 다음과 같이 작동한다.
CDN에서 실제 물리적 서버 역할을 하는 것은 CDN POP 서버이고, 첫 요청만 오리진 서버에서 처리하고 이후에 같은 위치에서 오는 요청은 모두 CDN POP 서버가 처리하게 된다.
동적 가속은 웹 애플리케이션과 클라이언트 사이의 중개 CDN 서버로 인해 발생하는 동적 웹 콘텐츠 요청에 대한 서버 응답 시간을 단축하는 것이다. 사용자 요청이 있을 때마다 콘텐츠가 변경될 수 있기 때문에 동적 웹 콘텐츠에서는 캐싱이 제대로 작동하지 않는다. CDN 서버는 모든 동적 요청에 대해 오리진 서버와 다시 연결해야 하지만 자신과 오리진 서버 간의 연결을 최적화하여 프로세르를 가속화한다.
쉽게 말해, 웹사이트에 접속할 때마다 바뀌는 부분은 캐싱된 내용을 사용할 수 없으니, 그때그때 오리진 서버에서 변경된 내용을 가져온다는 것이다. 동적 가속은 오리진 서버에서 내용을 가져오기 위해 최적화된 고속도로를 뚫어주는 역할을 한다.
클라이언트가 인터넷을 통해 웹 서버로 직접 동적 요청을 보내는 경우 네트워크 지연 시간으로 인해 요청이 손실되거나 지연될 수 있다. 보안 검증을 위해 연결을 열고 닫는 데에도 시간이 걸릴 수 있다. 반면, 근처의 CDN 서버가 요청을 오리진 서버로 전달할 경우, 신뢰할 수 있는 지속적인 연결이 이미 설정되었을 것이다.
예를 들어 다음과 같은 기능을 통해 이들 간의 연결을 더욱 최적화 할 수 있다.
클라이언트와 서버 간의 통신을 단순화하는 논리적 계산을 수행하도록 CDN 엣지 서버를 프로그래밍할 수 있다. 예를 들어 이 서버는 다름을 수행할 수 있다.
웹 서버와 네트워크 엣지 간에 애플리케이션 로직을 배포하면 개발자가 오리진 서버의 컴퓨팅 요구 사항을 오프로드하고 웹사이트 성능을 높이는데 도움이 된다.
CDN 서비스 | CloudFront | Amazon Web Services
Amazon CloudFront란 무엇입니까? - Amazon CloudFront
Amazon CloudFront는 뛰어난 성능, 보안 및 개발자 편의를 위해 구축된 콘텐츠 전송 네트워크(CDN) 서비스이다.
