How does pricing work with global deployment?

I’m trying to understand Fly pricing and finding it really stressful because I just can’t get my head around how the global deployment story actually works. According to your speedrun docs, default everything → app running globally. So I get the impression from that that Fly by default runs instances in every region, or spins up an instance in every region in response to traffic (like AWS Lambda, sort of?). I assume it’s more like the latter because presumably most apps aren’t getting traffic in every single region.

But then how does that correspond to your compute pricing? If you’re running on a dedicated-cpu-1x for instance, the pricing page says that’s $31/mo for just one instance. Does that become $62/mo if you have users connecting from two regions, since Fly will be running that app in both regions? Is there some sort of prorating where you’re billed extra for the time the app is taking requests from both regions, and then it goes back if the app is only taking requests from one region? When you deploy an app you’re asked to choose a region, is it always running in that region and then also running in an arbitrary number of other regions?

We’re working on making pricing less stressful!

The short answer is, apps run one VM at all times (unless you manually suspend them). When traffic increases, we add VMs for you. When it decreases, we remove VMs. We have autoscaling docs with more details.

You have the right idea with billing. We charge when VMs are running (per second). Autoscaling is the same as if you were to manually add and remove app instances, it’s just on autopilot.

The default is that things can run globally, but you’ll only get a single VM when you create a new app. It’s closest to running AWS Fargate across a bunch of regions. We don’t bill per request, some VMs handle thousands of concurrent connections for example.

1 Like

Thanks! And is there a way to see the current bill for the month? I think I’m within the free tier but it’s a bit hard to know for sure - I can’t see any bill anywhere so does that mean I am?

Also in the https://fly.io/organizations/personal/usage UI one of my apps (delicate-) doesn’t show any “Firecracker VM exec time”. I only have the “Outbound data transfer” box. It’s definitely currently running! I’m not sure if you have somewhere better to report bugs, happy to do a proper report wherever would be most useful.