GH GambleHub

가장자리 캐시 및 POP

1) POP이란 무엇이며 왜 "가장자리" 입니까

POP (Point of Presence) 는 지리적으로 사용자와 가까운 콘텐츠 전달 네트워크 (CNC/edge) 노드입니다. 에지 캐시-POP에 직접 응답을 저장하는 계층으로 다음을 줄입니다

대기 시간 (클라이언트 이전의 RTT 미만).
원산지 당 부하 및 비용 (오프로드).
지역/구름 사이의 트래픽 (탈출 절약).

가장자리는 캐시 만이 아닙니다. 최신 POP는 L7 라우팅, WAF/봇 필터, 속도 제한, A/B/카나리아, 변환 및 에지 컴퓨팅 (스크립트/함수) 을 지원합니다.

2) 가장자리 캐싱 아키텍처

2. 1 플랫 vs 계층

플랫: 모든 POP는 원산지입니다. 단순하지만 비용이 많이 듭니다.
계층/방패: POP → 방패 팝 (중앙 캐시) → 원점. 방패는 캐시 미스를 축적하고 원산지를위한 우산을 만듭니다.

2. 2 개의 지역 세그먼트

지역/관할권 별 별도의 캐싱 도메인 (GDPR/데이터 현지화).
변형: "EU 전용 POP" 및 "Global POP", 별도의 키/규칙.

2. 3 Anycast + 대기 시간/지리 인식 라우팅

Anycast는 BGP를 통해 클라이언트를 가장 가까운 POP로 가져옵니다.
활성 RTT/오류 측정시 지역/지역 풀 간 지리/대기 시간 인식 전환.

3) 캐시 키, 'Vary', TTL 및 신선도

3. 1 키 디자인

쿼리 정규화: 쿼리 매개 변수 정렬, 노이즈 제거 (utm, ref).
시맨틱 축 포함: '테넌트', '로케일', '스키마 버전' ('v = 3'), PII 피하기.
개인 콘텐츠의 경우 공개 및 개인 캐시를 분리하십시오 (§ 7 참조).

3. 캐시 컨트롤 2 개 (HTT)

제목:
  • '캐시 제어: 공개, 최대 연령 = 60, s-maxage = 300, 부실한 동안 재발 방지 = 60, 부실한 경우 오류 = 120'
  • 조건부 GET 용 'ETag '/' Last-Modified' (304).
  • Vary: 카디널리티 최소화 ('수락 인코딩', '수락 언어', 때로는 '승인 '/' 쿠키' 개인 경로).
  • "니어 스피커" 용 마이크로 캐시: 1-5 초 + SWR.

3. 3 부동산 전략

SWR (부실한 동안): 구식 답변을 제공하고 배경으로 업데이트하십시오.
SIE (stale-if-orr): 원점 오류가 발생하면 'SIE' -TTL 이전에 캐시를 사용합니다.
소프트/하드 TTL: 소프트 용어 (오염 될 수 있음), 하드 (풀 미스).

4) 장애: "가장자리" 업데이트 방법

4. 키와 태그별로 1

PURGE/BAN (IM/접두사) -거칠지 만 빠릅니다.
대리 키/태그: 태그를 객체 ('기사: 42', '범주: 7') 에 할당하고 태그로 금지하십시오.

4. 2 이벤트 장애

원산지 데이터를 변경할 때 이벤트 (Kafka/NATS) → 에지 비활성화 통화 BAN/PURGE/소프트 만료.

4. 3 아티팩트 버전 지정

파일 이름의 정적 콘텐츠 해시.
API의 경우 호환되지 않는 변경에 대한 키 버전 ('v = 4') 을 변경하십시오.

5) 원산지 보호 및 성능

5. 1 오리진 차폐

단일 미스 포인트로 쉴드 POP를 켜면 폭풍에 원점이 곱해집니다.

5. 2 연결/단일 비행

가장자리에서 한 번은 캐시를 놓칠 때 "펀치" 를 요청합니다. 나머지는 기다립니다 (캐치 업 스탬프 없음).

5. 3 속도 제한/큐/Shedding не가장자리

오버로드 된 경우 원점이 아닌 우선 순위가 낮은/익명의 요청을 POP로 삭제하십시오.

5. 4 서명 된 맵/서명 된 쿠키

원산지는 가장자리 뒤에 숨겨져 있습니다. TTL 및 속성 (IP/Geo/Path) 을 사용하여 서명 된 링크/쿠키를 통해 개인 컨텐츠에 액세스하여 "모든 사람" 에게 배포하지 마십시오.

6) 운송 및 변환

6. QUIC

HTT/2: 멀티플렉싱, 헤더 압축.
TP/3/QUIC: HOL 잠금 장치가 적고 p95/p99 TTFB 미만의 손실 → 채널에서 더 좋습니다.

6. 2 압축 및 이미지

텍스트 용 Brotli, 이미지 용 AVIF/WebP, 가장자리에서 이미지 크기 조정 (응답 크기, DPR).
형식/크기 별 캐시 변형: 키에는 '너비/형식' (또는 'Vary: 수락 '/클라이언트-힌트) 이 포함됩니다.

6. 3 TLS/0-RTT (깔끔한)

세션 재생은 설치 속도를 높이고 0-RTT는 재생에 취약 할 수 있습니다 → demempotent GET에서만 사용할 수 있습니다.

7) 퍼블릭 vs 프라이빗 엣지 캐시

7. 1 공개

'캐시 제어: 공개, s-maxage =... '그리고 최소한의' Vary '

카탈로그, 뉴스, 사진, CNC 정적에 적합합니다.

7. 2 개인/개인화

옵션:
  • 공유 레벨: '캐시 제어: 개인' (브라우저 캐시) 에서 캐시하지 마십시오.
  • 키 세분화: 키에 테넌트/사용자 ID (또는 토큰 해시) 를 포함하고 개인 공유 (스토리지 및 PII에주의) 로 표시합니다.
  • 서명 된 쿠키 및 가장자리: 캐시는 공개되어 있지만 서명으로 액세스합니다 (가장자리에 암호화 된 세션 상태가있는 옵션).

8) 가장자리 계산 (작업자/기능)

POP에서의 쉬운 기능: 경로/헤더 재 작성, A/B 분할, 키 정규화, SWR 로직, 인접 리소스의 프리 페치.
밀리 초 작업을 위해 POP의 로컬 KV/캐시 API.
제한: 짧은 타임 아웃/메모리, 오래 지속되는 연결 부족, PII/지역에 대한 신중한 작업.

의사 예 (근로자와 같은)

js export default {
async fetch(req, env) {
const key = normalize(req);
let res = await caches. default. match(key);
if (res) return withHitHeader(res, "HIT");

res = await fetch(req, { cf: { cacheEverything: true }});
const ttl = computeTTL(res);
eventWaitUntil(caches. default. put(key, res. clone(), { expirationTtl: ttl }));
return withHitHeader(res, "MISS");
}
}

9) 설정 예

9. 1 Nginx: 마이크로 캐시 + SWR

nginx proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=api:200m inactive=30m;
map $request_method $skip_cache { default 0; POST 1; PUT 1; DELETE 1; }

server {
location /api/list {
proxy_cache api;
proxy_cache_key "$scheme://$host$uri$is_args$args";
proxy_cache_valid 200 2s;          # micro-cache proxy_cache_use_stale error timeout updating;# SIE + SWR proxy_cache_background_update on;
add_header X-Edge-Cache $upstream_cache_status;
proxy_pass http://origin_pool;
}
}

9. 2 Varnish: 대리 키... BAN

vcl sub vcl_recv {
if (req. method == "BAN") {
if (req. http. Surrogate-Key) {
ban("obj. http. Surrogate-Key ~ " + req. http. Surrogate-Key);
return (synth(200, "Banned"));
}
}
}

sub vcl_deliver {
set resp. http. Surrogate-Key = "article:42 tag:author:7";
set resp. http. Cache-Control = "public, s-maxage=300, stale-while-revalidate=60";
}

9. 3 특사 (에지 캐시 필터)

yaml http_filters:
- name: envoy. filters. http. cache typed_config:
"@type": type. googleapis. com/envoy. extensions. filters. http. cache. v3. CacheConfig typed_config:
"@type": type. googleapis. com/envoy. extensions. http. cache. simple_http_cache. v3. SimpleHttpCacheConfig

9. 4 CloudFront 스타일 동작 (축소판)

동작 A: '/images/' - 긴 TTL, 압축은 형식이 다릅니다.
동작 B: '/api/' - 짧은 TTL, SWR, 서명 된 쿠키, WAF/봇 보호.
Origin Shield가 활성화되어 있으며 상태 500/502/504 → '부실 오류' 입니다.

10) 관찰 가능성, SLO 및보고

10. 1 메트릭

(PHP 3 = 3.0.6, PHP 4)

(PHP 3 = 3.0.6, PHP 4)

(PHP 3 = 3.0.6, PHP 4)

(PHP 3 = 3.0.6, PHP 4)

(PHP 3 = 3.0.6, PHP 4)

10. 2 개의 통나무/트레일

'HIT/MISS/STALE/UPDATING/BYPASS' 라는 레이블이 붙은 로그, 키, TTL, Pop, 테넌트.
분산 트레이스에서 소스 ('edge', 'orign') 및 원인 (재정의/부실/오류) 을 표시하십시오.

10. 3 가지 SLO 예

"따라서 '/api/list ': p99 TTFB

"'stale-if-orr' 응답률은 하루에 1% 입니다".

11) 보안, 개인 정보 보호, 규정 준수

WAF/봇 관리-원산지 필터링을위한 에지.
데이터 지역: 유효한 POP에만 개인 아티팩트를 저장합니다. 지역 별 키 및 ACL을 사용하십시오.
가장자리의 서명과 토큰은 공개 캐시에서 개인 답변을 제공하지 않습니다.
PII 최소화: 키에 개인 데이터를 포함하지 마십시오. 쿠키 암호화; 개인화를위한 짧은 TTL.

12) 전형적인 요리법

12. 1 "거의 동적" (테이프/목록)

가장자리에 + SWR이있는 마이크로 캐시 1-3, 빈 결과 1-5 초에 대한 쉴드 지원, 단일 비행, 네거티브 캐시.

12. 2 이미지/미디어 구름

Edge recise/formatting (WebP/AVIF), '너비/형식' 별 캐시 옵션, 긴 TTL, 컨텐츠 태그 별 장애.

12. 개인화 된 AP 3 개

'캐시 제어: 개인' 또는 서명 된 쿠키 + 키 세분화 (테넌트), 짧은 TTL, 응답의 "거의 공개" 부분에 대한 SWR.

12. 큰 판매/픽 4 개

Shield는 주요 자원 (예열) 을 예열하고 정적을위한 TTL, 공격적인 SWR/SIE, 원산지를위한 하드 한계를 증가시킵니다.

13) 반 패턴

응답이 다른 'Vary' → 누출/잘못된 데이터

거대한 'Vary' → 카디널리티 → 낮은 타격.
prod/실험을위한 일반적인 캐시 → 오염.
원산지에서 단일 비행 → 폭풍이 누락되지 않습니다.
제한없이 SWR → 레이스 및 눈사태를 업데이트하여 요청을 검증합니다.
공개 → 보안 사고로 개인 응답의 가장자리 캐시.
전 세계 하중 → 원점 과열시 계층/차폐 부재.

14) 구현 점검표

  • 맵 POP 적용 범위는 모든 캐스트 + 대기 시간 라우팅을 가능하게합니다.
  • 계층/차폐 및 단일 비행/통합 정책을 선택하십시오.
  • 디자인 키와 바리 (최소 카디널리티, PII 없음).
  • TTL/SWR/SIE (소프트/하드 TTL) 및 네거티브 캐시 설정.
  • 서명 된 IM/쿠키를 활성화하고 원점을 숨기고 WAF/봇 필터를 활성화하십시오.
  • 장애 조직: 대리 키/BAN + 이벤트 중심.
  • 적중/바이트 적중/오프로드/TTFB 메트릭 및 팝 당 대시 보드.
  • 봉우리 전에 워밍업, 런북에서 폭풍/과부하.
  • 개인 정보 보호/지역 테스트, 주요 및 정책 감사.
  • 엣지 및 TTL/SWR 자동 조정 기준에 대한 SLO/잘못된 예산.

15) FAQ

Q: 가장자리에서 TTL을 선택하는 방법?
A: 허용되는 노후화 및 적중 비율 목표를 해제하십시오. "근거리 역학" 의 경우 - 1-5 s + SWR; 디렉토리/이미지-이벤트/태그 별 장애가있는 시간/시간.

Q: Shield POP는 언제 필요합니까?
A: 글로벌 트래픽 또는 핫 키로: 쉴드는 원산지 누락을 크게 줄이고 "포착" 파도를 안정화시킵니다.

Q: 승인 된 응답을 어떻게 캐시합니까?
A: '비공개' (브라우저) 또는 서명 된 쿠키/IM 및 키 세분화 (PII 제외) 가있는 공개 또는 일반적으로 중요한 개인 데이터를 우회하십시오.

Q: TH/3으로 무엇을해야합니까?
A: 활성화: 모바일/손실 채널이 특히 승리합니다. 그림% 1개의 캡션을 편집했습니다.

16) 총계

엣지 캐시와 POP 네트워크는 고속 및 경제 플랫폼의 기초입니다. 성공은 올바른 키와 'Vary', 합리적인 TTL/SWR/SIE, 태그/이벤트 장애, 계층/쉴드 원점 보호, 관찰 (적중/오프로드/TTFB) 및 보안/개인 정보 보호 규율에 의해 결정됩니다. 체크리스트를 따르십시오. "가장자리" 는 놀라움의 원천이 아니라 가속기입니다.

Contact

문의하기

질문이나 지원이 필요하시면 언제든지 연락하십시오.우리는 항상 도울 준비가 되어 있습니다!

Telegram
@Gamble_GC
통합 시작

Email — 필수. Telegram 또는 WhatsApp — 선택 사항.

이름 선택 사항
Email 선택 사항
제목 선택 사항
메시지 선택 사항
Telegram 선택 사항
@
Telegram을 입력하시면 Email과 함께 Telegram에서도 답변드립니다.
WhatsApp 선택 사항
형식: +국가 코드 + 번호 (예: +82XXXXXXXXX).

버튼을 클릭하면 데이터 처리에 동의하는 것으로 간주됩니다.