How Does AWS Data Transfer Pricing Work?

AWS data transfer can be broadly categorized into three types:

  • Data transfer between AWS and the Internet
  • Data transfer across AWS regions
  • Data transfer within the same AWS region

This post uses EC2 and S3 in the ap-southeast-2 region as examples.

Data Transfer Pricing: AWS to/from the Internet

All inbound traffic from the Internet to AWS is free. All outbound traffic from AWS to the Internet is charged. In other words, from the AWS service perspective, outbound (upload) is charged and inbound (download) is free.

For outbound traffic, AWS applies tiered pricing based on usage volume. The table below shows the data transfer rates from AWS to the Internet for the ap-southeast-2 region.

Rate tiersPricing
Up to 1 GB / Month$0.00 per GB
Next 9.999 TB / Month$0.114 per GB
Next 40 TB / Month$0.098 per GB
Next 100 TB / Month$0.094 per GB
Greater than 150 TB / Month$0.092 per GB

Here’s a common question: if both S3 and EC2 each transfer 1 GB of outbound data to the Internet in a given month, how much does AWS charge? $0? No — it will cost $0.114.

Why?

AWS calculates data transfer rates based on the total volume of data transferred from all AWS services to the Internet. Specifically, AWS aggregates outbound traffic from Amazon EC2, Amazon S3, Amazon Glacier, Amazon RDS, Amazon Redshift, Amazon SES, Amazon SimpleDB, Amazon SQS, Amazon SNS, Amazon DynamoDB, AWS Storage Gateway, and Amazon CloudWatch Logs when computing the applicable rate tier.

For example, if you only use EC2 and S3 and have already transferred 10 TB this month, any additional outbound transfers from either EC2 or S3 will be charged at $0.098/GB — until the next rate tier is reached.

In short: inbound is free, outbound is charged, and the rate is calculated on total aggregate volume.

Cross-Region Data Transfer Pricing

Cross-region data transfer rates vary by region. Outbound cross-region transfers are charged, while inbound cross-region transfers are free.

Consider two EC2 instances, A and B: A is in Sydney (ap-southeast-2) and B is in Singapore (ap-southeast-1). How is data transfer billed between them?

Given that the outbound rate from Sydney (ap-southeast-2) to other regions is $0.14/GB, and the outbound rate from Singapore (ap-southeast-1) to other regions is $0.09/GB:

  • When A transfers 1 GB to B: A is charged $0.14 for outbound transfer; B pays nothing.
  • When B transfers 1 GB to A: B is charged $0.09 for outbound transfer; A pays nothing.

In short: inbound is free, outbound is charged, and the rate depends on the source region.

Data Transfer to CloudFront

Data transfer from EC2 or S3 to CloudFront is free.

Data Transfer Within the Same Region

S3

Data transfer between S3 buckets within the same region is free.

Data transfer between S3 and other AWS services within the same region is free. For example, transferring data between EC2 and S3 is free.

EC2

  • Data transferred between Amazon EC2, Amazon RDS, Amazon Redshift, Amazon DynamoDB Accelerator (DAX), Amazon ElastiCache, and Elastic Network Interfaces across Availability Zones or via VPC peering is charged in both directions at $0.01/GB.

For example, if EC2-A is in Availability Zone A and EC2-B is in Availability Zone B, and EC2-A transfers 1 GB to EC2-B: EC2-A pays $0.01 for outbound, and EC2-B pays $0.01 for inbound. Total: $0.02.

  • Within the same region, data transferred using public IPv4 or Elastic IP addresses is charged in both directions at $0.01/GB.

For example, if EC2-A and EC2-B are both in Availability Zone A but communicate over public IPs: EC2-A pays $0.01 for outbound and EC2-B pays $0.01 for inbound when EC2-A sends 1 GB to EC2-B. Total: $0.02.

Q: How is cross-AZ traffic billed when using a public IP?
Cross-AZ transfers using a public IP or EIP are charged only once per direction.
For example, if EC2-A (in AZ A) transfers 1 GB to EC2-B (in AZ B) via EIP: EC2-A pays $0.01 for outbound and EC2-B pays $0.01 for inbound. Total: $0.02.

  • Within the same region, data transferred across VPCs using IPv6 is charged in both directions at $0.01/GB.

  • Data transfer between Amazon EC2, Amazon RDS, Amazon Redshift, Amazon ElastiCache instances, and Elastic Network Interfaces within the same Availability Zone is free. If VPC peering is used, the VPC peering rates apply.

For example, EC2-A and EC2-B in the same Availability Zone communicating over private IPs pay nothing.

  • Data transfer within the same region between Amazon S3, Amazon Glacier, Amazon DynamoDB, Amazon SES, Amazon SQS, Amazon Kinesis, Amazon ECR, Amazon SNS, Amazon SimpleDB, and Amazon EC2 instances is free. AWS services accessed through PrivateLink endpoints are subject to standard PrivateLink charges.

  • Data transfer between Amazon Classic Elastic Load Balancer or Amazon Application Elastic Load Balancer and EC2 instances using private IP addresses is free.

Summary

EC2

ec2

S3

s3