How does fly decide which regions to deploy in based on the region pool and backup regions?

Hi,

I’ve got an app which has this configuration for regions:

Region Pool: 
cdg
ewr
nrt
Backup Region: 
sjc

If I deploy this with scale count 3, it deploys a VM in cdg, ewr, and sjc. I don’t get my nrt VM unless I bump up the scale count to 4. Then, if I put the scale count back down to 3, fly chooses to shutdown the nrt VM.

My conceptualization of regions is fly will always try to use my region pool first, and only use the backup region if one of the regions in the pool is unavailable, but there’s something about the way fly’s choosing regions that I’m not understanding correctly.

Hmm. I tried again with a different setup

Region Pool: 
cdg
ewr
nrt
syd
Backup Region: 
sjc

and I set the scale count to 4. Fly has deployed a VM in sjc, ewr, nrt, and syd, so this time I’m missing my cdg VM. Once again fly is prioritising a backup region… next, I will try remove the backup region altogether and see if that improves things.

I removed the sjc backup region and that’s triggered Fly to deploy to cdg, so I’m happy now.

I had a look at the docs again, and I noticed in the backup regions section it says “Backup regions are disabled by default as they cause more problems than they solve.” Scaling and Autoscaling · Fly Docs

1 Like

I’m glad you found that, the backup regions are all kinds of surprising.