오리진 앞 레이어에 정책 캐시를 배치해 HIT 비율↑, 오리진 RPS↓.
솔루션웹·API·미디어
캐시·CDN 최적화
정적/동적 콘텐츠 캐시 전략, 엣지 라우팅, 이미지/압축 최적화, 무효화 자동화, 보안(디도스보호·프록시)까지 한 번에. 오리진 부하를 줄이고 TTFB를 낮춥니다. 요금은 별도문의로 안내합니다.
stale-while-revalidate, stale-if-error, 키 정규화로 API/HTML도 안전하게 캐싱.태그/프리픽스/경로 단위 퍼지와 버전 해시로 즉시 반영.
TLS/HSTS, 서명 URL, 레이트 제한 및 디도스보호(프록시) 연동.
권장 캐시 전략(예시)
| 콘텐츠 | TTL | 엣지 정책 | 비고 |
|---|---|---|---|
| 정적 에셋(CSS/JS) | 1년 + immutable |
버전 해시(/app.hash.js) | 무효화는 재배포로 대체 |
| 이미지(웹/앱) | 30일 | AVIF/WebP 변환, Vary: Accept |
원본 보호, 리사이즈 파이프라인 |
| HTML(SSR) | 60초 | stale-while-revalidate=30 |
로그인/맞춤은 no-store |
| API GET | 120초 | 키 정규화, s-maxage |
토큰/세션 키 제외 |
| API POST/PUT | - | no-store |
멱등 아웃 캐시만 |
| 다운로드(큰 파일) | 7일 | 범위 요청 허용 | 오리진 보호(전용 도메인) |
| * 실제 TTL은 변동/데이터 민감도에 따라 조정합니다. | |||
캐시/프록시 헤더 가이드
Cache-Control —
max-age, s-maxage, stale-while-revalidate, stale-if-error, immutableVary —
Accept, Accept-Encoding, Cookie(최소화)Etag/Last-Modified — 재검증 및 조건부 요청 최적화
Surrogate-Control — 엣지 전용 정책(옵션)
예시: NGINX 오리진
location /static/ {
add_header Cache-Control "public, max-age=31536000, immutable";
}
location /img/ {
add_header Vary "Accept";
add_header Cache-Control "public, max-age=2592000";
}
location /api/ {
if ($request_method = GET) {
add_header Cache-Control "public, s-maxage=120, stale-while-revalidate=30, stale-if-error=600";
}
if ($request_method != GET) {
add_header Cache-Control "no-store";
}
}
예시: HTML(SSR) 헤더
Cache-Control: public, s-maxage=60, stale-while-revalidate=30\nETag: W/"abc123"\nVary: Accept-Encoding
엣지 최적화 포인트
| 항목 | 설명 | 비고 |
|---|---|---|
| 캐시 키 정규화 | 쿼리스트링/헤더 중 캐시 영향 요인만 포함 | AB 테스트 파라미터 제외 |
| Origin Shield | 중간 캐시 계층으로 오리진 보호 | 리전 중앙화 |
| 지리/지연 라우팅 | 가까운 POP로 라우팅 | 국가/ASN 기반 정책 |
| Signed URL/쿠키 | 다운로드/미디어 접근 제어 | 만료·IP 바인딩 |
이미지/압축 최적화
포맷 — AVIF/WebP 우선, 원본 폴백.
Vary: Accept로 협상.리사이즈 — 쿼리 기반(예:
?w=800), 엣지 워커/함수로 처리.압축 —
br/gzip 동시 지원,
Vary: Accept-Encoding.프리로드 — 핵심 CSS/폰트
Link: rel=preload.HTTP/2 — 헤더 압축/멀티플렉싱.
큰 파일 — 범위 요청, 청크 업로드.
자동 무효화(예: Tag/PREFIX)
# 예시: 태그 기반 퍼지 (개념 예)
POST https://cdn.example.com/api/purge
Authorization: Bearer $TOKEN
Content-Type: application/json
{
"type": "tag",
"values": ["post:123", "layout:main"]
}
버전 해시 배포
/assets/app.2f9c1b8.js # 파일명에 컨텐츠 해시 포함 Cache-Control: public, max-age=31536000, immutable
보안(요약)
| 항목 | 내용 | 비고 |
|---|---|---|
| TLS/HSTS | TLS 1.2+, HSTS + preload 권장 | 인증서 자동 갱신 |
| 서명 URL | 다운로드/미디어 보호 | 짧은 만료 |
| 레이트 제한 | 경로/토큰별 임계 | 봇/스크래핑 대응 |
| 디도스보호(프록시) | L3~L7 보호 연동 | 엣지 차단 |
관측/튜닝 지표
HIT Ratio — 전체/경로별
TTFB/지연 p95 — 엣지/오리진
오리진 RPS/대역폭 — 보호 효과
4xx/5xx 분포 — 경로/AS 별
캐시 왜곡 — 키/헤더 VARIANCE
퍼지 이벤트 — 태그/경로별 추적
실행 체크리스트
정책
- 정적/동적 구간 분리 및 도메인 분리(origin vs assets)
- Cache-Control/Vary/ETag 표준화
- 키 정규화(쿼리/헤더) 설계
- 버전 해시 파이프라인(CI/CD) 구성
운영
- 퍼지 API/권한 토큰 관리
- 장애 시
stale-if-error적용 - 보안: 서명 URL, 디도스보호(프록시)
- 대시보드: HIT, 오리진 RPS, 에러율
캐시·CDN 최적화로 더 빠른 경험을
정책 설계 → 헤더/키 표준화 → 무효화 자동화 → 관측/튜닝까지 지원합니다.