We have a simple Node app running on Fly that soon needs to be running in 10 fixed locations.
Traffic to the app is very low most of the time (there can be minutes or hours even with no incoming traffic), while regularly (once a day) there will be a burst of traffic.
I have it figured out how to get the app to run in the locations I want and the shared-cpu-1x VM usage is just $1.94/month so with 3 free VMs in the free tier, the other 7 VMs cost $13.58/m.
AFAIK, the only way to have a VM be running in a fixed location is by using Volumes.
The pricing page states
$0.15/GB per month of provisioned capacity
Volume billing is pro-rated to the hour
And there is a minimum of 10GB for a Volume.
I’m not too sure what the “pro-rated to the hour” means for our app.
Our app needs to be running 24/7/365, so are the Volume costs ‘simply’ 10 * 10 * $0.15 = $15/m ?
FYI, the app currently does not actually need any storage. We’ll be using the Volumes only for the purpose of having the VMs run in fixed locations.
So, set the 10 regions with fly regions (no backup regions), disable our current autoscaling and then do fly scale count 10 --max-per-region 1 and that’s it?
What if I want Fly to always have 1 VM in each region and instruct Fly to add a VM in a region when needed? This means I’d prefer Fly to spin up an extra VM in London when the one VM in London is overloaded over Fly directing traffic to another region
Will fly scale count 20 --max-per-region 2 accomplish this?
There’s currently no way to do that. fly scale count 20 --max-per-region 2 will give you two instances in every region full time. fly scale count 10 --max-per-region 2 will be unpredictable.
From what we’ve seen, you’re better off running things as spread out as possible and letting traffic go to nearby regions when one gets overwhelmed. We did a lot of work to do more precise region placement at one point, and it wasn’t even very useful.
Can I have 1 instance in 10 locations (using the --max-per-region for location stickiness) and 3 instances in my 11th location (also sticky), using the same app or do I need a separate app for that 11th location?