CDN · 로드밸런서 · 오토스케일 · 서버리스
엣지 캐시로 빠르게 · LB로 분산 · 자동으로 늘리고 줄이고 · 요청당 함수 실행.
페이지 로딩이 느리거나 트래픽 몰려 서버가 죽었을 때 "뭘 추가해야 하나"의 답. Vercel·Cloudflare는 이걸 자동화해주지만 이름은 알아야 조작·디버깅 가능.
CDN(Content Delivery Network)은 콘텐츠를 사용자 가까운 엣지 서버에 캐시. 서울 사용자가 서울 엣지에서 받으니 지연이 수십 분의 1로. 이미지·JS·CSS·HTML 정적 자산은 무조건 CDN.
| 유형 | 담당 | 예시 |
|---|---|---|
| CDN | 지리적 엣지 캐시 | Cloudflare, CloudFront, Fastly |
| L4 LB | IP/포트 기반 분산 | AWS NLB, HAProxy |
| L7 LB | HTTP 경로·호스트 기반 | AWS ALB, Nginx, Cloudflare |
| Reverse Proxy | 앞단 게이트웨이 | Nginx, Caddy, Traefik |
| API Gateway | API 전용 인증·쓰로틀·버전 | AWS API GW, Kong |
사용자(서울) → [Cloudflare 엣지, 서울]
↓ 캐시 miss만
[오리진 Load Balancer, 도쿄]
↓
┌─────────────┼─────────────┐
[앱 1] [앱 2] [앱 3]
↓ ↓ ↓
[Postgres 주 + 레플리카]
- Cloudflare가 99% 정적 자산·캐시된 페이지를 엣지에서 응답
- 나머지만 오리진으로 → 오리진 부담 1/100
- 앱 인스턴스는 오토스케일(CPU·요청 수 기반 자동 증감)Vercel도 내부 구조가 이것. 사용자는 "그냥 빠르다"만 느끼지만 뒤에선 이 사다리가 돌아간다.
오토스케일(Autoscaling) — 트래픽에 따라 인스턴스 수 자동 조정. ① 수평(Horizontal) = 같은 서버를 여러 대 복제(흔함). ② 수직(Vertical) = 한 대를 더 큰 스펙으로(제한적). 12F의 무상태(#6) 원칙이 수평 확장의 전제.
서버리스(Lambda·Vercel Functions)는 극한 오토스케일 — 0 → 수천 인스턴스를 수 초에. 장점: 요청 없으면 과금 0. 단점: 콜드 스타트(첫 호출 100ms~수 초 지연), 실행 시간 제한(AWS Lambda 15분), 상태 없음.
// Next.js App Router — 라우트별 런타임 지정
// app/api/heavy/route.ts
export const runtime = "nodejs"; // 완전한 Node (기본)
// app/api/light/route.ts
export const runtime = "edge"; // 엣지 런타임 (콜드 스타트↓·제약↑)
// Vercel은 자동으로 glob 트래픽 분산 + 엣지 캐시 + 오토스케일바이브코더는 이 한 줄로 "이 API는 전 세계 엣지에서 즉시 돌아라" 선언. Vercel이 CDN+오토스케일을 자동.
캐시 전략 3형제. ① Cache-Control 헤더(CDN 저장 기간). ② ETag(변경 감지). ③ SWR(Stale-While-Revalidate)(옛 캐시 주면서 뒤에서 새로 받기). Vercel 기본이 SWR.
사용자 가까운 엣지 서버에 정적 자산을 캐시해 지연을 줄이는 네트워크의 이름은?
서버리스 함수의 첫 호출에서 발생하는 지연 현상의 이름은?