When people estimate AWS costs, they usually start with the obvious services.

EC2 Instances.
RDS Databases.
S3 Storage.

But there is another cost that can quietly become important as an application grows:

moving data.

Your application may transfer data to users on the internet, between Availability Zones, between AWS Regions, or through services such as NAT Gateway.

Those movements don’t all have the same pricing rules.

Some data transfer is free. Some is charged in one direction. Some can result in charges on both sides of the communication. And sometimes the data transfer itself isn’t the only cost—you may also be paying a separate data-processing charge for the service handling the traffic.

This guide explains the major AWS data transfer scenarios you should understand before estimating the cost of an architecture.


1. What Is AWS Data Transfer Pricing?

AWS data transfer pricing is the cost associated with moving data between locations, services or networks.

Depending on your architecture, this might include:

The important point is that 1 TB stored in AWS and 1 TB transferred through an architecture are completely different cost considerations.

Storage pricing answers:

How much data am I keeping?

Data transfer pricing answers:

Where is my data moving?

That second question should be part of every serious AWS cost estimate.


2. Is Data Transfer Into AWS Free?

In many common AWS scenarios, data transfer into AWS from the internet is not charged.

For example, AWS’s current EC2 data transfer pricing distinguishes between data transferred into and out of EC2, and AWS provides a monthly allowance for eligible aggregate internet data transfer out.

This can make inbound-heavy workloads relatively straightforward from a bandwidth-cost perspective.

But don’t turn this into the rule:

“AWS data transfer is free.”

It isn’t.

Where the data goes next matters.

Once traffic starts moving between Availability Zones, Regions or out to users on the internet, different pricing rules can apply.


3. AWS Data Transfer Out To The Internet

Internet egress is one of the most important data transfer costs to understand.

Imagine your application runs on EC2 and serves:

When AWS sends that data to users outside AWS, you may incur Data Transfer Out (DTO) charges.

AWS currently provides 100 GB of free data transfer out to the internet each month, aggregated across eligible AWS services and Regions, excluding China and GovCloud. Usage above the applicable allowance is charged according to AWS’s pricing tiers and service rules.

This is why bandwidth-heavy applications need more than an EC2 estimate.

A relatively inexpensive server can still support an application that transfers a very large amount of data.


4. Why Internet Egress Can Change Your AWS Bill

Consider two applications using similar infrastructure.

Application A

Runs on EC2 and serves a relatively small internal application.

Application B

Runs on a similar EC2 instance but distributes large files to thousands of internet users.

The compute cost could be similar.

The overall AWS cost may not be.

Application B can generate significantly more outbound traffic.

This is an important distinction when estimating:

Infrastructure size doesn’t always predict network cost.

The architecture’s traffic pattern matters.


5. Data Transfer Within The Same Availability Zone

Keeping communicating resources close together can sometimes reduce network costs.

AWS states that data transfer within the same Availability Zone using private IP addresses can be free in relevant scenarios. AWS’s shared-VPC documentation, for example, says same-AZ transfer is free irrespective of account ownership for communicating resources.

That means architecture placement can have a cost impact.

Suppose:

EC2 A → EC2 B

If both communicate privately within the same AZ, the cost treatment can differ from:

EC2 A in AZ-1 → EC2 B in AZ-2

This leads to one of the most overlooked AWS networking costs.


6. Cross-Availability-Zone Data Transfer

Availability Zones are fundamental to designing resilient AWS applications.

You might deliberately place application components across multiple AZs to improve availability.

For example:

Load Balancer → EC2 AZ-A

and

Load Balancer → EC2 AZ-B

or:

Application AZ-A → Database AZ-B

This is good architecture when the workload requires that level of resilience.

But resilience and cost need to be evaluated together.

AWS Cost and Usage Report documentation identifies traffic between Availability Zones within the same Region as regional data transfer and notes that, for applicable resources, both inbound and outbound traffic can be metered. Service-specific exceptions exist, so the relevant service pricing page should always be checked.

The lesson isn’t:

Avoid multiple Availability Zones.

The lesson is:

Understand the network cost of the architecture you’re choosing.


7. AWS Cross-Region Data Transfer

Now imagine your application spans:

US East → Europe

or:

Singapore → Sydney

or another pair of AWS Regions.

Traffic crossing AWS Regions can incur inter-region data transfer charges.

AWS tracks data transfer between Regions based on the source and destination, and pricing can vary depending on the path and services involved.

This becomes particularly important for:

Multi-region architecture can provide valuable resilience and geographic coverage.

But the network cost should be estimated alongside the infrastructure itself.


8. EC2 Data Transfer Pricing

EC2 is often at the center of an AWS architecture.

An EC2 instance may communicate with:

Users → EC2

EC2 → RDS

EC2 → S3

EC2 → another EC2 Instance

EC2 → another AWS Region

EC2 → Internet

Each path can have different pricing behavior.

This is why looking only at the EC2 hourly instance price can underestimate the cost of running an application.

Your EC2 estimate should consider:

Compute + EBS + IPv4 + Data Transfer + Networking Components

rather than compute alone.


EC2 Pricing

EC2 Billing


9. Amazon S3 Data Transfer Pricing

S3 has some particularly important exceptions.

AWS currently states that there is no data transfer charge for:

The first 100 GB/month of eligible internet data transfer out is also covered by AWS’s aggregate allowance, subject to AWS’s stated exclusions and conditions.

But this doesn’t mean every S3 network path is free.

Cross-region transfers and internet delivery can have different pricing implications.

If your architecture stores a lot of content in S3, ask:

Who is downloading it, from where, and through what service?

Amazon S3 Pricing


10. RDS Data Transfer Costs

Database traffic deserves similar attention.

Your application might have:

EC2 → RDS

within the same architecture.

Or it could involve:

Application Region A → Database Region B

There may also be replication or disaster-recovery traffic.

The database instance price therefore doesn’t necessarily represent the entire database-related infrastructure cost.

For multi-AZ and cross-region designs especially, understand how application traffic and replication affect the architecture’s total cost.

Amazon RDS Pricing

RDS Billing


11. NAT Gateway: Where Data Transfer Gets More Interesting

NAT Gateway deserves special attention because there can be multiple cost components.

AWS currently charges NAT Gateway based on:

  1. The time the NAT Gateway is provisioned.
  2. The amount of data processed through it.

Standard AWS data transfer charges can also apply depending on where that traffic travels.

For example:

Private EC2 → NAT Gateway → Internet

may involve:

NAT Gateway hourly cost + NAT data processing + applicable internet data transfer

This is why NAT Gateway can appear unexpectedly in cloud-cost investigations.

The EC2 instance itself isn’t necessarily the expensive part of that traffic path.


12. A Simple NAT Gateway Example

Suppose an EC2 instance in a private subnet needs to download updates or communicate with an external API.

The traffic path might be:

EC2 → NAT Gateway → Internet

If the application moves substantial amounts of data through the NAT Gateway, the data-processing component can grow with usage.

AWS also warns that placing resources and their NAT Gateway in different Availability Zones can introduce cross-AZ data transfer costs. AWS recommends considering same-AZ placement or appropriate per-AZ designs depending on the workload.

This demonstrates an important principle:

Sometimes you’re not paying only for where the data ends up. You’re also paying for the infrastructure it passes through.


13. EC2 To S3: An Important Architecture Example

Suppose an EC2 instance frequently accesses an S3 bucket in the same AWS Region.

You might route:

EC2 → NAT Gateway → S3

AWS’s own NAT Gateway pricing example shows that while EC2-to-S3 data transfer in the same Region may have no data transfer charge, sending that traffic through a NAT Gateway can still create NAT Gateway data-processing charges.

Depending on the architecture, a Gateway VPC Endpoint may allow the workload to reach S3 without requiring the NAT Gateway for that traffic.

AWS states that S3 Gateway Endpoints have no additional charge.

So:

EC2 → NAT Gateway → S3

and

EC2 → S3 Gateway Endpoint → S3

can have different cost characteristics.

That’s architecture-driven cost optimization—not simply negotiating a lower per-GB price.


14. Load Balancers And Data Transfer

Load balancers introduce another layer into application traffic.

A common architecture looks like:

Internet → Load Balancer → EC2

possibly across multiple Availability Zones.

The overall cost can therefore include more than the EC2 instance:

Load Balancer + Processing/Usage + EC2 + Data Transfer + Other Networking

When designing highly available applications, pay attention to where traffic enters the architecture and where the backend resources are located.

Cross-AZ traffic patterns can matter.


15. Why AWS Data Transfer Charges Can Be Difficult To Understand

AWS data transfer charges can feel confusing because there isn’t one universal price for “moving 1 GB.”

The answer depends on questions such as:

Where did the data start?

Where did it go?

Was it in the same Availability Zone?

Did it cross Availability Zones?

Did it cross Regions?

Did it leave AWS?

Which AWS services handled it?

Did it pass through NAT Gateway, PrivateLink or Transit Gateway?

AWS itself notes that data transfer pricing varies by service and source Region and recommends checking the applicable service pricing page.

That’s why data transfer should be analyzed as a traffic path, not simply as a line item.


16. How To Find Data Transfer Charges On Your AWS Bill

If you’re already running AWS workloads, don’t rely entirely on estimates.

AWS Cost and Usage Reports can expose data-transfer usage types that help identify whether traffic is:

For example, AWS documents DataTransfer-Regional-Bytes usage types for applicable regional transfers and separate usage types for inter-region traffic.

When investigating a network-related cost increase, ask:

What changed in the traffic path?

Maybe usage grew.

But maybe the architecture changed.

A workload could have started communicating across AZs, using NAT Gateway more heavily, replicating data across Regions or serving more content directly to the internet.


17. How To Reduce AWS Data Transfer Costs

Reducing data transfer costs doesn’t mean simply trying to move less data.

Start with architecture.

Look for unnecessary cross-AZ communication, unnecessary cross-region traffic and workloads sending large amounts of data through paid network components when a more appropriate architecture is available.

For S3 and DynamoDB traffic, AWS specifically recommends considering Gateway Endpoints to reduce NAT Gateway processing costs where appropriate.

Also consider:

Cost optimization should still respect availability, security, performance and operational requirements.

The cheapest network architecture isn’t automatically the right architecture.


18. Example: Why A $100 Server Doesn’t Mean A $100 Architecture

Imagine you’ve estimated:

EC2 compute: $100/month

It would be tempting to call this a roughly $100 AWS workload.

But the actual architecture could include:

EC2

Now imagine that application begins serving substantially more traffic.

Your EC2 instance may remain unchanged.

But your data transfer and network-processing costs could grow.

That’s why cloud cost estimation should follow the architecture, not just the server.

AWS Bill Explained


19. Estimate Data Transfer Before Deployment

Before deploying an AWS architecture, map the major traffic paths.

For example:

Users → Load Balancer → EC2 → RDS

and:

EC2 → S3

and:

EC2 → NAT Gateway → Internet

Then ask what happens when traffic increases by:

2×, 5× or 10×.

This simple exercise can expose cost drivers that aren’t obvious from individual service pricing pages.

I created a free AWS Cost Estimation Checklist covering 15 common AWS cost areas—including compute, storage, databases, networking, data transfer, monitoring and backups.

AWS Cost Estimation Checklist

You can also use the AWS Pricing Calculator on AllenMutum.com to build an initial monthly estimate.


AWS Data Transfer Pricing FAQs

Is AWS data transfer into AWS free?

Many common transfers from the internet into AWS services such as EC2 and S3 are free, but the exact treatment depends on the service and traffic path. Always check the applicable AWS pricing page for your architecture.

How much AWS data transfer out is free?

AWS currently provides 100 GB per month of eligible data transfer out to the internet, aggregated across AWS services and Regions, excluding China and GovCloud, subject to AWS’s terms and service-specific rules.

Is data transfer between AWS Availability Zones free?

Not always. Applicable cross-AZ traffic can incur regional data transfer charges, while some same-AZ private traffic and service-specific paths may be free.

Does AWS charge for data transfer between Regions?

Yes, inter-region data transfer can be charged. Pricing depends on the source/destination and services involved.

Is EC2 to S3 data transfer free?

AWS states that data transfer between EC2 and S3 in the same AWS Region is free. However, routing that traffic through another service such as a NAT Gateway can introduce separate processing costs.

Does NAT Gateway charge for data transfer?

NAT Gateway has an hourly charge and a per-GB data-processing charge. Standard AWS data transfer charges can also apply depending on the traffic path.

Can VPC endpoints reduce AWS costs?

In some architectures, yes. AWS specifically notes that S3 Gateway Endpoints have no additional charge and can avoid routing S3 traffic through a NAT Gateway.

Final Thoughts

AWS data transfer pricing becomes much easier to understand when you stop thinking about it as one generic networking charge.

Instead, trace the path:

Where does the data start → what does it pass through → where does it end?

A workload that looks inexpensive based on EC2, RDS or S3 pricing alone can behave differently once internet egress, cross-AZ traffic, cross-region communication and network-processing services are included.

Before deploying, map the traffic.

Before scaling, understand what happens to that traffic.

And when the AWS bill changes unexpectedly, investigate the architecture and data path, not just the instance price.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Discover more from Allen Mutum

Subscribe now to keep reading and get access to the full archive.

Continue reading