본문으로 건너뛰기
김신건의 로그

[AWS] CloudFront: CDN, origin, behavior, signed URL

· 수정 · 📖 약 1분 · 262자/단어 #aws #cloudfront #cdn #edge #cloud
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 떨어짐. 최소.

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 FunctionsLambda@Edge
RuntimeJavaScript onlyNode, Python
실행 위치edge (가장 빠름)regional edge
Cold start0가능
시간 한도< 1ms5s (viewer) / 30s (origin)
메모리2MB128MB-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

  1. Origin 의 cache header 무시 = CloudFront 가 cache 안 함. Cache-Control: max-age=... 명시.
  2. S3 origin 공개 = CloudFront 우회 가능. OAC 필수.
  3. invalidation 비용 = 1000 path 까지 무료, 이후 $0.005/path. wildcards (/*) 가 효율적.
  4. TLS cert 가 wrong region = us-east-1 에서만 발급. 다른 region 의 cert 는 사용 불가.

관련 위키

이 글의 용어 (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 이 보관해 같은 요청을 다시 처리하지 않게 하는 메커니즘. 성능 + 비용 절감의 핵심. …

💬 댓글

사이트 검색 / 명령어

검색

스크롤 = 확대/축소 · 드래그 = 이동 · 0 = 원래 크기 · ESC = 닫기