SharedIT | 묻고 답하기(AMP)

CDN에 대한 궁금한 점 문의 드립니다 !

CDN의 정확한 사용목적이나 장점이 조금 궁금합니다.

단순하게 알고 있는 내용은, 

국내에서 운영하는 서비스  콘텐츠를 해외에서 이용  서비스 페이지 또는 콘텐츠에 대한 응답이 느릴  있으니 해당 국가 또는 가까운 리전에 CDN을 구축하여 페이지 로드 시간 단축 시키고 트래픽을 감소시켜서 트래픽과 대역폭 소비를 줄이고 사용자 입장에서 요청/응답 받을  원할한 서비스  콘텐츠를 제공한다 정도 입니다.


제가 궁금한 부분은 한국과 미국을 예로 질문 드리겠습니다.

제가 이해한 CDN은 한국 운영서버에 콘텐츠를 미국 사용자가 이용  한국서버에 접속하여 서비스나 컨텐츠를 이용하려면 국가 간 네트워크 이슈로 지연이 발생하거나 오래걸릴  밖에 없기 때문에 미국 CDN서버를 구축하여 한국 운영서버의 콘텐츠를 미국 CDN서버와 동기화? 하는거라고 생각했는데, 이해한 게 다를까요?


이해한  맞다면 그냥 한국에 운영서버를 미국에 동일하게 운영서버로 구축하여 동기화하면 되는 거랑 cdn 용도랑 차이가 뭔가 싶어서요

대용량 컨텐츠나 대용량 데이터만 CDN에 저장하기 때문에 CDN이라고 이야기하는걸까요?


Tags : 태그가 없습니다.

4개의 답변이 있습니다.

deerokgo
  0 추천 | 약 한 달 전

CDN은 Contents Delivery Network의 약어가 되겠고요.

영화 등 대용량의 컨텐츠를 저장 할 수 있는 공간을 여러곳에 두어서 병목현상 없이 컨텐츠를 다운로드 받을 수 있게 지원하는 것입니다.

CDN에는 컨텐츠만 있다고 보시면 되겠고요.

CDN에 컨텐츠를 딜리버리 하는 어플리케이션은 별도의 소프트웨어로 중앙에 존재 한다고 보시면 됩니다.

해당 소프트웨어는 모든 CDN을 관리하고, 컨텐츠를 어떤 CDN에 배포할지 설정하고 관리 하게 됩니다.

또한 CDN에 있는 컨텐츠를 삭제 하는 기능도 제공을 하게 됩니다.

CDN을 몇개를 둘지, 어느 지역에 둘지 등등 많은 고민이 필요합니다.

CDN은 비용과 직결되기 때문이죠.

일반적인 CDN의 개념은 비슷하지만, 서비스를 제공하는 회사들은 각사가 제공하는 서비스와 이용형태 등을 분석하여 별도의 솔루션을 이용하는 경우가 많습니다.

넷플릭스도 오픈커넥트 어플라이언스 (OCA)라는 솔루션을 운영 하고 있습니다.

앵그리파파
  0 추천 | 약 한 달 전

이해하고 있는 부분이 어느정도는 맞습니다.

부연 설명을 덧붙인다면, CDN은 대기 시간을 줄이고 속도를 높여 사용자에게 웹 콘텐츠 전달을 개선하도록 설계되었습니다. 이는 다양한 지리적 위치에 분산된 서버에 콘텐츠의 캐시된 복사본을 저장하여 전달합니다.

사용자가 CDN 지원 웹사이트에 호스팅된 콘텐츠를 요청하면 CDN은 자동으로 사용자의 위치를 파악하고 CDN 네트워크에서 가장 가까운 서버에서 콘텐츠를 제공합니다. 이렇게 하면 데이터가 이동해야 하는 거리가 줄어들어 대기 시간이 줄어들고 성능이 향상됩니다.

또한, CDN은 일반적으로 고가용성과 안정성을 보장하기 위해 다양한 위치에 있는 여러 서버에 콘텐츠를 복제합니다. 그러나 이 복제는 자동으로 이루어지며 CDN 공급자가 관리합니다. CDN 사용자는 일반적으로 서로 다른 서버 간에 콘텐츠를 수동으로 동기화활 필요가 없습니다.

이 내용을 참고하여 문의한 글을 보면, 한국 서버와 미국 서버간의 콘텐츠 동기화에 있어서 이는 CDN을 사용하는 대신 고가용성을 위해 여러 위치에 중복 서버를 설정하는 기존 접근 방식과 더 유사합니다. 최종 목표는 유사할 수 있지만 구현 및 관리는 다릅니다.

CDN 사용 vs 기존 접근방식으로 비교 설명하자면, 

CDN은 일반적으로 최종 사용자에게 더 가까이 캐시되는 이점이 있는 정적 콘텐츠(동영상 및 SW와 같은 대용량 파일) 또는 자주 액세스하는 콘텐츠를 제공하는데 사용됩니다.  

반면, 중복 서버를 사용하는 기존 접근 방식은 서버 간 실시간 동기화가 필요한 동적 콘텐츠나 데이터베이스 기반 콘텐츠에 사용됩니다.

inside07 | 약 한 달 전

질문 드린 내용을 비교하면서 자세하게 설명해주셔서 너무 감사합니다 !!!

덕분에 이해하는 데 도움이 되었습니다.!

하나만 질문을 더 드리자면 마지막 내용에서 동적 콘텐츠나 데이터베이스 기반 콘텐츠의 경우도 CDN을 사용하는 경우가 있지 않나요?

앵그리파파 | 약 한 달 전

맞습니다. 경우에 따라, 

엣지컴퓨팅, API 가속, 데이터베이스 및 동적페이지 캐싱, 스트리밍 및 라이브 콘텐츠에도 CDN은 사용됩니다.

이러한 경우 CDN은 분산 네트워크 인프라를 활용하여 향상된 성능, 확장성 및 안정성을 제공하기 때문에 ...

그러나 애플리케이션의 특정 요구 사항을 고려하고 동적 또는 데이터베이스 기반 콘텐츠 전달에 적합한 기능을 제공하는 CDN 공급자를 선택하는 것이 중요합니다.

topkslee
  0 추천 | 약 한 달 전

최근 콘텐츠의 품질을 높음에 따라 웹 성능 이슈가 발생하기에 보다 빠른 서비스를

위한 목적이 크다고 할 수 있습니다.

또한 콘텐츠를 분산 배치한다는 것은 DDos와 같은 공격에 대비할 수 있는 장점도 있구요.

말씀하신것처럼 한국운영서버 + 미국운영서버 형태가 가져간것과 CDN이 비슷할 수 있습니다.

다만 운영상 CDN은 서비스비용 지불한만큼 분산콘텐츠네트워크 이용하는 것이고.

한국운영서버+미국운영서비 형태는 별도의 동기화, 도메인구성 등을 자체적으로 운영하는 식이죠.


CDN 사용에는 비용 및 관리 부담이 따르기때문에 웹사이트의 특성, 트래픽량, 비용 등을

고려해서 사용을 결정하는게 좋을 겁니다.


inside07 | 약 한 달 전

간단한 예로,

사이트에 대용량 동영상을 제공하고 있는데, 실제 사이트와 동영상 원본데이터는 한국서버에서 운영하고, 미국 cdn에는 동영상 원본 데이터의 캐시 데이터를 저장하게 설정하여 최종 사용자가 좀 더 원할하게 콘텐츠를 이용하기 위함이라고 생각하면 될까요? 

topkslee | 약 한 달 전

운영방법은 여러가지 형태가 있습니다.

운영서버에 컨텐츠를 배포하면 CDN cache server로 동기화하는 방식도 있구요.

처음부터 CDN cache server로 업로드 하여 동기화하는 방식도 있습니다.

inside07 | 약 한 달 전

답변 감사합니다 !!!

wansoo
  0 추천 | 약 한 달 전

CDN ( Content Delivery Network )이라는 건...

기본 개념은 일종의 캐시 서버, 접속하는 클라이언트 지역에 위치하는 프락시 서버 개념이라 할 수 있습니다.

원거리에있는 서버가 제공하는 내용을 클라이언트 지역에 있는 서버가 바로 제공할 수 있도록 해주는 역할이 되겠고요.

캐시 서버, 프락시 서버라는 게... 해당 프락시 서버를 통해서 어떤 클라이언트가 한번 요청한 내용을 임시 저장하고 있다가 해당 클라이언트 포함한 해당 프락시 서버를 다른 클라이언트가 요청할 경우에 서버로 부터 내용을 가져와서 제공하는 것이 아니라 자신이 가지고 있는 정보를 바로 제공함으로 인해 신속하게 정보를 제공할 수 있는 역할을 해 주게 되는 것입니다.

CDN이 프락시 ( 캐시 ) 서버 개념을 기본으로 하면서 QoS 기능등을 통해서 최초 요청하는 내용이라도 원거리에 있는 서버로 부터 최적의 성능으로 자료를 가져오는 역할도 해 주게 되고요.

CDN이 세계 곳곳에 지역 프락시 서버를 두고서 운영되는 형식이 되기 때문에 일반 기업들이 해당 서비스를 흉내내기는 쉽지 않을 거라 생각되고요.

양쪽의 호스트-호스트간 단독 통신의 전송 속도 문제라면 SD-WAN, MPLS 등으로 방안을 찾아 보겠지만, 많은 일반 접속자들의 인터넷을 통한 접속 속도 향상에 대해서는 CDN이 최선의 방법이 아닐까 싶네요.

inside07 | 약 한 달 전

답변 감사합니다 !!