- Newest
- Most votes
- Most comments
The situation you're experiencing is likely due to a combination of factors related to how CloudFront operates and how data transfer is billed. Let me explain:
-
Edge Location vs. Region: The EU-DataTransfer-Out-Bytes you're seeing in eu-west-1 doesn't necessarily mean the data is being served from that region. CloudFront uses edge locations, which are distributed globally and may not correspond directly to AWS regions. The "EU" prefix in the billing could represent any European edge location.
-
Request Routing: CloudFront routes requests to the nearest edge location based on network conditions and availability, not necessarily the closest geographical location. Even if your users are primarily in eu-central-1, they might be served by edge locations in eu-west-1 if that provides better performance.
-
Corporate Firewall and Gateway: Your setup with a corporate firewall and gateway in eu-central-1 complicates things. While the c-ip in your logs shows eu-central-1 (your gateway's IP), the actual user requests might be coming from various locations. CloudFront may be detecting the origin of requests before they hit your gateway.
-
Viewer Location Discrepancy: The fact that your CloudFront "Viewers" dashboard shows 96% of requests originating from the US, specifically one state, is puzzling. This could be due to how your corporate firewall or gateway is configured, possibly using a US-based proxy or VPN endpoint.
-
Billing Technicality: There's a possibility that this is related to how AWS accounts for data transfer. The eu-west-1 region might be used as a billing aggregation point for European CloudFront traffic.
To further investigate:
-
Check the x-edge-location field in your CloudFront logs. This will show which edge locations are actually serving the content.
-
Verify if there are any VPNs or proxies in your corporate network that might be routing traffic through the US before it reaches your gateway.
-
Consider enabling Real-Time Logs in CloudFront for more detailed insights.
-
Reach out to AWS Support for clarification on the billing, especially regarding the discrepancy between the viewer location and the billed region.
Remember, CloudFront's global nature means that data transfer charges don't always align with the geographical location of your origin or users. The system is designed to optimize content delivery, which can sometimes lead to unexpected, but not necessarily incorrect, billing patterns.
Sources
Interpret your AWS bill and usage reports for CloudFront - Amazon CloudFront
Understanding data transfer charges - AWS Data Exports
How to Determine Request Region and Granular Usage Statistics for Each Client in CloudFront | AWS re:Post
Issue with Geographic Restrictions on CloudFront Distribution | AWS re:Post

There are some helpful pointers here already. I checked the x-edge-location and it is always one beginning with "FRA", so clearly located in eu-central-1. Our corporate firewall is a locally installed hardware (non-cloud). I cannot imagine it masking the request as coming from a different region.
Regarding point 3: How would Cloudfront detect the origin of the request, before it hits our gateway? The gateway receives an "x_forwarded_for" header, but I could not detect any US IPs in there from the sample that I checked.
I will also try AWS support for the billing part.