📌 CDN, 콘텐츠 전송 네트워크에 대해 알아보자!
![](/assets/img/cs/2022-07-12/delivery.gif)
주제: CDN (Content Delivery Network)
콘텐츠 전송 네트워크, CDN
지리적 제약 없이 전 세계 사용자에게 빠르고 안전하게 콘텐츠를 전송할 수 있는 콘텐츠 전송 기술
원리
전 세계에 많은 캐시서버(PoP, Points of presence)를 분산시켜두고, 사용자에게 가까운 캐시서버에서 필요한 파일을 제공하게 하는 것.
실제 서버에서도 제공이 가능하지만 그럴 필요가 없다. 왜냐하면 이미 가까운 서버에 필요한 파일들이 존재하기 때문.
실제 서버 내의 모든 파일을 복붙해둔 개념이 아니고 자주 쓰는 파일들만 복붙함.
해당 정보가 필요하면 분산된 캐시서버에서
상황에 따른 CDN 요청 처리
CDN서버가 최초요청을 받았을 경우
실제 서버에서 필요한 파일을 유저에게 제공하고, 해당 파일을 캐싱하여 CDN서버에 저장한다.
CDN서버가 동일한 요청을 받았을 경우
CDN에서 한 번 처리된 파일은 캐싱되어 CDN서버가 만료될 때까지 보관하기 때문에 실제 서버에서 데이터를 제공하는 것이 아닌 CDN에서 응답함.
CDN서버가 파일을 찾는데 실패한 경우
다른 CDN서버에서 해당 파일을 찾아 유저에게 응답함.
CDN서버가 파일을 사용할 수 없거나 오래된 경우
서버에 대한 요청을 프록시로 작동하여 향후 요청에 대해 응답할 수 있도록 새로운 파일 저장
장점
- 보안 개선: DDOS 악성 공격으로부터 웹 사이트 보호
- 웹 사이트 로딩 시간 개선: 제일 가까운 CDN 서버를 사용하기 때문에 로딩시간이 빨라진다.
- 대역폭 비용 절감: 캐싱, 기타 최적화를 통해 서버가 제공해야 하는 데이터 양을 줄인다.
- 콘텐츠 가용성 및 이중화: CDN은 분산되어 있기 때문에, 대규모 트래픽에 강하고 하드웨어 장애를 견딜 수 있다.
단점
- 캐시서버가 많이 존재하지 않는 경우> SPOF(단일 장애점) 문제 발생 (한 서버가 중단되면 전체 시스템이 중단)
- 특정 국가나 지역만 타게팅하는 웹 서비스를 운영할 경우, 불필요한 연결 지점이 늘어나기 때문에 웹 사이트의 성능 저하를 불러온다.
CDN의 아키텍처 구분
Push방식: 원본 서버가 새로 업로드된 콘텐츠를 전 세계에 위치한 PoP 서버로 전달하는 방식
원본서버 > 새로운 데이터 > PoP서버 (새로운 데이터를 PoP서버에 push한다.)
- 장점: 적시에 콘텐츠를 제공할 수 있으며, 콘텐츠가 업로드되거나 업데이트되어도 전송 오류가 발생할 확률이 적다.
- 단점: 최초 구성 및 설정에 비교적 많은 시간이 걸린다.
Pull방식: PoP 서버가 원본 서버에서 콘텐츠를 가져오는 방식
- 장점: Push 방식보다 최초 PoP 서버를 구성하기가 비교적 쉽고 사용자의 요청이 있는 경우에만 원본 서버로부터 데이터를 가져오기 때문에 서버 자원을 절약할 수 있다.
- 단점: 웹 페이지를 처음 방문하는 경우 PoP 서버가 Origin 서버에서 데이터를 가져오는 과정이 필요해 때때로 응답 속도가 느려질 수 있다.
분산형 아키텍처(Scattered Architecture): 비교적 사양이 낮은 서버를 구성, 특정 지역에 PoP 여러 개를 밀집해 운영하는 구성 방식
- 장점: 사용자와 서버 간의 물리적인 거리를 최소화했기 때문에 지연 시간을 최소화할 수 있다
- 단점: PoP가 너무 많아질 경우 이를 유지하는데 많은 비용을 지출해야 하고, 너무 많은 연결 지점으로 인해 특정 사용자에게는 오히려 지연 시간이 더 늘어날 수도 있다.
통합형 아키텍처(Consolidated Architecture): 고용량 서버로 구성된 소수의 PoP를 주요 데이터센터에 배치해 운영하는 구성 방식
- 장점: 운영하는 PoP 수가 분산형보다 적기 때문에 비용을 절감할 수 있고, 보안상 이점도 갖는다.
- 단점: 고용량 PoP의 경우 분산형보다 복잡성이 높아 콘텐츠를 구성하고 배포하는 데 상대적으로 많은 시간이 걸리고, 그로 인해 네트워크를 신속하게 확장하기도 어렵다.
CDN 서비스를 제공하고 있는 업체
아마존: Amazon CloudFront
SK broadband: CDN
다우기술: CDN
… 등등 여러 기업이 있음
출처
https://www.cloudflare.com/ko-kr/learning/cdn/what-is-a-cdn/
https://snoop-study.tistory.com/64
https://www.alibabacloud.com/ko/knowledge/what-is-cdn
http://i5on9i.blogspot.com/2014/05/cdn-proxy-server.html
https://stackoverflow.com/questions/7651458/how-to-get-started-with-web-caching-cdns-and-proxy-servers