본문 바로가기
Tech Notes

aws의 cdn, cloudfront 에 대해 알아보자

by miracle-tech 2025. 10. 10.
728x90
반응형
S3, CloudFront, CDN 완전 정복

☁️ S3, CloudFront, CDN 완전 정복

저장소부터 전 세계 배송까지, 모든 것을 알아보자

1. 전체 구조 한눈에 보기 🏗️

📦S3 (원본 저장소)

위치: 서울 리전 (ap-northeast-2)

역할: 파일의 원본을 영구 보관하는 중앙 창고

S3 버킷: test-miracle └── upload-test/ └── image.jpg ✅ (원본, 영구 저장)

🌐CloudFront (CDN 서비스)

역할: 전 세계 Edge 서버를 관리하는 배송 시스템

도메인: d1234567890.cloudfront.net

🗺️Edge Locations (전 세계 서버)

역할: 지역별로 복사본을 임시 저장하는 물류센터

🇰🇷 서울 Edge
ICN50-C1
🇯🇵 도쿄 Edge
NRT57-C1
🇺🇸 LA Edge
LAX3-C1
🇺🇸 뉴욕 Edge
EWR52-C1
🇬🇧 런던 Edge
LHR61-C1
🇸🇬 싱가포르 Edge
SIN2-C1

👥사용자

역할: 가장 가까운 Edge에서 파일 다운로드

2. 실제 동작 과정 ⚙️

시나리오: 미국 사용자 A가 처음 요청

Step 1: 사용자 A 요청 (미국 LA)

👤 "https://d123.cloudfront.net/image.jpg 주세요!"

Step 2: LA Edge 확인

💾 "내 캐시 확인... image.jpg 없음! (Cache Miss)"

상태: S3로 가야 함

Step 3: S3에서 가져오기

💾 LA Edge → 🇰🇷 서울 S3: "image.jpg 줘!"

🇰🇷 S3 → 💾 LA Edge: "여기!" (파일 전송)

소요 시간: 500ms

Step 4: 캐시 저장 및 전달

💾 LA Edge:

  • 1. image.jpg 복사본 저장 (24시간 유지) ✅
  • 2. 사용자 A에게 전송 ✅

💡 결과

LA Edge 상태: image.jpg 캐시됨 ✅ (24시간 유지)

도쿄 Edge 상태: 비어있음 ❌ (아무도 요청 안 함)

사용자 A: 500ms 소요

같은 지역의 사용자 B가 요청

Step 1: 사용자 B 요청 (미국 LA)

👤 "https://d123.cloudfront.net/image.jpg 주세요!"

Step 2: LA Edge 확인

💾 "내 캐시 확인... image.jpg 있음! (Cache Hit)"

상태: 바로 전달 가능!

Step 3: 즉시 전달

💾 LA Edge → 👤 사용자 B: "여기!"

소요 시간: 30ms (16배 빠름!)

S3 요청: 없음! ✅

🎉 Cache Hit의 장점

  • 속도 16배 빠름 (500ms → 30ms)
  • S3 부하 0 (요청 안 감)
  • 비용 절감 (S3 전송 비용 없음)
  • 사용자 경험 향상

도쿄 사용자 C는?

🗾 도쿄 Edge 상태

캐시: 비어있음 ❌

이유: 아무도 도쿄에서 요청하지 않았기 때문!

중요: 미국에서 아무리 많이 요청해도 도쿄 Edge에는 영향 없음

만약 도쿄 사용자 C가 요청하면?
→ 다시 Step 1부터 시작 (Cache Miss)

3. 24시간 후에는? ⏰

0시간: 첫 요청

LA Edge에 image.jpg 캐시됨

1~23시간: Cache Hit

모든 요청이 LA Edge에서 즉시 처리

24시간: TTL 만료

LA Edge에서 자동 삭제됨

24시간 1초: 다음 요청

다시 Cache Miss → S3에서 가져옴

# TTL (Time To Live) 설정 기본값: 24시간 (86,400초) 설정 가능 범위: 0초 ~ 1년 (31,536,000초) 파일 타입별 권장 TTL: ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 이미지 파일: max-age=31536000 (1년) CSS/JS 파일: max-age=2592000 (30일) HTML 파일: max-age=3600 (1시간) API 응답: no-cache (캐시 안 함)

4. CDN 서비스 비교 🏆

AWS CloudFront

AWS의 CDN 서비스

무료: 50GB/월 (12개월)
초과: $0.085/GB
  • S3와 완벽한 연동
  • AWS 생태계 통합
  • Lambda@Edge 지원
  • 기업용 기능 풍부
  • 설정이 복잡함
  • 무료 기간 제한적
유료 AWS 사용자 추천

Cloudflare

가장 인기 있는 CDN

무료: 무제한!
Pro: $20/월
  • 무료 무제한 트래픽
  • 무료 DDoS 방어
  • 무료 SSL 인증서
  • 설정 매우 쉬움
  • DNS도 무료 제공
  • S3 연동은 직접 설정
무료 개인 프로젝트 추천

Bunny CDN

가성비 최고의 CDN

저장: $0.01/GB
전송: $0.01/GB
  • 매우 저렴한 가격
  • 성능 우수
  • 설정 간단
  • 한국 서버 있음
  • 무료 플랜 없음
  • 최소 $1/월
유료 고트래픽 추천

5. CDN 서비스 상세 비교 📊

항목 AWS CloudFront Cloudflare Bunny CDN
무료 플랜 50GB/월 (12개월) 무제한 ✅ 없음 ❌
전송 비용 $0.085/GB $0 (무료 플랜) $0.01/GB
Edge 서버 400+개 (전 세계) 330+개 (전 세계) 120+개 (전 세계)
한국 서버 ✅ 서울, 부산 ✅ 서울 ✅ 서울
DDoS 방어 기본 제공 무료 제공 ✅ 유료 옵션
SSL 인증서 무료 무료 무료
설정 난이도 어려움 쉬움 ✅ 보통
S3 연동 완벽 ✅ 직접 설정 지원
실시간 분석 유료 무료 ✅ 기본 제공
추천 대상 AWS 사용자 개인/소규모 고트래픽

6. 어떤 CDN을 선택할까? 🤔

💰 예산이 없다면 (무료)

추천: Cloudflare

  • 무료 무제한 트래픽
  • DDoS 방어 포함
  • 설정 5분이면 끝
  • 개인 블로그, 포트폴리오 최적

☁️ AWS를 이미 사용 중이라면

추천: CloudFront

  • S3와 완벽한 연동
  • IAM 권한 통합
  • Lambda@Edge로 고급 기능
  • 기업 프로젝트에 적합

🚀 트래픽이 많다면 (TB 단위)

추천: Bunny CDN

  • $0.01/GB로 매우 저렴
  • 1TB = $10 (CloudFront는 $85)
  • 성능도 우수
  • 중대형 서비스에 최적

7. 핵심 요약 🎯

📦S3는 원본 저장소

파일이 실제로 저장되는 유일한 곳 (영구 보관)

🌐CloudFront는 CDN 서비스

Edge 서버를 관리하는 배송 시스템 (AWS의 CDN 이름)

🗺️Edge는 지역별 서버

요청이 있을 때만 복사본을 임시 저장 (24시간)

💾Cache는 복사본

Edge에 저장된 파일의 복사본 (자동 생성/삭제)

Cache Hit = 빠름

Edge에 있으면 즉시 전달 (30ms, 16배 빠름)

🐌Cache Miss = 느림

Edge에 없으면 S3까지 가야 함 (500ms)

🎓 기억해야 할 것

  • 저장은 S3에만: 원본은 1개만 존재
  • 복사는 필요할 때만: 모든 Edge에 자동 복사 ❌
  • 지역마다 독립적: 미국 Cache ≠ 도쿄 Cache
  • 24시간 후 삭제: TTL 만료 후 자동 제거
  • CDN은 여러 개: CloudFront, Cloudflare, Bunny 등

🚀 이제 CDN을 완벽하게 이해했습니다!

S3로 저장하고, CloudFront로 빠르게 전달하세요!

Backend 모듈 라이브러리 개발 프로젝트

728x90