대량의 정적 콘텐츠를 전 세계 사용자에게 빠르게 제공하려면 CDN(Content Delivery Network)이 필수적이다.
AWS CloudFront는 글로벌 엣지 로케이션(Edge Location)에 콘텐츠를 캐싱하여 읽기 성능을 향상시키고, 보안성을 강화하며, DDoS 공격을 방어하는 역할을 한다.
이 글에서는 CloudFront의 원리, 캐싱 방식, S3와의 차이점 및 보안 설정(OAC)을 정리한다.
AWS CloudFront는 AWS의 CDN 서비스로, 콘텐츠를 사용자와 가장 가까운 엣지 로케이션(Edge Location)에 저장하여 빠른 응답을 제공한다.
✅ 읽기 성능 향상 → 캐싱된 콘텐츠를 제공하여 지연 시간(Latency) 감소
✅ DDoS 보호 → AWS Shield와 연계하여 악성 트래픽 차단
✅ 보안 강화 → OAC(Origin Access Control)로 S3 원본 보호
✅ 전 세계 배포 → AWS 글로벌 네트워크 활용
CloudFront는 사용자의 요청을 처리하는 방식이 캐싱 여부에 따라 달라진다.
1️⃣ 클라이언트가 CloudFront에 요청
2️⃣ 엣지 로케이션(Edge Location)에서 캐싱된 콘텐츠 확인
3️⃣ ✔ 캐싱된 데이터가 있다면 즉시 제공
4️⃣ ❌ 캐싱이 없다면 원본 서버(S3, EC2 등)에 요청하여 데이터를 받아옴
5️⃣ CloudFront가 데이터를 캐싱하여 향후 요청에 대비
CloudFront는 정적 콘텐츠(HTML, CSS, JS, 이미지, 동영상 등)에 최적화되어 있다.
특히 S3와 함께 사용하여 정적 웹사이트를 배포할 수 있다.
1️⃣ S3 버킷을 생성하고 정적 웹사이트 호스팅 활성화
2️⃣ CloudFront 배포 생성 → Origin을 S3 버킷으로 설정
3️⃣ TTL(Time-To-Live) 설정하여 캐싱 기간 조정
4️⃣ OAC(Origin Access Control)를 사용하여 보안 강화
5️⃣ CloudFront의 DNS를 통해 정적 웹사이트 배포
OAC는 CloudFront가 S3 원본(Origin)에 직접 접근하도록 허용하는 보안 설정이다.
기존의 S3 버킷 정책을 대체하여, 보다 안전하게 콘텐츠를 보호할 수 있다.
✅ 기존 방식: S3 퍼블릭 액세스 또는 CloudFront 전용 버킷 정책 필요
✅ OAC 방식: S3를 퍼블릭으로 설정하지 않고도 CloudFront가 접근 가능
aws cloudfront create-origin-access-control \
--origin-access-control-config Name="MyOAC", \
Description="CloudFront OAC for S3 Access", \
SigningProtocol="sigv4", \
SigningBehavior="always", \
OriginAccessControlOriginType="s3"
📌 OAC를 적용한 S3 버킷 정책 예제
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "cloudfront.amazonaws.com"
},
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::my-bucket/*",
"Condition": {
"StringEquals": {
"AWS:SourceArn": "arn:aws:cloudfront::123456789012:distribution/EXAMPLE123"
}
}
}
]
}
✅ CloudFront만이 S3에 접근 가능하도록 제한
✅ S3를 퍼블릭으로 설정할 필요 없음
✅ DDoS 및 불필요한 외부 요청 방어 가능
CloudFront와 S3 Cross-Region Replication(교차 리전 복제)는 역할이 다르다.
항목 | CloudFront | S3 Cross-Region Replication |
---|---|---|
목적 | 콘텐츠 캐싱 및 성능 최적화 | 데이터 백업 및 다중 리전 동기화 |
데이터 저장 위치 | 글로벌 엣지 로케이션 | S3 버킷 간 데이터 복제 |
비용 | 요청당 과금 (읽기 성능 최적화) | 저장 용량 및 데이터 전송 비용 발생 |
주요 사용 사례 | 정적 웹사이트 배포, DDoS 보호 | 재해 복구(DR), 글로벌 데이터 동기화 |
✅ CloudFront는 전 세계 사용자를 위한 콘텐츠 제공 최적화
✅ S3 교차 리전 복제는 데이터 백업 및 다중 리전 동기화 목적
CloudFront는 전 세계 사용자에게 빠르게 콘텐츠를 제공하고 보안성을 강화하는 강력한 CDN 서비스다.
개념 | 설명 |
---|---|
CloudFront | 글로벌 엣지 로케이션을 활용한 CDN 서비스 |
캐싱 메커니즘 | 클라이언트 요청 시, 캐싱된 데이터 제공 (없다면 원본에서 가져옴) |
OAC (Origin Access Control) | CloudFront가 S3 원본에 직접 접근하도록 보안 강화 |
CloudFront vs S3 복제 | CloudFront는 CDN(속도 향상), S3 복제는 데이터 백업 목적 |
🚀 추천 전략:
- CloudFront + S3를 활용하여 정적 웹사이트 배포
- OAC를 사용하여 보안 강화 및 원본 보호
- TTL을 설정하여 캐싱 정책 최적화
- CloudFront 로그 분석을 통해 성능 모니터링
이러한 설정을 적용하면 빠른 성능, 강화된 보안, 비용 절감 효과를 극대화할 수 있다. 🚀