AWS’s Data Transfer costs and how they can impact you
If you've used AWS, then Amazon must have already charged you for Data Transfer. These costs are what AWS charges to transfer data into or out of AWS. Data transfer could be between AWS and the Internet and within the AWS cloud. If you fail to consider these costs right from the beginning, then you might find yourself with an unpleasant surprise when the bill pops up. In an interview with TechRepublic, “Cloud Economist” Corey Quinn refers to AWS data transfer prices as "cloud's Achilles' heel". According to him, we are still paying 1998 prices for data transfer.
AWS data transfer prices vary for different services and regions. AWS charges you for transferring data into or out of one AWS service to another one. There are charges for transferring data across services within the same region and for transferring it outside the region. So if you were to transfer data across different regions, the cost would be extremely high.
Now you must be wondering how much could these costs even be to be writing an entire article about it? Well, that thought is justified. Large-scale multinational companies end up paying a million dollars a month. But that's not it. There are relatively small-scale startups that suffer fees close to a million. There are data transfers to and from AWS services that cost more than others. So, the cost of transferring data, say, OUT from EC2 to the Internet, ends up accumulating substantially.
Let's take an example of data transfer fees for the AWS storage platform S3. For S3 buckets situated in the US West (Oregon) region, the first GB/month incurs no cost and the next 9.999 TB/month costs $0.09 per GB. But if the S3 buckets are in the South America (São Paolo) region, the first GB/month is still free, but the next 9.999 TB/month costs $0.25 per GB.
Tips on how to reduce data transfer costs
While you might not want to focus entirely on completely cutting down your AWS transfer costs, but you might want to reduce them sensibly by following the steps below:
- Control data volumes by limiting the size of data transfers by using storage efficiencies with a data management platform.
- Keep all traffic within a region, if you can. And in case of traffic leaving the region, pick the lowest transfer rate region depending on your business's needs.
- All traffic is free within the same AZ and the same VPC, using AWS Private IPs. So, make sure your resources are in the same AZ and the same VPC, using private IPs when possible.
- Dedicated NAT devices incur a rate per GB on top of the applicable data transfer out rates, so try avoiding these. Utilize the VPC Internet Gateway NAT functionality instead and assign these instances public IPs. You can also utilize VPC endpoints.
- Across the board, there are higher data transfer costs with public IP or Elastic IP addresses as compared to a private address. Using private IP addresses frequently reduce costs drastically.
- Opt for billing alarms by subscribing to an AWS bill monitoring service. These include Billgist, Metricly, and Yotascale. These monitoring services let you keep an eye on your AWS billing expenses.
- Choose Amazon CloudFront to transfer data out to Internet users. Up to 50TB of data transferred out to the Internet will be less expensive from Amazon CloudFront than transferring out from AWS regions and with less latency.
- There are some distinguishing pricing principles for the following services, so you need to ensure that you double-check these: Amazon Neptune, Amazon MSK (Managed Kafka), Amazon CloudSearch, Amazon ElastiCache, Amazon ElasticSearch.
Data transferring fees might end up being an unpleasant surprise on your AWS bill. Amazon might charge you differently for transferring data into and out of your AWS database, depending on the source and destination. So, it's a good idea to follow the tips mentioned above to ensure you aren't spending, in terms of resources and money, more than you require.
You can read more on how to spot a surge in overall AWS cost in How to Monitor AWS Costs.