AWS data transfer — costs to remember

Raj Samuel
3 min readMar 7, 2020

--

Data transfer costs are somewhat dubious because our back-of-the-envelope cost estimation only includes cost of the instance (or service), storage and I/O. The underlying data transfer cost is elusive. Here are the 5 tenets of AWS data transfer costs aka the costs that catch you by surprise. All costs in USD.

  1. Data in is free. Not always, but moving data to AWS is mostly free.
  2. Data out is the costliest. Taking data out of AWS to the Internet costs money. Downloading an S3 file or using an AWS service that transfers data to your personal or work laptop or to another on-premise software costs you. This is about 10 cents per GB, but varies by region from 9 cents upto 20 cents in some Asian regions, and is subject to change.
  3. Data transfer within AWS — cross-region costs you. AWS regions include either one country where the data center is hosted or the group of smaller countries that the data center serves. Some countries (like US) with larger demand and/or wider geographical area has more than one region. If you move data between services hosted in Canada Region and US East-2 Region for instance, data in is free as usual and data out costs you about a tenth of the data out costs of AWS-to-Internet transfers mentioned in 2. This is because AWS takes your data through public Internet to get to the other region.
  4. Data transfer within AWS — same-region, different AZ costs you. AWS Availability Zones (AZ) are physically separate data centers within a region. Based on the capacity required for that region, an AZ could be multiple data centers or just one. AWS doesn’t publicize the number of servers or number of data centers or other sizing estimates of its AZ’s but it’s pretty clear that it could vary from region to region. Both data in and data out costs you about a tenth of the data-out costs of AWS-to-Internet transfers but more towards the lower end of it. Much better than cross-region transfer costs.
  5. Data transfer within AWS — same region, same AZ is free but. Data transfer between AWS services hosted in the same AZ is free. There is however a catch. These instances or services cannot have a public IP or an Elastic IP (an IP address assigned to your instance but is independent of your instance state — you can kill the instance and start another one but retain the IP). If they have a public IP you incur as much cost as the cross-AZ transfer mentioned in 4. If either one of the parties (sender or receiver) uses private IP with no public IP, that end of the transfer is free of cost.

Costs for 3, 4 & 5 show up under the mysterious EC2-Other on the AWS bill. Costs for 2 (data out) is included with EC2-Other if it’s directly incurred from EC2. For example an S3 List() operation that falls under 2 isn’t counted against EC2-Other.

However data transfer is not the only possible candidate for EC2-Other. It can also include EBS volumes+snapshots and any Elastic IPs unattached to EC2s and forgotten to be deallocated.

--

--

Raj Samuel
Raj Samuel

Written by Raj Samuel

I write because I forget. (PS: if you take what I wrote and post it as your own please try not to edit it and post rubbish. CTRL+C, CTRL+V is your friend.)

No responses yet