Published on

CDN (Contents Delivery Network)

Authors
  • avatar
    Name
    Inhwan Cho
    Twitter

CDN이란?

CDN(Content Delivery Network)은 전 세계에 분산된 서버 네트워크를 통해 웹 컨텐츠를 빠르게 제공하는 기술입니다.

원본 서버에서 모든 사용자에게 직접 컨텐츠를 제공하는 대신, 사용자의 지리적 위치에 가장 가까운 서버에서 컨텐츠를 제공함으로써 페이지 로딩 시간을 단축하고 사용자 경험을 향상합니다.

CDN의 작동 원리

  1. 사용자가 웹사이트에 접속하면 DNS 쿼리를 통해 사용자의 위치와 가장 가까운 CDN 엣지 서버를 찾습니다.
  2. 요청받은 엣지 서버는 해당 컨텐츠가 캐시에 있는지 확인합니다.
  3. 캐시에 컨텐츠가 있으면, 바로 사용자에게 전달됩니다.
  4. 캐시에 컨텐츠가 없으면, 원본 서버 또는 다른 엣지 서버에서 정보를 가져와서 사용자에게 전달하고, 동시에 이 정보를 캐시에 저장합니다.

CDN을 사용해야 하는 이유

  1. 속도 및 성능 향상: 사용자와 가까운 서버에서 컨텐츠를 제공하기 때문에 로딩 시간을 단축시킵니다.
  2. 고가용성: 여러 서버에 데이터를 분산시켜 하나의 서버에 문제가 생겨도 서비스에 차질이 없습니다.
  3. 보안 강화: DDoS 공격과 같은 보안 위협으로부터 웹사이트를 보호할 수 있습니다.

CDN의 장단점 비교

장점단점
로딩 속도 향상비용
고가용성내용 제어 한계
보안 강화

실제 CDN 적용 예

예를 들어, index.html 파일에 CDN을 이용해 고속으로 콘텐츠를 제공하는 예시는 다음과 같습니다.

index.html
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>CDN을 사용한 예시</title>
    <!-- CDN을 통해 jQuery 라이브러리를 불러옵니다 -->
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
</head>
<body>
    <h1>CDN 적용 예시</h1>
    <p>이 페이지는 CDN을 통해 jQuery를 빠르게 로드하여 사용자 경험을 향상시키고 있습니다.</p>
</body>
</html>

이 예시에서는 src 주소에 지정된 URL은 jQuery 파일을 호스팅하고 있는 CDN 서버의 위치를 가리킵니다.

사용자가 웹페이지에 접속하면, 사용자에게 가장 가까운 Google의 서버에서 jQuery 라이브러리를 빠르게 제공하게 됩니다.

결론

CDN은 웹사이트의 속도를 향상시키고, 고가용성과 보안을 강화하는 데에 있어 중요한 역할을 합니다.