CDN(Content Delivery Network)의 작동 원리: 인터넷의 고속도로
Cloud
서울에 있는 서버에 저 멀리 뉴욕에 사는 사용자가 접속하려면 태평양을 건너야 해서 느릴 수밖에 없습니다. CDN은 전 세계 곳곳에 "대리점 서버(Edge Server)"를 두고, 원본 서버의 콘텐츠를 복사(Caching)해 둡니다. 사용자는 가장 가까운 대리점에서 데이터를 받아 가므로 속도가 비약적으로 빨라집니다.
1. 작동 원리
- 사용자가
image.jpg를 요청합니다. - DNS가 사용자의 위치(IP)를 파악하고, 가장 가까운 CDN 서버의 IP를 알려줍니다.
- CDN 서버에 해당 파일이 있으면(Cache Hit) 바로 줍니다.
- 없으면(Cache Miss) 원본 서버(Origin)에서 받아와서 저장한 뒤 사용자에게 줍니다.
2. 캐시 무효화 (Cache Invalidation)
가장 어려운 문제입니다. 원본 이미지는 수정됐는데, CDN이 옛날 이미지를 계속 보여주면 안 되니까요.
- TTL (Time To Live): "1시간 뒤에 자동 폭파". 시간이 지나면 알아서 갱신됩니다.
- Purge: 수동으로 캐시를 날려버립니다. (비용 발생 가능)
- Versioning:
image_v2.jpg처럼 파일명을 바꿔버립니다. 가장 확실합니다.
3. 남용 금지
HTML 파일처럼 자주 바뀌는 정적 리소스나, 개인화된 데이터(장바구니)는 CDN에 캐싱하면 안 됩니다. 옆집 사람이 내 장바구니를 보게 될 수 있습니다. 이미지, CSS, JS 파일이 캐싱 1순위입니다.