일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- Redis
- For
- mariadb
- nodejs
- linux
- python
- React
- Machine Learning
- AWS
- Babel
- SQL
- deep learning
- Redux
- Node
- CentOS
- nginx
- 블레이드 템플릿
- docker
- rabbitmq
- Backbone.js
- 기초 수학
- NCP
- webpack
- Switch
- php
- phpredis
- javascript
- Go
- laravel
- fastapi
- Today
- Total
개발일기
CDN 서비스 방식이란? 본문
CDN이란 무엇인가?
CDN은 Content Distribution Network의 줄임말로 콘텐츠 전송 네트워크라고 해석한다.
컨텐츠를 사용하는 여러 사용자들은 같은 지역에 머물러 컨텐츠를 이용하는 것이 아닌 여러 지역의 각각의 공간에서 컨텐츠를 이용한다. 한 사용자는 서울에서 컨텐츠를 사용할 수도 있고 다른 사용자들은 독일 베를린에서 사용할 수도 있다.
만약 서버가 독일 베를린에 존재한다고 가정해보자. 서울 사용자들은 컨텐츠를 사용하기 위해 독일 베를린 서버를 통해 컨텐츠를 전송받아야 한다. 하지만 이러한 거리적인 제약으로 인해 컨텐츠 전송속도의 저하가 발생한다. 이러한 문제를 해결하기 위해 CDN 서비스가 등장하였다.
CDN은 각 지역에 캐시 서버(Points Of Presence)를 분산 배치시킨다. 분산 배치된 캐시 서버를 통해 원본컨텐츠들을 주요서버에서 캐시서버로 미리 옮겨 놓는다. 그 후, 컨텐츠 사용자들은 원본 서버에 요청을 보내는 것이 아닌 인접한 지역 내의 캐시 서버에 요청을 보내게 된다. 베를린 원본 서버가 아닌 한국의 캐시 서버에 요청을 보냄으로써 서버와 사용자간의 물리적인 거리를 비약적으로 줄여 컨텐츠 전송 속도를 극대화시킬 수 있다. 이러한 CDN 방식의 캐시 서버를 통해 전세계에 있는 사용자들은 지리적 조건에 대한 제약없이 컨텐츠를 원활한 속도로 전송받고 즐길 수 있다.
위의 이미지는 CDN방식을 표현한 적절한 이미지이다. 원본서버로부터 파일들을 각 지역의 캐시서버로 보낸다. 사용자들이 서버로 요청을 보낼 때, 원본서버로 요청을 보내는 것이 아닌 각 지역에 할당된 캐시 서버로 연결되어 작용하게 된다.
CDN 서비스 방식의 종류
- Static Caching
이미지, 자바스크립트 파일 등의 자주 쓰이는 파일들을 캐시서버에 미리 복사 해 놓는다. 클라이언트로부터 요청이 올 때 캐시 서버의 내용을 제공해준다. 게임 클라이언트 파일들을 예로 들 수 있다. 게임 클라이언트가 업데이트 되면 게임을 즐기는 사용자들이 업데이트를 위해 파일들을 요청할 것이다. 이러한 과정에서 서버 부하를 최소화하고 원활한 속도로 사용자들의 클라이언트 업데이트를 위하여 CDN 캐시 서버를 활용한다.
- Dynamic Caching
위에 방식과는 약간 다르게 원본서버로부터 파일들을 캐시 서버에 미리 복사해 놓지 않는다. 클라이언트로부터 캐시 서버에 없는 파일의 요청이 들어왔을 때, 그 시점으로 부터 캐시서버로 파일들을 복사한다. 미리 복사해 놓지 않고 필요한 요청이 있을 때만 복사해 놓는 방식이다.
'IT 지식' 카테고리의 다른 글
Load Balancer란? (0) | 2022.05.20 |
---|