블로그 이사합니다
아래에서 확인 가능합니다.
CDN(Contents Delivery Network)란?
CDN(Contents Delivery Network)이란 데이터 사용량이 많은 애플리케이션의 웹 페이지 로드 속도를 높이는 상호 연결된 서버 네트워크이다.
사용자는 웹 사이트를 방문할 때 해당 웹 사이트 서버의 데이터가 인터넷을 통해 사용자의 컴퓨터에 도달하게 된다. 이때 사용자가 해당 서버에서 멀리 떨어져 있는 경우 동영상이나 이미지와 같은 대용량 파일을 로드할 때 많은 시간이 걸리게 된다.
반면 사용자와 가까운 거리에 있는 CDN 서버에 웹 사이트 콘텐츠를 저장해놓으면 사용자는 훨씬 빠른 속도로 콘텐츠를 로드할 수 있다.
즉, CDN은 콘텐츠 전송 시간을 줄여주는 네트워크이다.
CDN의 동작 방식
CDN의 목적은 지연 시간을 줄이는 것이다. 지연 시간이란 웹 페이지 혹은 비디오 스트리밍 콘텐츠 등이 디바이스에 완전히 로딩되기 전에 발생하는 지연 시간을 말한다. 콘텐츠가 사용자에게 도달하기 위해 이동해야 하는 물리적 거리를 줄여 지연 시간을 줄이는 CDN도 있다. 따라서 CDN이 광범위하고 넓게 분산되어 있을수록 웹 콘텐츠를 보다 빠르고 안정적으로 전송할 수 있다.
이러한 CDN은 여러 지리적 위치에 접속 지점(POP) 또는 CDN 엣지 서버 그룹을 설정하는 방식으로 동작한다. 지리적으로 분산된 이 네트워크는 캐싱, 동적 가속 및 엣지 로직 계산의 원리를 기반으로 동작한다.
캐싱
캐싱은 더 빠른 데이터 접근을 위해 동일한 데이터의 여러 복사본을 저장하는 프로세스이다. CDN 기술에서 캐싱은 네트워크의 여러 서버에 정적 웹 사이트 콘텐츠를 저장하는 프로세스를 의미한다. CDN에서 캐싱은 다음과 같이 동작한다.
- 지리적으로 멀리 떨어진 웹 사이트 방문자가 사이트에 정적 웹 콘텐츠를 요청한다.
- 요청이 웹 애플리케이션 서버 또는 Origin 서버에 도달한다. Origin 서버는 원격 방문자에게 응답을 보낸다. 또한 해당 방문자와 지리적으로 가장 가까운 CDN POP에 응답 복사본을 보낸다.
- CDN POP 서버는 복사본을 캐싱된 파일로 저장한다.
- 다음에 해당 방문자 또는 해당 위치에 있는 다른 방문자가 동일한 요청을 하면, Origin 서버가 아닌 캐싱 서버가 응답을 보낸다.
동적 가속
동적 가속은 웹 애플리케이션과 클라이언트 사이의 중개 CDN 서버로 인해 발생하는 동적 웹 콘텐츠 요청에 대한 서버 응답 시간을 단축하는 것이다. 사용자 요청이 있을 때마다 콘텐츠가 변경될 수 있기 때문에 동적 웹 콘텐츠에서는 캐싱이 제대로 동작하지 않는다. CDN 서버는 모든 동적 요청에 대해 Origin 서버와 다시 연결해야 하지만 자신과 Origin서버 간의 연결을 최적화하여 프로세스를 가속화한다.
클라이언트가 인터넷을 통해 웹 서버로 직접 동적 요청을 보내는 경우 네트워크 대기 시간으로 인해 요청이 손실되거나 지연될 수 있다. 보안 검증을 위해 연결을 열고 닫는 데에도 시간이 걸릴 수 있다. 반면, 근처의 CDN 서버가 요청을 Origin 서버로 전달할 경우, 신뢰할 수 있는 지속적인 연결이 이미 설정되어 있을 것이다. 예를 들어 다음과 같은 기능을 통해 이들 간의 연결을 더욱 최적화할 수 있다.
- 지능형 라우팅 알고리즘
- Origin 서버에 대한 지리적 근접성
- 클라이언트 요청을 처리할 수 있으므로 클라이언트 요청을 줄일 수 있다.
참고)
엣지 로직 계산
클라이언트와 서버 간의 통신을 단순화하는 논리적 계산을 수행하도록 CDN 엣지 서버를 프로그래밍할 수 있다. 예를 들어 이 서버는 다음을 수행할 수 있다.
- 사용자 요청을 검사하고 캐싱 동작을 수정한다.
- 잘못된 사용자 요청을 확인하고 처리한다.
- 응답하기 전에 콘텐츠를 수정하거나 최적화한다.
CDN의 장점
CDN을 사용하면 아래와 같은 장점을 얻을 수 있다.
1. 페이지 로드 시간 단축
가까운 CDN 서버에서 콘텐츠를 전송해주기 때문에 페이지 로드 시간을 단축 할 수 있다.
2. 대역폭 비용절감
-> CDN은 캐싱 및 기타 최적화를 통해 Origin 서버가 제공해야하는 데이터의 양을 줄여 웹 사이트 소유자의 호스팅 비용을 절감할 수 있다.
3. 콘텐츠 가용성 제공
-> CDN 서비스는 대용량 트래픽을 처리하고 웹 서버의 부하를 줄일 수 있다.
4. 웹 사이트 보안 강화
-> DDoS 공격과 같은 가짜 트래픽을 여러 중간 서버 간에 분산하여 Origin 서버에 미치는 영향을 줄일 수 있다.
참고
1. https://www.imperva.com/learn/performance/what-is-cdn-how-it-works/
2. https://aws.amazon.com/ko/what-is/cdn/
'Computer Science > [네트워크]' 카테고리의 다른 글
[네트워크] NAT(Network Address Translation)란? NAT의 동작 과정, NAT의 종류 (0) | 2023.05.23 |
---|---|
[네트워크] 스위치와 라우터의 차이 (0) | 2023.02.09 |
[네트워크] NAC(Network Access Control)이란? NAC vs 방화벽(Firewall) (0) | 2022.06.10 |
[네트워크] 웹사이트 접속 과정에 대하여 (네트워크 과목 총 정리) | 주소창에 www.google.com을 입력하면 생기는 일 (1) | 2022.03.12 |
[네트워크] MAC주소와 ARP(Address Resolution Protocol)란? | MAC 주소의 필요성 (0) | 2022.03.09 |