CloudFront 도입 비용과 절감 효과: 넣으면 싸지는 경우와 아닌 경우
CloudFront는 성능 도구로 소개될 때가 많지만, 실무에서는 비용 도구이기도 합니다. 결론을 먼저 적으면, 오리진이 AWS 안에 있는 정적·캐시 가능 콘텐츠는 CloudFront를 붙이는 쪽이 거의 항상 싸고, 캐시가 안 되는 소형 API 응답만 나가는 워크로드는 요청 요금 때문에 오히려 비싸질 수 있습니다. 전송량 단가만 보면 차이가 작아 보이지만, 오리진에서 CloudFront로 가는 구간이 무료라는 점과 항시 무료 1TB가 계산을 크게 바꿉니다. 기본 배포 방법은 AWS 중급 #7 CloudFront에서 다뤘고, 이 글은 손익 계산에 집중합니다. 요금은 us-east-1 기준입니다.
한눈에 보는 비교 #
| 구간 | CloudFront 없이 | CloudFront 경유 |
|---|---|---|
| 서버 → 인터넷 전송 | 약 $0.09/GB (첫 10TB) | 약 $0.085/GB (첫 10TB, 이후 구간 인하) |
| 오리진 → CDN 전송 | 해당 없음 | 무료 (AWS 오리진 기준) |
| 요청 요금 | 없음 (전송량에 포함) | HTTPS 1만 건당 약 $0.01 |
| 항시 무료 | 월 100GB (전 서비스 합산) | 월 1TB + 요청 1,000만 건 |
| 캐시 적중 시 오리진 부하 | 전부 오리진이 처리 | 오리진 트래픽·부하 감소 |
| HTTPS 인증서 | ALB + ACM 등 별도 구성 | 기본 포함 |
단가 차이보다 구조 차이가 큽니다 #
GB당 $0.09와 $0.085의 차이는 5%대라 이것만으로는 도입 이유가 되지 않습니다. 손익을 실제로 가르는 요소는 세 가지입니다.
첫째, 오리진에서 CloudFront로 나가는 전송이 무료입니다. S3, EC2, ALB 같은 AWS 오리진에서 CloudFront 엣지로 가는 트래픽에는 전송 요금이 붙지 않습니다. 캐시 미스가 나서 오리진까지 다녀와도 과금은 CloudFront에서 인터넷으로 나가는 구간 한 번뿐입니다. 직접 전송의 $0.09/GB가 통째로 $0.085/GB로 바뀌는 구조입니다.
둘째, 항시 무료 구간이 다릅니다. 일반 인터넷 전송의 무료 구간은 월 100GB인데, CloudFront는 월 1TB 전송과 요청 1,000만 건이 기간 제한 없이 무료입니다. 월 전송량이 1TB 안쪽인 사이트라면 CloudFront를 붙이는 순간 전송 요금이 0이 됩니다. 직접 전송이라면 900GB에 대해 약 $81이 나가는 규모입니다.
셋째, 캐시 적중은 오리진 비용까지 줄입니다. 적중률이 90%라면 오리진이 처리하는 요청이 10분의 1이 되므로, EC2 인스턴스 크기나 대수를 줄일 여지가 생깁니다. 전송 요금 비교에는 안 잡히지만 실제 청구서에는 잡히는 항목입니다.
요청 요금이 본체가 되는 경우 #
CloudFront의 함정은 요청 요금입니다. HTTPS 요청 1만 건당 약 $0.01이라 크기가 작은 응답이 대량으로 나가는 워크로드에서는 이 항목이 전송 요금을 넘어섭니다.
계산해 보면 경계가 보입니다. 평균 응답 1MB짜리 이미지가 월 1,000만 건 나가면 전송 약 9.5TB에 약 $810, 요청 요금은 약 $10입니다. 요청 요금은 오차 범위입니다. 반대로 평균 2KB짜리 JSON이 월 10억 건 나가면 전송은 약 2TB에 $170 수준인데 요청 요금이 약 $1,000으로 본체가 됩니다. 게다가 캐시가 안 되는 API 응답이라면 적중률 이득도 없으므로, 직접 전송 대비 순수하게 요청 요금만큼 손해입니다.
이 경우에도 CloudFront가 무의미하지는 않습니다. 엣지에서 TLS를 끊고 오리진과의 연결을 재사용하므로 원거리 사용자의 지연이 줄고, WAF를 엣지에 붙일 수 있습니다. 다만 그것은 성능과 보안에 내는 돈이지 절감이 아니므로, 도입 명분을 비용에서 찾으면 안 되는 영역입니다.
무효화와 잔가지 요금 #
- 무효화(invalidation): 경로 1,000건까지는 월 무료, 초과분은 경로당 $0.005입니다. 배포마다
/*한 건으로 무효화하면 사실상 무료지만, 파일 단위로 수천 건씩 지우는 파이프라인은 요금이 붙습니다. 파일명에 해시를 넣는 캐시 버스팅이 정석입니다. - 오리진이 AWS 밖일 때: 온프레미스나 타사 클라우드 오리진이면 오리진 쪽 회선 비용은 그쪽 요금표를 따릅니다. CloudFront의 오리진 전송 무료는 AWS 오리진 이야기입니다.
- 리전별 단가 차이: 위 숫자는 북미·유럽 엣지 기준입니다. 아시아·남미 엣지는 단가가 더 높으므로, 해외 트래픽 비중이 크면 가격 클래스(Price Class)로 비싼 엣지를 제외하는 선택지가 있습니다.
도입 판단 순서 #
- 월 전송량부터 봅니다: 1TB 이하면 계산할 것도 없이 CloudFront가 이득입니다. 항시 무료 구간 안이라 전송 요금이 0이 됩니다.
- 콘텐츠가 캐시 가능한지 봅니다: 정적 파일, 이미지, 영상, 버전이 박힌 자산이면 도입 확정입니다. 전송 단가 인하, 오리진 전송 무료, 오리진 부하 감소가 전부 잡힙니다.
- 응답 크기와 요청 수를 봅니다: 평균 응답이 수 KB이고 월 요청이 억 단위면 요청 요금을 먼저 계산합니다. 전송 절감분보다 크면 비용 명분은 없습니다.
- 캐시 불가 트래픽은 성능·보안 명분으로 분리합니다: 동적 API에 붙이는 CloudFront는 절감이 아니라 지연 단축과 WAF 통합에 내는 돈으로 계산합니다.
- 적중률을 배포 후 확인합니다: CloudFront 리포트의 캐시 적중률이 낮으면 Cache-Control 헤더와 캐시 키 설정(불필요한 쿼리 스트링, 쿠키 포함 여부)부터 점검합니다. 적중률이 낮은 CloudFront는 요금만 이중으로 내는 구성입니다.
정리 #
- 오리진이 AWS 안에 있으면 오리진에서 CloudFront로 가는 전송이 무료라, 캐시 가능 콘텐츠는 CloudFront 경유가 직접 전송보다 거의 항상 쌉니다.
- 항시 무료 1TB가 커서 월 전송량 1TB 이하 사이트는 전송 요금이 0으로 떨어집니다. 직접 전송의 무료 구간은 월 100GB뿐입니다.
- 소형 응답 대량 트래픽은 HTTPS 1만 건당 약 $0.01의 요청 요금이 본체가 됩니다. 캐시 불가 API라면 비용으로는 손해이고, 성능과 보안 명분으로만 판단합니다.
- 무효화는 경로 단위 과금이므로 파일명 해시로 우회하고, 적중률이 낮으면 캐시 키 설정부터 점검합니다.
- 전체 전송 요금 구조는 다음 글의 과금 지점 총정리에서 이어서 다룹니다. 요금이 갑자기 늘었다면 원인 10가지부터 확인합니다.