How to Avoid Unexpected AWS Data Transfer Costs

|November 12, 2019|

If your business depends on AWS cloud services, you’re probably familiar with the experience of having unexpected, hidden charges crop up on your monthly invoice.  At times, the AWS cost structure can be quite opaque, making it difficult to accurately gauge in advance the costs of hosting a given application. One of the most common sources of unanticipated AWS charges is the service’s data transfer fees. In fact, they can be so expensive, that The Information recently published an article about how some top companies, like Netflix and Pinterest, are racking up hefty data transfer bills on AWS—up to $30 million a year. To help you navigate your AWS data transfer costs, here is a detailed breakdown of how data transfer fees are structured and some suggestions on how you might go about mitigating them.

 

Limit Outbound Data Transfer Where Possible

The simplest way to reduce AWS data transfer costs is to look for means by which your application can cut the fat regarding sending outbound data. As you can see from the below AWS Data Transfer Pricing Chart (US West (Oregon)) region, inbound data is not taxed, whereas outbound is (on a sliding scale). Of course, for some applications this is not possible. If you’re serving any sort of media content over the internet, particularly images and videos, you will quickly rack up outbound data transfer fees. And while you’ll notice that the price per GB decreases as you transfer more outbound data, this isn’t much of a comfort when you consider it in terms of total spend. Suppose for the sake of an example that your application is serving 150 TB of data per month, something not out of the realm of possibility for large-scale enterprise applications. Even using the cheapest rate of $0.05/GB you’re looking at 150TB = 150,000GB *$.05/GB = $7500/month in AWS data transfer costs alone! 

Data Transfer Image 1

(AWS Data Transfer Cost Breakdown - Representative Example)

 

Add “Cost Allocation Tags” to your Instances and Load Balancers

The first step in AWS cost reduction is obtaining insight into where your application is incurring the highest usage fees. To assist in this process, AWS provides a handy feature called cost allocation tags which can be used in conjunction with the AWS Cost Explorer to analyze which instances/services data transfer fees are stemming from. By applying these tags to your instances and load balancers, you can narrow in on which ones are generating the highest AWS data transfer costs and further filter these by type: CloudFront (out), Inter AZ, Internet (In), Internet (Out), Region to Region (In), and Region to Region (Out).

 

Data Transfer 2

(Applying Cost Allocation Tag Filters)



Use Amazon CloudFront

Once you’ve used a tool like the AWS Cost Explorer to identify pain points, you can look to ease these by using an additional AWS service like CloudFront. CloudFront is designed specifically to reduce charges arising from EC2 to public internet transfer such as one might incur from hosting a website which serves content to the public. By caching your content in CloudFront, you can greatly reduce the charges incurred. CloudFront offers a free tier which entitles customers of 50 GB outbound data transfer and 2 million HTTP requests per month for the first 12 months. Beyond that, CloudFront data transfer is charged according to the following table.

Data Transfer 3

Keep Data Transfer Within a Single Region

When transferring data between AWS services such as EC2 and S3, architect your application to ensure that these transfers are happening within a single AWS region. Beyond this, ensure that you’re transferring data via private IPs, not public or elastic IPv4/IPv6 addresses. Assuming you adhere to these caveats, your data transfer cost will be $0.

 

Keep EC2 Data Transfer Within a Single Availability Zone

When transferring data, notably between EC2 instances but also RDS, Redshift, and other service instances, you will be charged $0.01/GB in each direction unless you keep the data transfer within the same availability zone. The advice to transfer data using private IP addresses from the previous section still applies. To get the greatest benefits combine solutions 4 and 5 and keep data transfer confined to a single availability zone within a single region in order to incur the lowest possible costs.

 

Use the Cheapest Available AWS Regions That Make Business Sense

AWS data transfer costs for certain regions are cheaper than others. Regions within the United States and Canada are normally the most inexpensive whereas Singapore, India, and South America are among the most costly. Unless there is a compelling business reason to host your services in these countries, opt for the more cost effective North American regions.

 

Use a Third-Party Monitoring Service to Help You Identify Your Data Transfer Pain Points

By using a third-party AWS cost monitoring service such as CloudZero, you can be alerted to unforeseen and unexpected data transfer charges as they arise. Using their proprietary machine learning algorithms, CloudZero will identify which services are causing you to incur high data transfer costs and will suggest fixes you can make to reduce your overall spend.

  

See for Yourself

CloudZero is the first platform to put cloud cost data in the hands of engineers in a format that is useful and timely for their efforts. To learn more about CloudZero’s cloud cost optimization capabilities, get started here.

See a Demo
Start Free Trial
bkg_threeHexes

Subscribe to blog updates