When using AWS for cloud computing, it’s important to consider all aspects of cost. One often-overlooked cause for a growing AWS bill is the cumulative cost of data transfers. This is a particularly challenging cost to approximate due to each service having different rates and stipulations. This article will guide you through the intricacies of AWS Data Transfers and highlight some cost-effective strategies for routing your data.
What are AWS Data Transfers?
An AWS Data Transfer occurs whenever data is moved either to the Internet from AWS or moved between AWS instances across their respective Regions or Availability Zones. Generally, inbound transfers are free; inter-Region and inter-Availablity Zone data transfers incur costs and are metered per Gigabyte.
Cost Scenario
In 2016 it was estimated that the average business manages over 162.9TB of data. That number was doubled for enterprise businesses. An article written in 2019 ranked AWS data transfer spending by company for the years 2017-2018. They discovered that Apple had spent close to $50 million on data transfers in 2017. And for 7 of the top 10 biggest spenders on AWS Data transfers in 2017, costs rose by 50% in 2018.
As you can see, depending on the kind of data (such as video content, or data replication) and usage patterns of your users, data transfer costs can jump significantly overnight. Planning out the most efficient flow of your data is critical to staying within budget. Fortunately, there are several ways to reduce this cost if you first understand how AWS data transfer pricing works.
AWS Data Transfer Pricing Categories
There are three common ways a business can incur data transfer costs. Let’s examine each of them in detail for some of the different services available.
Data Transfer In and Out of an AWS Region
The following sections provide a quick breakdown of the cross-regional costs associated with data transfers for common Amazon services.
See the best multi-cloud management solution on the market, and when you book & attend your CloudBolt demo we’ll send you a $75 Amazon Gift Card.
Direct Connect Data Transfer Pricing
AWS Direct Connect enables businesses to establish a private dedicated network connection to their AWS resources. Below is a simplified table of Direct Connect pricing from Regions within the United States to other Regions in the United States or abroad.
USA | Canada | EU | Tokyo & Osaka | Seoul, Singapore, HK | Mumbai | Sao Paulo | Sydney | Bahrain | Cape Town | |
---|---|---|---|---|---|---|---|---|---|---|
USA | $0.02 | $0.02 | $0.03 | $0.09 | $0.09 | $0.09 | $0.15 | $0.13 | $0.11 | $0.11 |
EC2 Data Transfer Pricing
AWS EC2s provide resizable compute capacity in the cloud. Data transfer costs for EC2s do not vary based on whether the EC2 is a Spot, On-Demand, or Reserved instance.
Note: Whenever you see the phrase “Standard Data Transfer rates” in AWS documentation for other services, they are referring to On-Demand EC2 data transfer pricing.
Data Transfer From EC2 to Internet
OUT of EC2 to Internet | Pricing |
---|---|
Up to 1 GB / Month | $0.00 per GB |
Next 9.999 TB / Month | $0.108 per GB |
Next 40 TB / Month | $0.102 per GB |
Next 100 TB / Month | $0.084 per GB |
Greater than 150 TB / Month | $0.06 per GB |
Data Transfer From EC2 to Other Regions
OUT of EC2 to | Pricing |
---|---|
Amazon Cloudfront | $0.00 per GB |
USA Regions (not Ohio) | $0.02 per GB |
USA Ohio Region | $0.01 per GB |
Non-US Regions | $0.02 per GB |
ElastiCache Data Transfer Pricing
AWS ElastiCache enables your web apps to leverage in-memory datastore (cache) in the cloud for fast information retrieval. There are no Amazon ElastiCache data transfer charges for traffic in or out of an Amazon ElastiCache node itself; charges in this case only come from traffic in or out of a given EC2 instance associated with the ElastiCache node at the standard Regional rate of $0.01 per GB.
RDS Data Transfer Pricing
AWS RDS accelerates the setup and operation of cloud relationship databases. RDS data transfer pricing may vary per database used. Notice in the following table that there is a free pricing tier (up to 1GB/mo) for data transfers into Amazon RDS. Also, outbound transfers to Amazon Cloudfront are completely free.
Data Transfer in to RDS
IN to Amazon RDS | Pricing |
---|---|
Up to 1 GB / Month | $0.00 per GB |
Next 9.999 TB / Month | $0.108 per GB |
Next 40 TB / Month | $0.102 per GB |
Next 100 TB / Month | $0.084 per GB |
>150 TB / Month | $0.06 per GB |
Data Transfer out of RDS
OUT of Amazon RDS | Pricing |
---|---|
Amazon Cloudfront | $0.00 per GB |
USA Region (not Ohio) | $0.02 per GB |
USA Ohio Region | $0.01 per GB |
Non-US Region | $0.02 per GB |
Redshift Data Transfer Pricing
Amazon Redshift is a data warehouse that enables businesses to analyze petabyte-sized data. Typically you can expect to pay standard data transfer rates when using Redshift. The only exception to this is when transferring data to or from an S3 resource within the same AWS region. If you are using a VPC, it’s important to note that data transfers over JDBC/ODBC to your Amazon Redshift cluster endpoint also incur standard data transfer fees (which are the same as EC2 data transfer rates).
Data Transfers Within an AWS Region
Data transfers in or out of a given service within a specific AWS region is generally $0.01 per GB. However, data transfers within the same Availability Zone are free (except for VPC Peering Connections).
Metered Data Transfers Within an AWS Region
Service In Same AWS Region | Pricing |
---|---|
Amazon EC2 | $0.01 per GB |
Amazon RDS | $0.01 per GB |
Amazon Redshift | $0.01 per GB |
Amazon DynamoDB Accelerator | $0.01 per GB |
Amazon ElastiCache | $0.01 per GB |
Elastic Network Interfaces | $0.01 per GB |
VPC Peering Connections | $0.01 per GB |
Free Data Transfers Within an AWS Region
Service In Same AWS Region | Pricing |
---|---|
Amazon S3 | Free |
Amazon Glacier | Free |
Amazon DynamoDB | Free |
Amazon SES | Free |
Amazon SQS | Free |
Amazon Kinesis | Free |
Amazon ECR | Free |
Amazon SNS | Free |
Amazon SimpleDB | Free |
Data Transfer In and Out of an AWS Edge location
AWS Edge Locations are part of the CloudFront CDN service. Cloudfront enables quick delivery of media content, API actions, and other data at a preferred data transfer rate. As you can see in the following table, after the first 150TB worth of data transfers for US-based services, the cost drops by $0.02 per GB in comparison to standard data transfer rates and continues to drop by another $0.04 per GB.
Note: You can achieve even better discounted data transfer rates by committing to 10TB+ of data transfers per month by contacting AWS and signing a private pricing agreement.
Per Month | USA & CA | EU & Israel | South Africa, Kenya, & Middle East | South America | Japan | Australia | Singapore, South Korea, Taiwan, Hong Kong, & Philippines | India |
---|---|---|---|---|---|---|---|---|
First 10TB | $0.09 | $0.09 | $0.11 | $0.11 | $0.11 | $0.11 | $0.14 | $0.17 |
Next 40TB | $0.08 | $0.08 | $0.11 | $0.11 | $0.09 | $0.10 | $0.14 | $0.13 |
Next 100TB | $0.06 | $0.06 | $0.09 | $0.09 | $0.09 | $0.09 | $0.12 | $0.11 |
Next 350TB | $0.04 | $0.04 | $0.08 | $0.08 | $0.08 | $0.09 | $0.10 | $0.10 |
Next 524TB | $0.03 | $0.03 | $0.06 | $0.06 | $0.08 | $0.09 | $0.08 | $0.10 |
Next 4PB | $0.03 | $0.03 | $0.05 | $0.05 | $0.07 | $0.09 | $0.07 | $0.10 |
Over 5PB | $0.02 | $0.02 | $0.04 | $0.04 | $0.06 | $0.08 | $0.06 | $0.10 |
The Need For Data Transfers Explained
Some businesses may try to reduce their data transfer costs by consolidating their applications into fewer regions and availability zones. However, there are many advantages to geographic diversification.
Suppose that you are hosting a global application and have noticed a growing user base in Asia. To accelerate this growth and provide the best experience, you may need to host your application closer, perhaps in the AWS Singapore region (ap-southeast-1). This avoids long round-trip latency issues from data traveling between the US and Asia.
Another reason why you may have to use a specific region may be that you are serving the European market where corporations are required by law to store their sensitive data in data centers physically located within continental Europe. In this case, you may host an instance of your application in the region located in Frankfurt (eu-central-1) simply to comply with local regulations.
Business continuity in the event of a natural disaster or outage is also a commonly cited reason for hosting servers across different Regions or Availability Zones.. This use case is further described in the next section.
Check our glossary for definitions of regions and availability zones.
Platform
|
Multi Cloud Integrations
|
Cost Management
|
Security & Compliance
|
Provisioning Automation
|
Automated Discovery
|
Infrastructure Testing
|
Collaborative Exchange
|
---|---|---|---|---|---|---|---|
CloudHealth
|
✔
|
✔
|
✔
|
||||
Morpheus
|
✔
|
✔
|
✔
|
||||
CloudBolt
|
✔
|
✔
|
✔
|
✔
|
✔
|
✔
|
✔
|
How to Reduce AWS Data Transfer Costs
We’ve covered basic pricing rates for data transfers across common AWS services and why a business must seriously consider multi-regional infrastructure. Now let’s look at how you can apply this information to reduce your own AWS bill.
Step 1: Understand Your Existing Data Transfer Spending
The first step towards understanding–and reducing–your AWS bill is to measure everything, discover your historical cost patterns, and visualize your spending trends. In the case of data transfer costs, you’ll have to dig deep into a subset of EC2 Service line-items to get the information you need.
To find how much you are spending on data transfers:
- Open the AWS Console.
- Navigate to the AWS Cost Explorer.
- Filter by the Service named “EC2 Other”.
- Group by “Usage Type”.
You will then be presented with a number of sub-line items that include EBS Snapshots, EBS Volume usage, and also Data Transfer costs. As an example, the data transfer line item would be labeled by a code such as “USW2-DataTransfer-Regional-Bytes”.
We recommend that you take one additional step of designating the Name tag as a Cost Allocation Tag so that you can further group your spending by individual EC2 instances or Elastic Load Balancers (ELB). AWS doesn’t index by default the data provided in Cost Explorer data by your AWS tags. You have to request your tags to be designated as a Cost Allocation Tag. Since the “Name” of an EC2 instance or an ELB is nothing more than a tag in AWS, you can request for the Name tag to be used for indexing. This indexing request would only apply to your data going forward from the time of your request and be applied retrospectively.
Once you have isolated your data transfer costs, observe the trend over multiple months to see if you have experienced any sudden increases in recent history. You can then group by the Name tag to determine which instances contributed to the increase in your data transfer costs.
Note: You can also price hypothetical data transfer scenarios between specific regions using the AWS Calculator. Simply select Create Estimate and scroll to AWS Data Transfer.
Step 2: Architect Your Environment To Optimize Data Transfers
The following strategies should always be considered for your applications. Doing so ensures a proactive approach towards a healthy budget and acceptable AWS bill.
Keep Your Data Within The Same Availability Zone
We have seen cases where employees who have direct access to the AWS console launch EC2s or other AWS services in different Availability Zones (AZs) without realizing that the transfer between those nodes result in a charge. So if you don’t have a reason such as ensuring disaster recovery for using different AZs, then make sure that your employees only launch new services in the same AZ. One way to ensure compliance would be to restrict their privileges with IAM role policies.
Keep Your Data Within the Same Region
There are times when you must keep data in two separate AZs out of precaution, so that if one AZ goes offline, another isolated building with a separate network and power ensures your business’s continuity. This said, you have the option to use two AZs that are in the same region. In terms of disaster recovery, if one AWS physical data center (AZ) is affected, then you have the protection of the second data center (or AZ) which would be located miles away. However, if you are trying to protect against a natural disaster such as an earthquake that may affect a whole region, then you would want to use two regions.
Use A Less Expensive Region
As means of context, as of the time of the writing of this article, the price of data transfer out of the Sao Paulo (Brazil) region to all other regions is $0.14 per Gigabyte, and transfers from the Singapore region to all other regions cost $0.09, whereas the transfer cost from the Ohio region to Atlanta isonly $0.01. So if you must use regions outside of the US, know that the international rates vary considerably. For illustration purposes, the table below shows pricing of data transfer out of a few sample regions to all other AWS regions.
OUT to all other regions | Pricing |
---|---|
Africa (Cape Town) | $0.15 per GB |
Brazil (Sao Paolo) | $0.14 per GB |
Middle East (Bahrain) | $0.11 per GB |
Asia (Singapore) | $0.09 per GB |
Asia (Seoul) | $0.08 per GB |
GovCloud (East) | $0.03 per GB |
Europe (Frankfurt) | $0.02 per GB |
UK (London) | $0.02 per GB |
US (Ohio) to US (N. VA) | $0.01 per GB |
Optimize Your Use of Public IP Addresses
There are rules that apply to data transfer pricing when using a public IP address or an Elastic IPv4 or IPv6. The rules are best explained in the Data Transfer section of the AWS page dedicated to explaining EC2 pricing in small fonts. Data transferred “in” to and “out” from a public or Elastic IPv4 address is charged at $0.01/GB in each direction, while data transferred “in” to and “out” from an IPv6 address in a different VPC is charged at $0.01/GB in each direction. You can optimize your spending by using a Private IP address when transferring data that doesn’t leave your region or AZ.
Use AWS CloudFront
Using a content delivery network (CDN) such as CloudFront is essential in keeping data transfer costs low. CloudFront moves your most accessed assets to the “front” of the AWS network (i.e., Edge Locations), ensuring fast delivery to your end users. Data transfers into AWS CloudFront from other AWS resources are generally free; Data transfers from AWS CloudFront to the internet are 20-40% cheaper than standard data transfer rates–with the possibility of deeper discounts through a Private Pricing Program contract.
Step 3: Sign up for the AWS Data Transfer Private Pricing Program
You can reduce your data transfer costs by committing to an annual volume in advance. This volume strategy is conceptually similar to Reserved Instances (RI) or Savings Plans, and it’s referred to as a Private Pricing Program.
For instance, let’s say that you have concluded that you need to consume 1 Petabyte’s worth of data transfer each month over the next 12 months. You are unable to reduce that cost any further by optimizing or re-architecting. In that case, you would enter into a Private Pricing Program and commit to using a minimum of 1 Petabyte of data transfer monthly across designated regions between AWS services such as EC2, RDS, Elasticache, or Redshift.
Note: If you do not use the data transfer amount that you have committed to, you are still obligated to pay for the full committed amount.
In exchange for the commitment, you will receive a significant discount which is negotiated between you and your AWS account manager and which must remain confidential. Since the private pricing agreements are negotiated and signed on a case by case basis, you won’t find any standard volume discount pricing schedules associated with the program. We recommend that you reach out to your AWS account manager to start the process.
Related Blogs
The New FinOps Paradigm: Maximizing Cloud ROI
Featuring guest presenter Tracy Woo, Principal Analyst at Forrester Research In a world where 98% of enterprises are embracing FinOps,…
Ready to Run Webinar: Achieving Automation Maturity in FinOps
Automation has become essential to keeping up with today’s fast-paced cloud environment. Manual FinOps processes create bottlenecks, delay decisions, and…