Computer Science/Network

[Network] CDN(Contents Delivery Network) 이해하기

HJChung 2021. 1. 17. 22:33

[CloudFront] CloudFront에 S3 버킷 배포하고 SSL Certificate설정에서 Amazon S3와 CloudFront로 정적 파일을 배포하는 과정에 대해서 정리하였었다.

AWS CloudFront는 전 세계의 정적/동적 웹 콘텐츠, 비디오 스트림 및 API를 안전하게 대규모로 전송할 수 있는 콘텐츠 전송 네트워크(CDN) 서비스이라서, 이를 사용하기 위해서는 CDN과 Cache에 대한 개념을 알아야하고, 이 부분에 대해서 공부가 더 필요하기 때문에 공부 후에 따로 정리해보겠다 라고도 적어놓은 바가 있다.

 

이 중 CDN에 대해 공부하고 이해한 바를 정리해본다.

 

내가 만든 서비스를 호스팅해주는 서버는 한국에 있고, 내 서비스가 전세계적으로 제공되고 있다고 하자. 이 때 많은 양의 파일과 데이터를 전 세계로 제공해야하는데, 한국 사용자에게는 빠르게 제공 가능하지만 저~기 미국에 있는 사용자에게는? 유럽의 사용자에게는? 서버는 미국, 유럽 유저의 요청을 받아서 한국에 있는 서버에서 데이터를 받아서 또 전달하게 된다.

이 때 물리적 거리가 멀기 때문에 어느정도 지연이 발생하게 될 텐데, 아무리 좋은 컨텐츠라고 해도 지연이 빈번하게 발생하면 유저는 더이상 그 서비스를 사용하지 않을 것이다.

 

결국 해법은 서버와 클라이언트 사이의 '거리'를 줄이는 것! 다수의 Cache Server를 여러 개의 지역에 배치하여 트래픽을 분산시키는 방식이 필요하다.

 

(예를 들면 한국에 있는) Origin Server가 모든 데이터의 원본을 구성하고 (여러 지역에 분산되어 있는, 예를 들어 미국 근처, 유럽 근처) 나머지 Cache Server들이 Origin Server로부터 데이터를 가져와 근처(예를 들어 유럽, 미국)의 사용자에게 제공하는 것이다.

그리고 이를 전문적으로 해주는 서비스를 CDN(Contents Delivery Network/Content Distribution Network)서비스라고 부르고, CDN 서비스를 제공하는 것 중 대표적인 것이 AWS CloudFront인 것이다.

출처:  https://mygumi.tistory.com/67  [마이구미의 HelloWorld]

정리하면, CDN 서비스는 각 지역에 Cache Server(PoP, Points of presence)를 분산 배치해, 근접한 사용자의 요청에 Origin Server가 아닌Cache Server가 콘텐츠를 전달한다.

CDN을 알아보다보면 Cache Server라는 단어도 나오고, Edge Server, Edge Location이라는 단어도 보이는데, 헷갈리기 쉬운데 Edge Location은 AWS의 CDN 서비스인 CloudFront를 위한 Cache Server들을 말한다. CDN Cache Server는 인터넷 트래픽을 효과적으로 처리할 수 있는 지역에 POP(Point-of-Presence;인터넷 액세스 포인트)을 구축하고, CDN 서비스와 사용자가 직접 만나는 곳이라고 하여 Edge라고 부르는 것이다.

출처: 아마존 웹 서비스를 다루는 기술 2장 - 3. 에지 로케이션


+ AWS의 Edge Location은 CDN 서비스인 CloudFront 뿐만 아리나 DNS서비스인 Route53도 함께 제공한다.

출처: CDN이란 무엇인가? CDN 서비스의 중요성

CDN의 원리

최초로 웹 브라우저에서 URL을 이용하여 웹 사이트에 접속을 시도하게 되면 Origin Server로부터 컨텐츠를 가져와 유저에게 전송하며 동시에 CDN Cache Server에 저장한다. (하지만 CDN 캐싱 방식이 무엇이냐에 따라 이는 달라질 수 있을 듯 하다. 아래에 CDN 캐싱 방식에 대해 정리 해 두었다.)

그 이후에 발생하는 요청은 유저와 가장 가까운 위치에 배치된 CDN Cache Server로 사용자를 접속시키게 되며 컨텐츠 만료 시점까지 저장된 컨텐츠를 여기서 바로 전달해준다.

서버가 Cache Server에서 요청된 파일을 찾는데 실패했거나 너무 오래되어 만료기간이 지났을 경우에는 삭제 되어있을 것이므로 Origin Server에서 파일을 조회하여 사용자에게 전달하며,CDN은 새로운 콘텐츠를 저장한다.

출처: 아마존 웹 서비스 9장. CDN 서비스로 웹 사이트의 속도를 더욱 빠르게 하기

CDN 캐싱 방식의 종류

Static Caching:사용자의 요청이 없이도 Origin Server에 있는 콘텐츠를 운영자가 미리 Cache Server에 복사해두어서 사용자는 Cache Server에 접속해서 여기서 콘텐츠를 전달받는 방식이다.

Dynamic Caching: 최초에는 Cache Server에는 콘텐츠가 없으나 사용자가 콘텐츠를 요청하면Cache Server에 콘텐츠가 있는지 확인하고 없으면 Origin Server에서 받아서 사용자에게 전달하고, 그 이후에부터 동일한 요청이 오면 Cache Server에서 제공한다. 이 경우 일정 시간(만료 기간, TTL; Time To Live)이 지나면 Cache Server에서 삭제되었을 수도 있다.

CDN의 장단점

CDN의 장점

- 글로벌 범위안에서 장거리 웹 사이트 로딩 속도 개선과 함께 안정적인 콘텐츠 제공이 가능하다.

- 전세계의 인프라와 별도의 서비스 제공 업체에 투자하는 대신 글로벌 CDN을 사용하면 호스팅에 많은 비용을 지불 할 필요가 없으므로 비용을 절감 할 수 있다.

CDN의 단점

- 특정 국가나 지역만을 타깃으로 하는 웹 서비스를 운영한다면 CDN 서비스를 활용할 필요가 없다. 이 경우 CDN을 이용하면 오히려 불필요한 연결 지점이 늘어나 웹 사이트의 성능 저하를 불러올 수 있기 때문이다.

- CDN을 위한 Cache Server들이 많이 보유되지 않거나 성능이 안정적이지 않다면 최악의 경우 SPOF(단일 장애점) 문제(즉 한 군데가 중단되면 전체 시스템이 중단되어버리는 현상)이 발생할 수 있다.

 

reference

실전 Amazon S3와 CloudFront로 정적 파일 배포하기-Amazon Web Services 한국 블로그

아마존 웹 서비스를 다루는 기술 2장 - 3. 에지 로케이션

[클라우드 이해] CDN이란?

아마존 웹 서비스 9장. CDN 서비스로 웹 사이트의 속도를 더욱 빠르게 하기

CDN vs Cache 무엇이 효율적인가? :: 마이구미

CDN이란 무엇인가? CDN 서비스의 중요성

CDN 장점