Separate transfer costs before blaming compute or storage
On this page
This check is due for a source refresh. Confirm the current documentation before you rely on provider-specific details.
Separate AWS and Azure transfer charges by documented category, then review Google Cloud network tiers before changing compute or storage. Skipping this can assign a transfer charge to the wrong cost driver and create a performance conflict.
What you need first
- Tool
- Use a manual checklist with AWS Cost and Usage Report (CUR), Azure invoice records and bandwidth pricing, and Google Cloud regional external IP tier settings. The CUR is AWS billing data containing transfer usage types; collect two complete months for a fixed scope.
- Access
- Ask authorized billing colleagues for read-only AWS CUR and Azure invoice results for the chosen scope and months. Ask an authorized Google Cloud network colleague for regional external IP tier settings and the observation date.
- If you do not use that tool
- Send billing and network colleagues the account or project scope and two complete months. Request categorized AWS and Azure charges with quantities and units, plus a separate Google Cloud tier inventory showing resource, region, tier, and observation date.
Why this is worth a look
Wrong attribution can send a team toward an unnecessary compute or storage change. AWS identifies transfer charges through CUR usage types and ProductCode, Azure separates inter-region and internet-egress categories, and Google Cloud tiers change both outbound pricing and routing path. Compare billing records with configuration evidence instead of treating a tier setting as proof of a bill cause.
Run this check
CHECKLISTComplete this checklist manually from billing records and configuration results. Keep provider scopes, months, units, currencies, and configuration dates separate.
READ-ONLY TRANSFER REVIEW
Do not change resources or network tiers.
[ ] Define scope and time window.
Record accounts or projects and two complete billing months.
Keep units, currency, price basis, credits, and taxes consistent within
each provider. Do not combine unmatched units or currencies.
[ ] Classify AWS CUR rows.
Read lineItem/UsageType and lineItem/ProductCode.
Keep CloudFront separate: Region-DataTransfer-Out-Bytes or
Region-DataTransfer-Out-OBytes with ProductCode AmazonCloudFront.
Separate internet Region-DataTransfer-Out-Bytes; same-Region Availability
Zone traffic Region-DataTransfer-Regional-Bytes; and inter-Region
SourceRegion-DestinationRegion-AWS-Out-Bytes with its incoming row.
Incoming inter-Region rows have no charge; outgoing rows determine the
charge. Unprefixed DataTransfer-Out-Bytes and DataTransfer-Regional-Bytes
refer to US East (N. Virginia). Review Direct Connect endings DataXfer-In,
DataXfer-Out, DataXfer-In:dc.3, and DataXfer-Out:dc.3 separately.
Keep S3 Transfer Acceleration types containing ABytes separate. Leave
unresolved rows unclassified.
[ ] Match Azure invoice rows.
Separate inter-region transfer within a continent from transfer between
continents. Inter-region transfer is priced per GB.
Separate internet egress by source continent and routing preference:
Microsoft Premium Global Network or transit ISP network. Record the
applicable monthly volume band. If the invoice uses billing Zones, use
the bandwidth FAQ mapping. Billing Zones are not Availability Zones.
Keep CDN, ExpressRoute, and Peering outside this comparison.
[ ] Record Google Cloud configuration separately.
List each regional external IP, associated resource, region, Premium or
Standard Tier, and observation date. Do not use today's setting as proof
of a past billing-month setting. Outbound tier pricing is per GB and
routing differs. Cloud CDN requires Premium Tier.
[ ] Compare and escalate.
Record category, quantity, unit, cost, and currency for AWS and Azure.
Keep the Google Cloud inventory separate. Flag changed quantities,
unmatched rows, and unknown historical settings for the billing or
network owner before assigning a cause.How to confirm it
- 01
Request comparable billing months
Choose two complete billing months and a fixed scope within each provider. Request read-only billing results and a dated Google Cloud tier inventory from authorized colleagues when needed. Keep each provider separate unless units, currency, and price basis match.
- 02
Classify AWS transfer rows
Read lineItem/UsageType and lineItem/ProductCode in the CUR. Separate CloudFront, internet, Availability Zone, inter-Region, VPC Peering, Direct Connect, and S3 Transfer Acceleration patterns. Leave unmatched rows unresolved instead of forcing a category.
- 03
Match Azure bandwidth categories
Match invoice rows to inter-region or internet-egress categories on the bandwidth page. Use source continent, routing preference, monthly volume band, and billing-Zone mapping where applicable. Ask the billing owner about unmatched charges.
- 04
Review Google Cloud tiers
Record the regional external IP, resource, region, tier, and observation date. Treat Premium and Standard as both a pricing and routing choice. Do not propose Standard Tier for Cloud CDN, which requires Premium Tier.
- 05
Assign causes only after comparison
Compare quantities and costs by category across the two months. Flag unknown classifications and unknown historical tier settings. Do not treat a current tier inventory or changed total as proof that compute, storage, or application behavior caused the change.
Before making changes
This is a scoped review, not a complete bill reconciliation. It assumes comparable records and authorized colleagues can provide them. AWS charges vary by service and source Region, and some in-Region traffic is free. Azure listed prices are estimates and may differ by agreement. A current Google Cloud tier inventory does not establish past settings.