AWS CloudFront는 전 세계 엣지 로케이션(Edge Location)에 콘텐츠를 캐싱하여 사용자에게 가장 가까운 위치에서 빠르게 제공하는 콘텐츠 배포 네트워크(CDN) 서비스입니다. 이미지, CSS, JavaScript 같은 정적 파일부터 동영상 스트리밍, API 응답까지 다양한 콘텐츠를 배포할 수 있습니다. 오리진 서버의 부하를 낮추고 글로벌 사용자에게 낮은 지연 시간을 제공하는 것이 핵심 목적입니다.
CDN(Content Delivery Network): 콘텐츠를 사용자와 지리적으로 가까운 서버에 분산 저장하여 전송 속도를 높이고 오리진 서버 부하를 줄이는 네트워크.
Edge Location은 CloudFront가 콘텐츠를 캐싱하는 전 세계 분산 거점입니다. 2024년 기준 90여 개국 450개 이상의 위치에 운영됩니다. 서울에서 미국 오리진 서버에 직접 요청하면 수백 밀리초가 걸리지만, 서울 Edge Location에 캐시가 있으면 수 밀리초로 단축됩니다.
사용자 (서울)
|
v
[Edge Location - 서울] -- Cache Hit --> 즉시 응답
|
| Cache Miss
v
[Origin - 미국 S3] --> 콘텐츠 반환 --> Edge에 저장
Origin은 CloudFront가 콘텐츠를 원본으로 가져오는 소스입니다. Edge에 캐시가 없거나 만료되었을 때 Origin에 요청합니다.
지원하는 Origin 유형은 다음과 같습니다.
| Origin 유형 | 설명 |
|---|---|
| S3 Bucket | 정적 파일, 웹사이트 |
| ALB | 동적 웹 애플리케이션 |
| EC2 | 커스텀 서버 |
| API Gateway | REST/HTTP API |
| 외부 HTTP 서버 | AWS 외부 서버도 가능 |
하나의 CloudFront 배포에 여러 Origin을 등록하고, URL 경로에 따라 다른 Origin으로 요청을 분기할 수 있습니다.
CloudFront는 Cache Key를 기준으로 캐시를 관리합니다. 기본 Cache Key는 URL 경로이며, 쿼리 파라미터, 헤더, 쿠키를 포함하도록 설정할 수 있습니다.
TTL은 캐시 항목의 유효 시간입니다. Origin의 응답 헤더(Cache-Control, Expires)를 우선 적용하며, 없으면 CloudFront의 기본값(24시간)을 사용합니다.
캐시 무효화(Invalidation)는 Origin의 파일이 변경되었을 때 Edge의 오래된 캐시를 강제로 제거하는 작업입니다.
aws cloudfront create-invalidation \
--distribution-id XXXXX \
--paths "/images/*" "/index.html"
파일 이름에 버전 해시를 포함하는 방식(예: app.a1b2c3.js)을 사용하면 무효화 없이도 항상 최신 파일을 제공할 수 있어 더 효율적입니다.
CloudFront + S3 조합은 정적 웹사이트 호스팅의 표준 패턴입니다. S3 Bucket을 퍼블릭으로 열지 않고 OAC(Origin Access Control)를 사용하면 CloudFront를 통해서만 S3 파일에 접근할 수 있어 보안이 강화됩니다.
사용자
|
[CloudFront] <-- HTTPS, 글로벌 캐싱
|
[S3 Bucket] <-- OAC로 직접 접근 차단, 퍼블릭 차단
React, Next.js 정적 빌드 파일을 S3에 업로드하고 CloudFront를 앞에 두는 구성이 대표적입니다.
동적 콘텐츠와 정적 콘텐츠를 CloudFront에서 경로로 분기하는 패턴도 자주 사용됩니다.
사용자
|
[CloudFront]
|
|-- /api/* --> Origin: ALB (동적 처리)
|-- /static/* --> Origin: S3 (정적 파일 캐싱)
ALB Origin에 대해서는 캐싱을 비활성화(TTL=0)하거나 짧은 TTL을 설정하고, S3 Origin의 정적 파일은 긴 TTL로 캐싱합니다. 이 구성은 동적 API 응답은 항상 최신 값을 유지하면서 정적 파일은 CloudFront에서 빠르게 서빙하는 효율적인 아키텍처입니다. 또한 ALB를 외부에 노출하지 않고 CloudFront에서만 접근을 허용하면 DDoS 방어와 보안 향상 효과도 얻을 수 있습니다.