본문 바로가기
devops/📌 devops 자료들

CDN : 얄팍한 코딩 사전

by IMSfromSeoul 2022. 2. 2.

글의 출처 : 얄팍한 코딩 사전 : ( https://www.youtube.com/watch?v=_kcoeK0ITkQ )

📌 CDN?

Content Delivery Network의 약자

 

여기서의 Delivery란 서버에서 사용자로 데이터를 전송하는 것을 의미한다.

물론 CDN 없이도 온라인 서비스는 동작할 수 있다.

 

웹 사이트는 두가지 문제점을 가질 수 있다.

 

사용자 입장에서는 물리적으로 거리가 있는 서버에 접속할 시 속도가 느리다는 점이고,

서버 입장에서는 사용자가 서버에 몰리면 과부하가 걸릴 수 있다는 점이다.

 

사용자의 요청이 몰리지 않게 하기 위해, 즉 요청을 분산시키기 위해 쓰이는 기술이 CDN이다.

 

CDN은 미러 사이트 방식과는 다르다.

  • 미러사이트 방식
    • 서버를 유럽에도 한 대두고, 미국에도 한 대두는 등의 방식
    • 서버의 전체 기능을 따라하는 방식

CDN은 컨텐츠 전달이라는 용도에 특화돼 있는 기능이다.

📌 동작 예시

예를 들어서 한국의 A 사이트가 CDN 업체의 서비스를 사용한다고 해보자.

해당 CDN 업체는 전 세계 곳곳에 서버를 두고 있다.

 

미국에 있는 John이 A사이트에 방문한다.

그렇다면 John의 요청은 한국의 A사이트로 요청을 보내는게 아니라, 북미에 있는 해당 업체의 CDN서버로 요청을 보내게 된다.

 

해당 CDN사이트에는 A사이트의 각종 이미지나 기타 정적 요소들이 저장, 캐싱 돼있다.

그렇기 때문에 John은 훨씬 빠르게 사이트를 이용해 볼 수 있다.

비유를 해보자면 본사를 들리는 게 아니라, 각지에 있는 체인점에 들리는 방식인 것이다.

📌 DNS

이제 본사 지점인 A 사이트의 주소를 DNS에 적어주지 않고, 체인점을 총괄하는 주소인 CND의 주소를 적어둔다.

즉, 이제 A사이트를 방문하면 CDN으로 요청이 가는 것이다.

 

CDN은 이제 세계 각지에 있는 서버들( edge 라고 부른다 ) 중 사용자에게 가장 빠르게 서비스를 제공할 수 있는 edge를 선택해서 해당 edge와 사용자를 연결해주게 된다.

이 때, 무조건 가까운 edge와 연결해주는 것이 아니라, traffic과 물리적 거리 등 여러 요소를 고려하게 된다.

📌 Caching이 되는 시점

  • 정적 캐싱
    • 캐싱할 것들을 미리 각 edge에 보내놓는 것
  • 동적 캐싱
    • 사용자가 요청을 보낼 때마다 보낼 컨텐츠가 edge에 있는 지 먼저 확인한 다음에, 있으면 ( cache hit ) 바로 보내고, 없으면 ( cache miss ) 그 때 서버에 요청해서 data를 받아온다.

▸ 동적 캐싱

정적 캐싱은 제공하기 쉬우나, 동적 캐싱은 제공되기 어렵다.

그래서 여러 좋은 방법들을 고안한다.

  • 예를 들어
    • 동적 컨텐츠를 바이트 단위로 분석해서 딱 바뀐 부분만 바꾸는 방식
    • 서버에서 사용자까지 전달되는 경로를 최적화 하는 방식
    • 데이터 압축
    • handshake 등의 과정을 간소화
    • 지정된 시간에 한해서만 캐싱
  • 하는 방법들이 존재한다. 

▸ TTL

데이터가 캐시에 얼마나 남아있을 지 지정하는 값을 Time-To-Live : TTL 이라고 한다.

📌 대역폭

CDN을 사용하면 서버로 직접 요청이 들어오지 않기 때문에 대역폭의 비용이 크게 절감된다.

 

대역폭이란 주어진 시간 안에 데이터가 얼마나 많이 실려서 보내질 수 있는 가에 대한 것이다.

컴퓨터 네트워크에서 데이터의 수신을 따져보았을 때, 전송 속도와 대역폭이 얼마나 되는지를 본다.

 

도로가 있다고 해보자.

  • 전송속도
    • 도로의 제한속도
    • 물리적 거리를 얼마나 빠르게 이동하는가
  • 대역폭
    • 도로의 너비
    • 몇 차선씩 있는가
    • 동시에 얼마나 많은 데이터가 오고갈 수 있는가
    • 대역폭은 도로폭이다.

📌 CDN 사용시 장점

가용성, 안정성이 증가한다.

edge중에 하나가 이상이 생겨도 다른 edge를 통해 제공하면 되기 때문에 안정적이다.

 

보안에 있어서도 좋다.

CDN은 DDoS 공격들에 대해서 여러 방어책들을 갖고 있다.

 

 

'devops > 📌 devops 자료들' 카테고리의 다른 글

nginx 와 apache. 동작원리  (0) 2022.02.01

댓글