CDN(Content Delivery Network)는 사용자와 서버가 물리적으로 멀리 떨어진 경우 발생하는 응답 속도의 한계를 극복하기 위해 고안된 서비스입니다.
왜 CDN이 필요한가?
만약 한국의 사용자가 미국에 위치한 서버에서 동영상 스트리밍 서비스나 고화질 이미지를 요청할 경우, 아무리 서버에서 고성능의 캐싱 전략을 사용하여 즉시 응답하더라도 물리적인 거리로 인해 필연적으로 지연이 발생합니다.
이러한 지연 문제를 해결하기 위해 등장한 서비스가 바로 CDN이며, CDN은 사용자의 요청을 빠르게 처리할 수 있도록 사용자 가까이에 위치한 Edge 서버를 활용합니다.
CDN의 동작 방식
- 사용자의 요청은 가장 가까운 Edge 서버로 전달됩니다.
- Edge 서버가 정적 리소스(js, css, 이미지 등)를 캐싱하고 있다면, Edge 서버가 직접 응답합니다.
- Edge 서버에 해당 리소스가 없거나, 동적 콘텐츠(dynamic content)에 대한 요청일 경우에는 원본 서버(Origin Server)에 요청을 전달하여 콘텐츠를 가져옵니다.
이를 통해 사용자는 물리적으로 가까운 Edge 서버에서 빠르게 요청에 대한 응답을 받을 수 있게됩니다.
CDN의 장점
- 빠른 응답 속도 : 물리적으로 가까운 Edge 서버를 통해 응답 시간이 단축됩니다.
- 서버 부하 감소 : Origin 서버로 가능 요청 수가 줄어들어 서버의 부하를 경감할 수 있습니다.
CDN의 단점
- 비용 발생 : Edge 서버 운영 및 관리 비용이 추가로 발생합니다.
- 캐싱 문제 : 캐시의 동기화 문제로 인해 콘텐츠 업데이트가 즉시 반영되지 않을 수 있습니다.
- 보안 문제 : Edge 서버를 통해 콘텐츠가 전달되므로 추가적인 보안 이슈가 발생할 수 있습니다.
'Architecture' 카테고리의 다른 글
선착순 이벤트 아키텍처 구성 (0) | 2025.05.30 |
---|---|
Java 에서의 데이터 입출력(I/O), Byte Stream (0) | 2025.05.20 |
Spring Security 없이 OAuth2 클라이언트 직접 구현 (0) | 2025.04.13 |
OAuth2 인증 Flow (0) | 2025.04.12 |
소프트웨어 복잡성 (0) | 2025.03.29 |