☁️ S3, CloudFront, CDN 완전 정복
저장소부터 전 세계 배송까지, 모든 것을 알아보자
1. 전체 구조 한눈에 보기 🏗️
📦S3 (원본 저장소)
위치: 서울 리전 (ap-northeast-2)
역할: 파일의 원본을 영구 보관하는 중앙 창고
🌐CloudFront (CDN 서비스)
역할: 전 세계 Edge 서버를 관리하는 배송 시스템
도메인: d1234567890.cloudfront.net
🗺️Edge Locations (전 세계 서버)
역할: 지역별로 복사본을 임시 저장하는 물류센터
ICN50-C1
NRT57-C1
LAX3-C1
EWR52-C1
LHR61-C1
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에서 가져옴
4. CDN 서비스 비교 🏆
AWS CloudFront
AWS의 CDN 서비스
초과: $0.085/GB
- S3와 완벽한 연동
- AWS 생태계 통합
- Lambda@Edge 지원
- 기업용 기능 풍부
- 설정이 복잡함
- 무료 기간 제한적
Cloudflare
가장 인기 있는 CDN
Pro: $20/월
- 무료 무제한 트래픽
- 무료 DDoS 방어
- 무료 SSL 인증서
- 설정 매우 쉬움
- DNS도 무료 제공
- S3 연동은 직접 설정
Bunny CDN
가성비 최고의 CDN
전송: $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 등
'Tech Notes' 카테고리의 다른 글
| OCR 이 뭘까? 개념과 어떻게 사용해야 하는지 알아보자! (0) | 2025.10.15 |
|---|---|
| 언제 try-catch, throw를 써야할까? (1) | 2025.10.11 |
| AWS bucket의 권한 관리 (0) | 2025.10.10 |
| The bucket does not allow ACLs... (0) | 2025.10.10 |
| 항상 보는 에러 CORS와 Preflight Request 완전 정복 (0) | 2025.10.10 |