Bandwidth pricing is confusing!

I’m confused about which country/region’s cost would I be charged?

As I understand, from three different posts/forums

Here are the posts I read and what I think:

This blog post (We cut bandwidth prices. Go nuts. · Fly) seems to say that bandwidth is charged based on the VM’s region. Same with this forum post (Regions of outbound data transfer?).

This forum post (Bandwidth Clarification - #5 by snap0) suggests that bandwidth is charged at the Fly edge location.

I get that these all are in different years, so the strategy must have changed.

My question is, am I charged for egress bandwidth from the VM’s location, the Edge location (which I’m guessing we don’t have control over), or the User’s location?

So if I deploy an app in Europe, and a user from Mumbai, India is accessing my app, what price am I charged?

The closest edge location to Mumbai, India should be Fly’s Chennai, India datacenter. Or maybe some other Asian region.

Thanks!

3 Likes

This is confusing because our bandwidth metrics / billing system is somewhat limited, so we can’t make it as nuanced as we’d like.

As of right now, you are billed for outbound traffic from the region a VM is running in. If you have a VM running in DFW, we charge $0.02 per GB that leaves its network interface.

We don’t currently charge for traffic leaving the proxy. So if you have users connect from India, but your VM is running in DFW, we charge $0.02 per GB.

Once we have a better system in place, we’ll change how we bill for bandwidth:

  • Data that stays in the same region at $0.00 per GB
  • Data that stays in our network, but leaves a region will be billed, but at a much reduced rate. Less than half our current prices
  • Data that leaves our network will end up costing roughly what we have on our pricing page
5 Likes
  • Data that leaves our network will end up costing roughly what we have on our pricing page

For traffic that leaves your network, but not through your proxy (aka not via any Anycast IPs). Will this part of the traffic be billed on the pricing page?

For example, I host a Docker Registry app. The user PUTs the blobs via Anycast IP (this part is free because it’s inbound traffic), and my app uploads them to an S3 bucket (this part is charged because it’s outbound traffic). If traffic to S3 is charged as per the current pricing page, $0.12 per GB is a bit expensive (for Indian machines).

Yes, we pay for (and, thus, have to bill for) traffic that leaves regions. So when you send data to S3, we bill per GB.

Well, I thought the traffic through your Anycast IPs was bit different (The Fly.io Architecture · Fly Docs). I thought you were paying more for this kind of traffic, given that you also need to move traffic between the edge and machines. My understanding is that the traffic to S3 is from the machines directly to the AWS Networks. So, less moving, less fees.

@kurt Thanks for your reply and the clarification.

Just to confirm, currently, internal bandwidth over the Wireguard private network is also charged at the same rates as external egress bandwidth is charged, correct?

Sometimes. If your app has an anycast address, then yes. If you do not see anything in fly ips list, then we don’t yet bill for traffic on those VMs.

How about the scenario where one fly app talks to another fly app in a separate organisation using the public anycast IP, and both apps are in the same region, would this be classed as data that hasn’t left the region (so $0.00 per GB) or would it be classed as data that has left the network?

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.