RESOURCE

CloudFront 비용 최적화하기


2021년 3월 17일

|

6 mins read

Cover

클라우드를 많이 사용하는 회사 중에는 Cloudfront 비용의 비중이 큰 회사가 많습니다. 특히, 미디어 서비스를 하는 회사나 비디오, 이미지, 오디오 데이터 전송 비중이 큰 서비스는 CF 비용이 부담스러울 수 밖에 없습니다. 

지금까지 Cloudfront을 많이 사용하는 기업에서는 비용을 대폭 절감할 수 있는 기법이 많지 않아 대용량을 사용하면 맞춤형 할인(Volume Discount)으로 가격을 낮추어 왔고, 대용량을 사용하지 않은 기업은 실요금을 모두 지불해야 했습니다. 2021년 2월 5일에 아마존에서 Cloudfront Security Savings Bundle라는 새로운 할인 정책이 발표되면서 새로운 비용 절감 방법이 생겼습니다. 이를 집중적으로 알아보도록 하겠습니다.

CloudFront 서비스란?

CloudFront는 아마존에서 제공하는 CDN(Content Delivery Network) 서비스로 AWS내에 서비스인 EC2, S3, ELB와 통합하여 사용할 수 있으며, AWS Shield, WAF(Web Application Firewall), Route 53와 통합하여 고급 보안 기능도 제공합니다.

[ CloudFront 서비스 가격 선택사항 ]

  • 프리티어 (Free-Tier) – 처음 AWS를 가입하면 매월 50GB와 2백만개 HTTP/HTTPS 요청을 1년 동안 무료로 사용할 수 있습니다.
  • 온디맨드(On-Demand) – 실제 사용량에 따른 비용이 청구됩니다.
  • 요금 할인
    • 맞춤형 요금 (Custom Pricing) – 월 10TB이상이면 사용량을 약정하여 요금을 할인 받을 수 있습니다.
    • Security Savings Bundle – 월 일정 사용량을 1년간 약정하여 30%까지 요금을 할인 받을 수 있습니다.



Cloudfront 가격 구성


Cloudfront의 가격은 크게 다음과 같은 비용으로 구성됩니다.

TypePrice RangeDescription
DTO(Data Transfer Out) to internet$0.020 ~ $0.170인터넷을 통해 엣지에서 사용자에게 데이터가 전달될때 부과되는 요금
Regional Data Transfer Out to Origin$0.020 ~ $0.160 (GB 당)사용자가 요청하여 데이터를 Origin으로 전달하는 비용 (즉, POST and PUT requests)
HTTP/HTTPS request$0.0075 ~ $0.0220(10,000개당)사용자로부터 HTTP 혹은 HTTPS 요청에 대한 요금 (10,000 개당)
Origin Shield Requests$0.0075 ~ $0.0090(10,000개당)HTTP 에 대한 Origin Shield 요청 요금
Invalidation request$0.005(요청 경로당)TTL(Time-to-live)가 만료되기전에 모든 엣지로부터 파일 삭제 요청에 요금
Field Level Encryption Requests$0.02(10,000개 요청당)HTTPS내에서 특정키를 사용하여 추가 암호화 비용
Real-time log requests$0.01(1백만개당)데이터 전송에 대한 실시간 요청 정보
Dedicated IP custom SSL$600 per month for each customer SSL CertificationSNI(Server Name Indication)을 지원하지 않는 브라우저로 콘텐츠를 전송할 때 사용합니다. 각 사용자 지정 SSL 인증서에 대해 매월 600 USD를 지불합니다



Cloudfront 비용 최적화 방법


1. Cloudfront 클래스 조정

Cloudfront는 세가지의 클래스를 다음과 같이 제공합니다.

지역별로 엣지 로케이션이 다른 가격으로 책정이 되어 있습니다. 사용자의 데이터 전송 요청이 있을때 가장 가까운 엣지에서 데이터를 전송하는데 각 엣지별로 가격이 다릅니다.

Edge Locations Included WithinUnited States, Mexico, & CanadaEurope & IsraelSouth Africa, Kenya, & Middle EastSouth AmericaJapanAustralia & New ZealandHong Kong, Philippines, Singapore, South Korea, Taiwan, & ThailanIndia
DTO pricing$0.085$0.085$0.110$0.110$0.114$0.114$0.140$0.170
All Edge locationsYesYesYesYesYesYesYesYes
Us, Canada, Europe, Asia and MEAYesYesYesXYesXYesYes
Only US, Canada and EuropeYesYesXXXXXX
DTO pricing$0.085$0.085$0.110$0.110$0.114$0.114$0.140$0.170
DTO pricing$0.085$0.085$0.110$0.110$0.114$0.114$0.140$0.170
DTO pricing$0.085$0.085$0.110$0.110$0.114$0.114$0.140$0.170

글로벌 서비스를 하는 경우 모든 엣지에 콘텐츠를 배포할 경우는 비용 절감을 할 수 없지만, latency 혹은 전송 속도가 문제 되지 않을 경우에는 미국, 캐나다 유럽 지역을 선택하게 되면 조금 더 낮은 가격의 엣지에서 데이터 전송을 하여 비용 절감을 할 수 있습니다.



2. Cache Control

각각 파일을 엣지와 브라우저에 최대한 오래 저장될 수 있도록 Cache-control and Expires header에 만료 기간을 너무 짧지 않게 설정해주는 것이 중요합니다. 적절하게 조절하면 Browser에 다운로드 하는 데이터양를 최대한 줄일 수 있습니다.



3. Cloudfront Security Savings Bundle

앞에서 소개한 두 방법은 모든 경우에 적용되지 않고 cache control 같은 방법은 설정하는데 너무 많은 노력이 필요합니다. Cloudfront 비용절감에 있어서 가장 효과적인 방법은 Savings Bundle를 활용하는 법입니다.



4. Savings Bundle 요약

  • 일년간 일정 금액의 월간 요금(USD)을 약정해야 합니다.
  • 매월 크레딧(Credit) 형태로 적용되어 최대 30% 할인이 가능합니다.
  • 약정 금액의 최대 10%의 AWS WAF 크레딧을 받아서 사용할 수 있어서 WAF를 사용할 경우 추가 할인을 받을 수 있습니다.

Savings Bundle 예제

매월 $600을 사용할 경우 약정 금액은 다음과 같이 계산할 수 있습니다.

$600 * 70% = $420

월 $420을 약정하면 월 $180/년 $2160 을 절약할 수 있습니다. 또한 AWS WAF 크래딧은 월 $42을 받습니다.




Savings Bundle 약정 금액을 결정하는 방법

대부분의 회사의 월 Cloudfront 사용량이 일정하지 않고 약정금액을 결정하는 간단한 가이드라인을 제시해 보겠습니다.

  • 약정금액을 모두 사용하지 않았을때 이월이 되지 않으므로 월단위로 약정금액을 모두 사용할 수 있도록 약정금액을 사용하는 것이 효과적 입니다.
  • 지난 몇개월 비용 이력을 보고 월단위로 약정 금액을 모두 사용할 수 있는 금액을 결정하세요. 아래 그림과 같은 예에서는 $580 ~ $600 정도 약정금액을 정하는 것이 효과적 입니다.content/uploads/2021/03/Screen-Shot-2021-03-10-at-9.4
  • 9.12-AM-1024x443.png)만일 2019년 9월 1일부터 $400을 약정했다면 용은 다음과 같이 됩니다.
  • 약정 후 몇개월 단위로 cloudfront 비용을 검토하고 온디맨드 비용이 일정금액이상으로 지속될때는 추가 Savings Bundle 약정을 해서 추가 절감을 할 수 있습니다. 아래 그림에서 빨간색 선과 같을 경우 약 $300 정도 추가 약정을 하면 비용을 더욱 절감할 수 있습니다.
  • 약정이 끝나고 재 약정을 하지 않으면 온디맨드 금액을 지불해야 하므로 약정 만료일을 확인하고 관리해야 합니다.


5. EC2혹은 S3 트래픽을 Cloudfront 사용하여 비용 최적화

EC2 혹은 S3에 트래픽 비용이 많이 나오는 경우 이를 고려해볼 필요가 있습니다. 예를 들어 EC2로 web service를 하는 경우 비용 측면에서 Cloudfront가 조금 비싸지만 Savings Bundle을 적용하면 비용을 절감 할 수 있습니다. S3 인경우에 cloudfront의 온디맨드 가격보다 비싸지만 Savings Bundle을 사용할 경우 더욱 저렴한 가격으로 훨씬 빠른 전송속도로 사용할 수 있습니다. 아래표는 서울리전의 각 서비스의 데이터 전송 비용을 비교해보았습니다. 전송 용량에 따라 가장 낮은 가격의 서비스는 노란색으로 표시했습니다. 아래표와 같이 CF Savings Bundle을 활용하면 데이터 전송 비용을 상당히 절약할 수 있습니다.





클라우드 비용
AWS