Home › Decoder › DataTransfer-Regional-Bytes: cross-AZ traffic on your bill

DataTransfer-Regional-Bytes: cross-AZ traffic on your bill

DataTransfer-Regional-Bytes is the line AWS uses for data moving between availability zones in the same region, and for traffic that uses public or Elastic IP addresses within the region, charged at $0.01 per GB in each direction.

In your bill the usage type reads: DataTransfer-Regional-Bytes, USE1-DataTransfer-Regional-Bytes

What it costs

ChargePriceUnit
Regional data transfer, billed on each side$0.01per GB in, and $0.01 per GB out
A GB that crosses AZs, both sides together (arithmetic)$0.02per GB
Inter-region example: US East N. Virginia to US West Oregon (different line)$0.02per GB

US East (N. Virginia); other regions differ. Checked 2026-11-04. Sources: AWS EC2 on-demand pricing, data transfer, AWS price list file, EC2 offer, us-east-1.

Example with made-up numbers

The line shows 25,000 GB for the month (both sides' usage added up by AWS)

25,000 GB x $0.01 = $250.00 on DataTransfer-Regional-Bytes

If a chatty service pair sends 3,000 GB each way across AZs: 6,000 GB billed x $0.01 = $60.00 from that one pair

Typical causes

Multi-AZ load balancing and service-to-service calls

Spreading a service across 3 AZs sends a share of its calls across zones by default. Microservices that call each other at high volume pay for it.

Databases and caches with replicas in another AZ

Replication traffic and clients reading from a replica in a different AZ than the application.

Message and log pipelines

Kafka/MSK, Elasticsearch/OpenSearch and log shippers replicate or forward between AZs.

A single NAT gateway shared across AZs

Private subnets in other AZs reach the one NAT gateway across a zone boundary, so each byte pays regional transfer on top of NAT processing.

Using public or Elastic IP addresses inside the region

AWS documents that data to or from a public or Elastic IPv4 address is charged $0.01/GB in each direction, even when both ends are in the same AZ. Using private IPs avoids it.

The fix, step by step

Verify first

Check these before you change anything: the steps below are suggestions, and only you can see your own configuration.

  • Find which resources produce the bytes: in the CUR use line_item_resource_id on this usage type, or in Cost Explorer split by Resource if resource-level data is on. Without that, you are guessing.
  • Check whether the traffic is cross-AZ or public-IP-in-region: look at whether the services talk via public DNS names or Elastic IPs.
  • Before pinning anything to one AZ, weigh the resilience loss: an AZ outage then takes the pinned path down.
  • Test any change in a non-production environment and compare the daily line for a week.

In the console

  1. Cost Explorer > Group by Usage type, filter to DataTransfer-Regional-Bytes, daily granularity, to see when it started.
  2. EC2 > Load Balancers > your load balancer > Attributes: review cross-zone load balancing and its documented defaults for your load balancer type before changing it.
  3. Change service-to-service calls from public/Elastic IP or public DNS names to private addresses.
  4. For read-heavy databases, point clients at a replica in their own AZ when your engine supports it.

With the CLI

aws ce get-cost-and-usage --time-period Start=2026-10-01,End=2026-11-01 --granularity DAILY --metrics UnblendedCost UsageQuantity --filter '{"Dimensions":{"Key":"USAGE_TYPE","Values":["USE1-DataTransfer-Regional-Bytes"]}}'
aws elbv2 describe-load-balancer-attributes --load-balancer-arn arn:aws:elasticloadbalancing:us-east-1:111122223333:loadbalancer/app/EXAMPLE/0123456789abcdef

Rollback

Re-enable cross-zone load balancing or the original endpoint names. Keep the old configuration in version control so the change is one revert.

Find regional data transfer in your own bill

Drop in your Cost Explorer or CUR CSV. Billtrim reads it in your browser, finds the DataTransfer-Regional-Bytes lines and what they cost you.

See a sample result

Paste your export: how to export a Cost Explorer CSV or CUR file in two minutes.

Questions people ask

Why is the charge called regional?

AWS bills data moving between AZs of one region, and traffic over public or Elastic IPs inside the region, under the regional data-transfer usage type.

Am I charged on both the sender and the receiver?

AWS states the rate as $0.01/GB in each direction: the sender side and the receiver side each carry a charge, so a crossing GB totals about $0.02.

Is traffic inside one AZ free?

AWS's EC2 pricing page says data transferred to and from a public or Elastic IPv4 address is charged $0.01/GB in each direction. Check that page for the current rules on private-IP traffic inside one AZ before assuming it is free.

Related

Part of the guide: Why is my AWS bill so high? Check these 8 line items first