[AWS] CloudFront: CDN, origin, behavior, signed URL
CloudFront, CDN, edge location, origin, cache behavior, signed URL, OAC, Lambda@Edge, CloudFront Functions
정의
CloudFront = AWS 의 글로벌 CDN. 전세계 엣지 (~600 PoP) 에서 사용자에게 가까이.
동작
sequenceDiagram
participant Client
participant Edge as CloudFront Edge (가장 가까운 PoP)
participant Regional as Regional Edge Cache
participant Origin as Origin (S3, ALB, custom)
Client->>Edge: request
alt cache HIT
Edge-->>Client: 즉시 응답
else cache MISS
Edge->>Regional: forward
alt regional HIT
Regional-->>Edge: 응답
Edge-->>Client: 응답
else regional MISS
Regional->>Origin: forward
Origin-->>Regional: 응답
Regional-->>Edge: cache
Edge-->>Client: 응답
end
end
Origin 종류
| Origin | 사용 |
|---|---|
| S3 | 정적 파일 |
| ALB / NLB | 동적 |
| Custom (anywhere) | 외부 (자체 호스팅) |
| Lambda Function URL | 서버리스 |
| MediaPackage | 비디오 |
Cache Behavior
flowchart LR
Behavior[Cache Behavior<br/>Path pattern 기준]
Behavior --> Static["/static/* → S3 origin, cache 1d"]
Behavior --> API["/api/* → ALB origin, no-cache"]
Behavior --> Default["* → S3 origin, cache 1h"]
Cache Key
CachePolicy:
Headers: [Accept-Language, Authorization]
Cookies: [session]
QueryStrings: [version]
너무 많은 key = cache hit rate 떨어짐. 최소.
Signed URL / Signed Cookie
aws cloudfront sign --url https://d111.cloudfront.net/private/video.mp4 \
--key-pair-id K123 \
--private-key file://private_key.pem \
--date-less-than 2026-06-26
- 사용자별 임시 URL.
- 동영상 / 다운로드 / 보호된 콘텐츠.
OAC (Origin Access Control)
S3 origin 의 공개 차단 + CloudFront 만 접근:
S3 Bucket policy:
- Principal: cloudfront.amazonaws.com
Condition:
AWS:SourceArn: arn:aws:cloudfront:::distribution/EXX
옛 OAI (Origin Access Identity) 의 후계. S3 의 모든 PUT/GET 권한 분리.
Edge Compute
| CloudFront Functions | Lambda@Edge | |
|---|---|---|
| Runtime | JavaScript only | Node, Python |
| 실행 위치 | edge (가장 빠름) | regional edge |
| Cold start | 0 | 가능 |
| 시간 한도 | < 1ms | 5s (viewer) / 30s (origin) |
| 메모리 | 2MB | 128MB-10GB |
| 가격 | 매우 저렴 | Lambda 가격 |
| 사용 | header rewrite, redirect, A/B | 복잡 처리 (auth, transform) |
TLS / SNI
- AWS Certificate Manager (ACM) 무료 인증서.
- 반드시 us-east-1 (Northern Virginia) 에서 발급 (CloudFront 글로벌).
- SNI 기본 활성 (옛 dedicated IP 옵션 비싸다).
흔한 함정
WARNING
- Origin 의 cache header 무시 = CloudFront 가 cache 안 함.
Cache-Control: max-age=...명시. - S3 origin 공개 = CloudFront 우회 가능. OAC 필수.
- invalidation 비용 = 1000 path 까지 무료, 이후 $0.005/path. wildcards (
/*) 가 효율적. - TLS cert 가 wrong region = us-east-1 에서만 발급. 다른 region 의 cert 는 사용 불가.
관련 위키
- aws-s3
- aws-alb-nlb
- aws-route53
- aws-lambda (Lambda@Edge)
- network-http-caching
이 글의 용어 (5개)
- [AWS] ALB vs NLB: L7 vs L4 로드 밸런서cloud
- 정의 | | ALB | NLB | (Classic ELB) | |---|---|---|---| | Layer | L7 (HTTP) | L4 (TCP/UDP) | L4 + L7 (…
- [AWS] Lambda: 서버리스 함수, 트리거, 동시성cloud
- 정의 AWS Lambda = 서버리스 함수 실행. 이벤트 트리거 → 함수 실행 → 결과 / 비동기 처리. 서버 관리 0. 트리거 종류 | 트리거 | 모델 | |---|---| |…
- [AWS] Route 53: DNS, routing policies, health checkscloud
- 정의 Route 53 = AWS 의 글로벌 DNS + health check + 라우팅 정책. 단순 DNS 뿐 아니라 글로벌 트래픽 분산. Hosted Zone Alias Rec…
- [AWS] S3: object storage, storage classes, lifecyclecloud
- 정의 S3 = AWS 의 object storage. bucket + key + object. 11 9's durability, 무한 확장. 2026 시점 인터넷의 핵심 스토리지…
- [Network] HTTP Caching: Cache-Control, ETag, Last-Modifiednetwork
- 정의 HTTP Caching 은 HTTP 응답을 클라이언트 / 중간 proxy / CDN 이 보관해 같은 요청을 다시 처리하지 않게 하는 메커니즘. 성능 + 비용 절감의 핵심. …
💬 댓글