콘텐츠 전송 네트워크
A Content Delivery Network (CDN) is a geographically distributed network of proxy servers and their data centers, designed to provide high availability and perf...
콘텐츠 전송 네트워크(CDN)는 지리적으로 분산된 프록시 서버 및 데이터 센터 네트워크입니다. CDN의 목표는 최종 사용자에게 공간적으로 서비스를 분산하여 높은 가용성과 성능을 제공하는 것입니다. CDN은 콘텐츠(웹 페이지, 이미지, 비디오, 스타일시트 등)를 엣지 위치, 즉 콘텐츠를 요청하는 사용자에게 더 가까운 서버에 캐싱합니다. 사용자가 콘텐츠를 요청하면 CDN은 요청을 가장 가까운 엣지 서버로 안내하여 지연 시간을 줄이고 로드 시간을 개선합니다. 이렇게 하면 원본 서버의 트래픽이 분산되어 병목 현상을 방지하고 안정성을 향상시킵니다. CDN은 또한 DDoS 완화, 엣지에서의 TLS/SSL 종료를 통한 보안 강화, 최적화된 라우팅과 같은 이점을 제공합니다. 주요 CDN 제공업체로는 Akamai, Cloudflare, Amazon CloudFront, Google Cloud CDN이 있습니다. 이들은 전 세계적으로 빠르고 안정적이며 확장 가능한 웹 경험을 제공하는 데 중요합니다.
graph LR
Center["콘텐츠 전송 네트워크"]:::main
Pre_dns["dns"]:::pre --> Center
click Pre_dns "/terms/dns"
Pre_http["http"]:::pre --> Center
click Pre_http "/terms/http"
Center --> Child_edge_computing["edge-computing"]:::child
click Child_edge_computing "/terms/edge-computing"
Rel_load_balancing["load-balancing"]:::related -.-> Center
click Rel_load_balancing "/terms/load-balancing"
Rel_cloud_computing["cloud-computing"]:::related -.-> Center
click Rel_cloud_computing "/terms/cloud-computing"
classDef main fill:#7c3aed,stroke:#8b5cf6,stroke-width:2px,color:white,font-weight:bold,rx:5,ry:5;
classDef pre fill:#0f172a,stroke:#3b82f6,color:#94a3b8,rx:5,ry:5;
classDef child fill:#0f172a,stroke:#10b981,color:#94a3b8,rx:5,ry:5;
classDef related fill:#0f172a,stroke:#8b5cf6,stroke-dasharray: 5 5,color:#94a3b8,rx:5,ry:5;
linkStyle default stroke:#4b5563,stroke-width:2px;
🧒 5살도 이해할 수 있게 설명
전 세계 도서관에 인기 있는 책의 복사본을 많이 보관해 두어서, 사람들이 한 곳에서만 오는 것을 기다리는 대신 가장 가까운 도서관에서 책을 빨리 받을 수 있게 하는 것과 같습니다.
🤓 Expert Deep Dive
CDN은 시간 초과(TTL) 기반 만료 및 캐시 무효화 메커니즘을 포함한 다양한 캐싱 전략을 사용하여 작동합니다. 엣지 서버는 특정 기간 동안 콘텐츠를 캐싱하거나 요청 시 동적으로 업데이트된 콘텐츠를 가져오도록 구성할 수 있습니다. 고급 CDN은 네트워크 조건, 서버 부하 및 지리적 근접성을 기반으로 사용자에게 최적의 엣지 서버를 안내하기 위해 Anycast와 같은 정교한 라우팅 알고리즘을 사용합니다. 또한 분산 서비스 거부(DDoS) 공격에 대한 첫 번째 방어선 역할을 하여 네트워크 엣지에서 악성 트래픽을 흡수하고 필터링함으로써 현대 웹의 보안 상태에 중요한 역할을 합니다. 또한 CDN은 엣지 컴퓨팅과 같은 기술을 통해 동적 콘텐츠 제공을 용이하게 하여 특정 애플리케이션 로직을 사용자에게 더 가깝게 실행할 수 있도록 하여 왕복 시간을 줄입니다. DNS 확인과의 통합은 기본이며, DNS 쿼리는 종종 사용자 요청을 가장 적절한 CDN 엣지 노드에 매핑하는 데 사용됩니다.