Your Comprehensive Guide to Understanding AWS Data Transfer Costs

If you have used AWS, then you have likely incurred charges for transferring data into or out of AWS. These charges are typically categorized on your monthly AWS bills under Data Transfer or as data transfer line items under AWS services.

Understanding raw data transfer costs for AWS is time-consuming and laborious.

In this post, I will try to present a comprehensive guide to understanding the data transfer charges for AWS services and AWS resources.

I hope this enables you to easily understand data transfer costs in your AWS bills, explore and evaluate ideas to optimize ongoing data transfer usage, and encourages you to design and build cost-efficient AWS implementations.

What are the AWS Data Transfer costs?

The data transfer costs vary by geographical region, the source location, the target location, the AWS services, or the AWS resources, and the volume of the data transfer.

For example, uploading a 1 MB file over the Internet to your Amazon S3 bucket is free. You will incur AWS region-specific charges for downloading the same file over the Internet to your local machine. And, AWS region-specific charges to copy the same file from one AWS region to another.

A pragmatic way to understand data transfer costs is by studying them from the following three perspectives.

  1. Cost of data transfer into or out of AWS regions.
  2. Cost of data transfer into or out of AWS edge locations.
  3. Cost of data transfer within an AWS region.

Let us explore each of these in detail.

#1 — Cost of Data Transfer Into or Out of AWS Regions

Data transfer out to the Internet from all AWS regions is billed at region-specific, tiered data transfer rates.

You can view the latest region-specific, tiered pricing for data transfer to the Internet for all AWS regions here. For example, see the screenshot below for tiered pricing for data transfer out to the Internet from the AWS Asia Pacific (Tokyo) region as of July 2020.

Tiered Pricing for Data Transfer Out to Internet in AWS Asia Pacific (Tokyo) region

Your data transfer out costs in an AWS region are calculated monthly by applying rate tiers to your aggregate data transfer usage across all AWS services and AWS resources in the region.

Example: The cost of transferring 25 TB aggregated across all AWS services to Internet in a month in the Asia Pacific (Tokyo) AWS region is 9.999 TB at $0.114 per GB + (25 TB — 9.999 TB — 1 GB) at $0.089 per GB = 10,238.98 GB at $0.114 per GB + 15,360.02 GB at $0.089 per GB = $2,534.29.

As part of AWS’s Free Usage Tier, new AWS customers receive 15 GB of free data transfer out each month aggregated across all AWS services in all AWS regions except the AWS GovCloud region for one year. Your usage for the free tier is calculated each month across all AWS global regions and automatically applied to your bill.

Data transfer out from the local AWS region to another AWS region is charged at source region-specific data transfer rates. These costs are typically labeled as InterRegion Inbound or InterRegion Outbound transfer type in the monthly AWS bills.

You can view the latest inter-region data transfer pricing for all AWS regions here. For example, see the screenshot below for data transfer out pricing from AWS South America (São Paulo) region to another AWS region as of July 2020.

Pricing for Data Transfer Out from AWS South America (San Paulo) region to another AWS region

AWS Direct Connect is an AWS network service that provides an alternative to using the Internet to connect customer’s on-premise sites to AWS. Customers connect their pre-existing data center or office network to AWS via an AWS Direct Connect location.

Data transfer into AWS regions from AWS Direct Connect locations is free.

Data transfer out from the AWS region to AWS Direct Connect locations is charged by the AWS region to AWS Direct Connect location-specific pricing. See AWS Direct Connect data transfer pricing for details.

The visual below shows costs for data transferred into or out of the AWS region over the Internet, Direct Connect, or inter-region transfer.

Data Transfer Costs for In / Out Traffic via the Internet, Direct Connect and Inter-Region Transfer

The following AWS services have service-specific pricing for data transfer out to the Internet or inter-region data transfer:

  1. Amazon DynamoDB, Amazon Keyspaces for Apache Cassandra, Amazon SQS, Amazon SNS, Amazon Elastic Container Registry, Amazon CloudSearch, Amazon QLDB, Amazon Timestream: Data transfer out from these services to another AWS region is charged at standard Internet egress rates as opposed to the standard inter-region data transfer rates.
  2. AWS Snowball, AWS Snowball Edge: Data transfer out to the Internet incurs a region-specific charge of $0.03, $0.04 or $0.05 per GB. See data transfer out pricing for AWS Snowball and AWS Snowball Edge.
  3. AWS Systems Manager: Data transfer out to the Internet or on-premise instances costs $0.90 per GB.
  4. AWS Shield Advanced: Data transfer out to the Internet incurs a usage-based fee in addition to the standard fees for ELB, Amazon CloudFront, Amazon Route53, Amazon EC2, and AWS Global Accelerator.
  5. Amazon Lightsail: Lightsail plans come bundled with free data transfer allowance. Data in and out of Lightsail instance count toward data transfer allowance. You are billed only for outbound data transfer via public IPv4 of your Lightsail instance exceeding the allowance. See Amazon Lightsail FAQ for details.

#2 — Cost of Data Transfer Into or Out of AWS Edge Locations

Data transfer into AWS edge locations from the Internet is free.

Data transfer out of AWS edge locations to the Internet is billed at region-specific, tiered data transfer rates.

Data transfer into AWS edge locations from AWS regions is free.

Data transfer out of AWS edge locations to origin in AWS regions is billed at region-specific data transfer rates.

AWS offers three additional services for you to opt in to accelerate data transfer between AWS edge locations and AWS regions to deliver faster and more consistent experiences for your customers. They are:

  1. Amazon S3 Transfer Acceleration
  2. AWS Global Accelerator
  3. AWS Site-to-Site VPN with Acceleration

The data transfer costs for these services are in addition to standard data transfer costs for data transferred into, out of, and within AWS.

Data transfer costs for Amazon S3 transfer acceleration are $0.04 per GB transferred from S3 via any edge location to users on the Internet or applications in another AWS region. You are charged $0.04 per GB transferred to S3 via edge locations in the United States, Europe, and Japan, and $0.08 per GB transferred via other edge locations.

AWS Global Accelerator charges a Transfer-Premium (DT-Premium) fee for data transferred in the dominant direction between the AWS region and AWS edge location. DT-Premium charges apply to all traffic independent of the destination, such as the Internet or another AWS region.

AWS Site-to-Site VPN with acceleration instantiates two AWS Global Accelerator instances and incurs DT-Premium charges for data transferred in the dominant direction between AWS region and AWS edge location.

The visual below shows costs for data transfer traffic into or out of AWS edge locations, or via S3 transfer acceleration or AWS Global Accelerator.

Data Transfer Costs for In / Out Traffic via Edge Locations, S3 Transfer Acceleration, and AWS Global Accelerator

#3 — Cost of Data Transfer Within an AWS Region

The AWS services or AWS resources such as an Amazon EC2 instance could be located inside an availability zone, or could be availability zone agnostic such as the Amazon SNS API endpoint or an Amazon S3 bucket.

And, could be in a VPC such as an Amazon CloudWatch Logs VPC endpoint or Amazon Redshift cluster, or outside a VPC such as an AWS Lambda function or an RDS instance launched into EC2-Classic.

And, could transfer traffic within or across availability zones or VPC peering connections using public, private or Elastic IPv4, or IPv6 addresses.

Data transferred between EC2 instances or containers, or Elastic Network Interfaces across availability zones or VPC peering connections via public, private or Elastic IPv4, or IPv6 addresses is charged at $0.01 per GB for egress traffic and $0.01 per GB for ingress traffic.

Example: The data transfer cost for 50 GB data from EC2 instance in us-west-2a to RDS instance in us-west-2b is (50 GB out from EC2 instance * $0.01 per GB) + (50 GB into RDS instance * $0.01 per GB) = $1.00.

Example: The data transfer cost for 100 GB data from EC2 instance in VPC vpc-0ee66f21cf3488fcb in Asia Pacific (Singapore) to an EC2 instance in peered VPC vpc-01e2f580a46c32732 in Asia Pacific (Singapore) is (100 GB out from EC2 instance in VPC vpc-0ee66f21cf3488fcb * $0.01 per GB) + (100 GB into EC2 instance in VPC vpc-01e2f580a46c32732 * $0.01 per GB) = $2.00.

Data transferred between EC2 instances or containers, or Elastic Network Interfaces in the same availability zone and same VPC via public or Elastic IPv4 addresses are charged at $0.01 per GB for egress traffic and $0.01 per GB for ingress traffic.

Example: The data transfer cost for 1 TB data from EC2 instance i-09a41ed6b2cc47e0b in ap-northeast-1a to EC2 instance i-0c7e01014bdf3b14f in ap-northeast-1a over public IPv4 address is (1 TB out from i-09a41ed6b2cc47e0b * $0.01 per GB) + (1 TB into i-0c7e01014bdf3b14f * $0.01 per GB) = (1024 GB out * $0.01 per GB) + (1024 GB in * $0.01 per GB) = $10.24 + $10.24 = $20.48.

Data transferred between EC2 instances or containers, or Elastic Network Interfaces in the same availability zone and same VPC over private IPv4 or IPv6 addresses are free.

Example: The data transfer cost for 1TB data from EC2 instance i-09a41ed6b2cc47e0b in ap-northeast-1a to EC2 instance i-0c7e01014bdf3b14f in ap-northeast-1a over private IPv4 address is (1 TB out from i-09a41ed6b2cc47e0b * $0.00 per GB) + (1 TB into i-0c7e01014bdf3b14f * $0.00 per GB) = $0.00.

See the table and visual below summarizing the data transfer costs between EC2 instances within an AWS region.

Data Transfer Costs for Traffic between EC2 Instances within an AWS Region
Data Transfer Costs for Traffic between EC2 Instances within an AWS Region

Data transferred between EC2 instances or containers, and availability zone and VPC agnostic AWS services or AWS resources in the region such as Amazon S3, Amazon SQS is free.

EC2 instances in EC2-Classic run in a single, flat network shared with other AWS customers. By design, these instances are outside a VPC. Data transfer costs for traffic across VPC peering connections do not apply to EC2 instances in EC2-Classic.

The following AWS services have service-specific pricing for cross AZ data transfer:

  1. Amazon Elastic Load Balancing: Data transferred between EC2 instances and Amazon Classic and Application load balancers using private IPv4 addresses in the same region is free.
  2. Amazon RDS, Amazon Neptune: (a) Data transferred between different availability zones for replication of Multi-AZ deployments is free. (b) For data transferred between Amazon RDS or Amazon Neptune instance outside VPC and EC2 instance inside VPC, you are charged for data transfer in or out of EC2 instance only.
  3. Amazon Aurora: Data transferred between different availability zones for replication of Multi-AZ deployments is free.
  4. Amazon ElastiCache, Amazon Cloudsearch: For data transfer between Amazon Cloudsearch or Amazon ElastiCache nodes, and Amazon EC2 instances in the same region, you are only charged for data transfer in and out of Amazon EC2 instances.
  5. Amazon Elasticsearch: Data transfer between nodes in the same domain is free.
  6. Amazon MSK: Data transfer between brokers or Apache Zookeepers and brokers is free.

Summary

If an AWS service uses other AWS services or AWS resources, then you will incur additional charges for data transfer costs for these other AWS services and AWS resources.

Example: There is no data transfer charge for using AWS Elastic Beanstalk. You pay for data transfer costs for additional AWS resources you create to store and run your application.

All data transferred due to failed or timed out requests, responses to requests, and file or network traffic overhead count towards your data transfer usage and costs.

Example: Failed or timed out S3 object uploads incur data transfer costs.

Example: Response to SQS SendMessage API call incurs data transfer costs, as do TCP re-transmits at the network communication layer.

The data transfer costs for AWS services and AWS resources may be in addition to the standard processing or routing charges for data transferred to them.

Example: If you have an EC2 instance routing to the Internet through a NAT gateway, then you will incur region-specific data transfer charge for all data transferred via NAT gateway in addition to the region-specific NAT gateway data processing charge.

Conclusion

If you have feedback, corrections or questions, or future blog topic recommendations relating to public cloud cost management, then please reach out to me at feedback@borgscale.com.

A public cloud enthusiast. Passionate about helping enterprises of any size use public clouds securely, cost-effectively and productively.