# Cross-AZ Data Transfer Optimization Opportunity

> Accounts moving 100 GB or more between Availability Zones in a region carry a real DataTransfer-Regional-Bytes bill. ZopNight reads the actual Cost Explorer cross-AZ spend and marks 30% as recoverable through topology-aware routing and same-AZ placement, abstaining whenever the billed cross-AZ cost is absent or zero.

Source: https://zop.dev/integrations/aws/recommendations/cross-az-data-transfer-optimization-opportunity
Updated: 2026-08-19

---

## The account-level cross-AZ volume and its billed cost

- Metadata cross_az_transfer_gb (JSON number): the account's intra-region cross-AZ GB transferred over the lookback; applicability gate (≥ crossAZTransferHighGB = 100 GB), fail-closed.
- Metadata cross_az_transfer_cost_usd (JSON number): the real billed cross-AZ dollars (CE UnblendedCost on the intra-region DataTransfer-Regional-Bytes usage types). The monetary basis for the concrete saving; omitted by the producer when CE reports $0 billed cross-AZ, so the rule abstains rather than ship a $0 rec.

## Why cross-AZ traffic can shrink but never reach zero

Category is the cost-driven rightsizing. CurrentCostUSD = the real billed cross-AZ line item (cross_az_transfer_cost_usd). SavingsUSD = cross_az_transfer_cost_usd × crossAZReductionFactor (0.30), the conservatively-recoverable share via topology-aware routing / same-AZ placement. Unlike RC-178's colocate lever (which removes the whole inter-region line item), cross-AZ transfer cannot go to zero (multi-AZ HA inherently requires some cross-AZ traffic), so a conservative reduction factor is applied to the real CE actuals, not to a synthetic $0.01/GB rate and not to a fraction of compute cost. The rule fires with a concrete number when both signals are present and the billed cost is positive; it abstains (returns nil) when the volume is below threshold or the billed cost is absent/zero. The prior per-cluster cross_az_transfer_gb × $0.01 × 2 plan and the older cost × 0.30-of-compute fraction / $0 advisory are all superseded.

## Keeping chatty workloads in the same AZ

1. In Cost Explorer, group by Usage Type and filter to DataTransfer-Regional-Bytes to size the cross-AZ line item, then check the [per-GB rate AWS charges for traffic between Availability Zones](https://aws.amazon.com/vpc/pricing/)
2. Enable Kubernetes Topology Aware Routing (Topology Aware Hints) so traffic prefers same-AZ endpoints
3. Co-locate chatty workload pairs (app↔cache, app↔DB) in the same AZ where HA allows
4. Use service-mesh locality-aware load balancing for cross-service traffic
5. Identify the heaviest cross-AZ talkers via VPC flow logs if per-resource attribution is needed
