topic난이도 · 약 20

CDN · 로드밸런서 · 오토스케일 · 서버리스

엣지 캐시로 빠르게 · LB로 분산 · 자동으로 늘리고 줄이고 · 요청당 함수 실행.

#CDN#로드밸런서#오토스케일#서버리스#엣지
왜 배우는가

페이지 로딩이 느리거나 트래픽 몰려 서버가 죽었을 때 "뭘 추가해야 하나"의 답. Vercel·Cloudflare는 이걸 자동화해주지만 이름은 알아야 조작·디버깅 가능.

CDN(Content Delivery Network)은 콘텐츠를 사용자 가까운 엣지 서버에 캐시. 서울 사용자가 서울 엣지에서 받으니 지연이 수십 분의 1로. 이미지·JS·CSS·HTML 정적 자산은 무조건 CDN.

유형담당예시
CDN지리적 엣지 캐시Cloudflare, CloudFront, Fastly
L4 LBIP/포트 기반 분산AWS NLB, HAProxy
L7 LBHTTP 경로·호스트 기반AWS ALB, Nginx, Cloudflare
Reverse Proxy앞단 게이트웨이Nginx, Caddy, Traefik
API GatewayAPI 전용 인증·쓰로틀·버전AWS API GW, Kong
text
사용자(서울) → [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분), 상태 없음.

typescript
// 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.

실기 드릴 2문항
edit실기 드릴 · 단답형

사용자 가까운 엣지 서버에 정적 자산을 캐시해 지연을 줄이는 네트워크의 이름은?

edit실기 드릴 · 단답형

서버리스 함수의 첫 호출에서 발생하는 지연 현상의 이름은?