CDN 캐싱: CloudFront 배포 전략
이 글에서는 CloudFront CDN을 사용하여 콘텐츠를 캐싱하고 글로벌 성능을 개선하는 방법을 설명합니다.
문제점: 글로벌 지연 시간
전 세계 사용자가 우리 웹사이트에 접속합니다:
-
인도: 50ms 지연 시간
-
미국: 200ms 지연 시간
-
유럽: 250ms 지연 시간
-
아시아: 150ms 지연 시간
모든 트래픽을 인도에서 제공하면 해외 사용자의 페이지 로딩이 느려집니다.
해결책: CloudFront CDN
CloudFront: AWS 콘텐츠 전송 네트워크
엣지 로케이션: 전 세계 400개 이상의 위치
장점: 가장 가까운 위치에서 콘텐츠 제공
캐싱 대상
정적 에셋 (긴 TTL)
콘텐츠: 이미지, CSS, JavaScript, 폰트
TTL: 1년
경로: /s/*
장점: 거의 변경되지 않음, 적극적으로 캐싱
제품 페이지 (중간 TTL)
콘텐츠: 제품 사양, 이미지
TTL: 1시간
경로: /p/*
장점: 신선도와 성능의 균형
쿼리 페이지 (짧은 TTL)
콘텐츠: 검색 결과, 필터링된 뷰
TTL: 5분
경로: /q/*
장점: 빈번한 업데이트, 짧은 캐시
아티클 (긴 TTL)
콘텐츠: 기술 문서
TTL: 24시간
경로: /a/*
장점: 거의 변경되지 않음
캐싱되지 않는 대상
동적 콘텐츠:
-
검색 결과 (
/q/?q=<query>) -
사용자별 콘텐츠 (장바구니, 계정)
-
API 엔드포인트 (
/api/*)
이유: 최신 상태여야 하고, 사용자별로 다름
캐시 동작
캐시 키
CloudFront는 URL을 캐시 키로 사용합니다:
동일한 URL: 캐시에서 제공
다른 URL: 새로운 캐시 항목
쿼리 매개변수: 키에 포함 (추적 매개변수 제외)
캐시 헤더
원본 서버가 캐시 헤더를 설정합니다:
Cache-Control: public, max-age=3600
public: CDN에 의해 캐시될 수 있음
max-age: 캐시 지속 시간(초)
캐시 무효화
수동: 무효화 요청 생성
자동: TTL 만료까지 대기
비용: 월별 처음 1,000개 경로 무료
참조: 정책은 CACHE_INVALIDATION_RULE.md 참조
오리진 보호
CDN이 원본 서버를 보호합니다:
트래픽 흡수: CDN이 트래픽 급증을 처리
DDoS 완화: 악성 트래픽 필터링
속도 제한: 원본 서버 과부하 방지
장점: 원본 서버가 응답성을 유지
SSL/TLS
인증서: AWS Certificate Manager
프로토콜: TLS 1.2+
장점: 암호화된 트래픽, 무료 인증서
압축
Gzip: 텍스트 콘텐츠에 대해 활성화
Brotli: 최신 브라우저에 대해 활성화
장점: 더 빠른 다운로드, 낮은 대역폭
지리적 제한
없음: 전 세계에서 사용 가능
장점: 글로벌 도달 범위
모니터링
지표:
-
캐시 적중률
-
원본 요청 수
-
오류율
-
지역별 지연 시간
CloudWatch: AWS 모니터링 서비스
비용 최적화
캐시 적중률: 높을수록 비용 절감
원본 요청: 적을수록 비용 절감
데이터 전송: 캐싱되면 더 저렴
장점: CDN이 인프라 비용을 줄임
참고 자료
AWS 서비스
-
CloudFront - AWS CDN 문서
-
Certificate Manager - SSL 인증서
관련 글
- 다중 서버 아키텍처 - 아키텍처 내 CDN
요약
CloudFront CDN은 글로벌 성능을 개선합니다:
캐시된 콘텐츠:
-
✅ 정적 에셋 (1년 TTL)
-
✅ 제품 페이지 (1시간 TTL)
-
✅ 쿼리 페이지 (5분 TTL)
-
✅ 아티클 (24시간 TTL)
캐시되지 않음:
-
✅ 동적 검색
-
✅ 사용자별 콘텐츠
-
✅ API 엔드포인트
장점:
-
✅ 낮은 지연 시간 (엣지 로케이션)
-
✅ 원본 보호 (트래픽 흡수)
-
✅ DDoS 완화
-
✅ 비용 절감 (원본 요청 감소)
기능:
-
✅ SSL/TLS 암호화
-
✅ Gzip/Brotli 압축
-
✅ 글로벌 가용성
이 CDN 전략은 성능, 신선도, 비용의 균형을 맞춥니다.