티스토리 뷰

기술 노트

CDN이란?

켈럽 2023. 3. 7. 16:05

'Contents Delivery Network'

 

*Contents Delivery Network를 해석해보면 웹페이지나 이미지, 동영상 등의 Contents를 전달한다는 뜻이다.

 

*클라이언트가 서버에게 어떠한 데이터를 요청했을 때 서버가 클라이언트에게 전송을 해서 사용자에게 보여지는게 일반적인 HTTP를 이용한 통신 과정이다.

 

즉 굳이 CDN이 없더라도 클라이언트와 서버간에 데이터를 주고 받는 통신이 가능하다는 것이다. 그렇다면 CDN은 왜 필요한 것일까?


CDN이 필요한 이유와 특징

 

*한국에 클라이언트(사용자)가 있고 미국에 서버가 있을 때 물리적인 거리 때문에 클라이언트 입장에서는 느려서 답답하고 서버 입장에서는 과부하가 걸리게 될 위험이 존재한다.

 

이 때 CDN을 사용한다. 분산을 시키는 것이다. CDN은 여러 개 만들 수 있는데 이렇게 각각 만든 CDN을 ‘edge’라고 부르기도 한다.

 

(참고로 서버를 아예 미국, 유럽, 아시아에 ‘복제’를 해서 운영하는 ‘mirror site’라는 방식도 존재한다.)

 

CDN은 'mirror site'와 유사한 점이 있지만 컨텐츠 전달에 특화된 방식이라는 점에서 다르다.

 

*CDN을 사용하게 되면 DNS의 과정도 바뀌게 된다.

 

기존의 브라우저는 웹사이트에 접속하려고 할 때 DNS에 해당 IP 주소의 정보가 있는지를 찾아본 뒤 접속을 하게 되는데 CDN을 사용한다면 IP 주소가 다르기 때문에 해당 위치에 가장 가까운 CDN 서버의 IP를 DNS가 찾아서 연결하게 된다.

(CDN을 사용하면 DNS도 당연히 기존 서버의 IP를 찾아가는게 아니라 해당 CDN의 IP를 찾아가야 하니깐.)

 

*CDN은 물리적 거리가 멀 때 뿐만 아니라 서버에 요청이 너무 많이 들어왔을 때 과부하를 피하기 위해서 사용되기도 한다.

 

*CDN에 캐시를 진행하는데 정적 캐시동적 캐시로 나뉜다.

 

-정적 캐시는 '이미지',  '동영상'과 같은 변하지 않는 파일(정적인 컨텐츠)을 캐시한다. 그리고 일반적으로 캐시 만료 시간이 '길다'. 그리고 관리하기가 용이한 편이다.

 

-동적 캐시는 사용자에 따라 다르거나, 빈번하게 변경되는 파일(동적인 컨텐츠)을 캐시한다. 그리고 일반적으로 캐시 만료 기간이 '짧다'. 그렇기 때문에 캐시가 만료되었는지 확인하는 추가적인 로직이 필요하다. 그리고 캐시를 해두었더라도, 빈번하게 변화하기 때문에 동적 컨텐츠는 캐시 하기가 까다로운 편이다.

(날씨에 대한 데이터의 경우 시시각각 변화하므로 이런 데이터는 동적 캐시를 선택하는 편이다.)

 

정적 캐시든 동적 캐시든 CDN을 통해 컨텐츠를 빠르게 전달하고, 원본 서버의 부하를 줄여주는 역할을 한다. 각 파일의 형태에 따라 적절한 방식을 선택함으로써 서버의 효율성을 높일 수 있다.

 

*동적 캐시와 정적 캐시 둘 다 사용자가 요청을 했을 때 CDN에 캐시된 파일이 있으면 바로 보내주고 없으면 그 때 본 서버에서 가져와서 보내주는 방식으로 운영된다. 이러한 CDN의 원리를 통해 비춰보면 위에서 설명했듯이 동적인 컨텐츠의 경우에는 빈번하게 변화하기 때문에 캐시를 해두기가 까다로울 수 밖에 없다. 캐시해둔 데이터가 바뀌었을 가능성이 높기 때문에 결국 원본 서버를 거치게 될 것이기 때문이다.

 

*CDN을 사용하면 그 업체에 비용을 지불해야 하는 비용이 든다. 하지만 대역폭을 크게 절감시킬 수 있어서 이로 인한 비용을 세이브할 수 있기 때문에 결과적으로 사용하는게 이득이다.

 

CDN을 사용하면 본 서버에 들어오는 요청이 줄어드니깐 비용도 절감되고 과부하 예방도 되고 CDN 하나가 망가져도 다른 CDN이 있기 때문에 이런 문제들에 있어서도 유리하다.

 

또한 보안에 있어서도 유리하다. DDoS 공격으로부터 어느정도 효과를 볼 수 있다. 디도스는 특정 서버에 한꺼번에 몰리게 해서 서버를 과부하로 만들어버리는 것인데 CDN이 있으면 분산이 되기 때문에 효과를 볼 수 있다.

 

또한 HTTPS의 컨텐츠 암호화도 CDN을 통해 향상시킬 수 있다.

 

업체마다 CDN 자체적으로 보안에 대해서 많은 대비를 해놨기에 서버에서 구현한 Auth의 보안 등급이 낮더라도 CDN에서 제공하는 강력한 보안을 누릴 수 있다. 고로 CDN 업체를 고를 때 이런 보안이 얼마나 잘 되어 있는가를 판단해서 골라야 한다. CDN을 해킹하는 경우도 있기 때문에 더더욱 잘 살펴서 골라야 한다.

 


한줄요약

=> CDN을 사용하는데 있어서 업체에 비용을 지불해야 하지만 과부하 방지, 빠른 전달, 보안 등의 특징 덕분에 사용하는 것이 이득이다.

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함