I have a web app (bnbcalc.com) that typically has between ~50 and ~200 concurrent users, mostly in the US, and it passes a lot of data in each request. I just migrated to Fly from Vercel as my hosting bill was getting absurd!
I was hoping for help on selecting recommended instance type and memory. I’m a novice at optimizing instance types, as I’ve mostly used manage services that autoscale. Is it better to have more instances on low memory (2gb) machines or fewer instances of e.g (8gb machines).
I was also wondering what the performance benefits of “performance” vs “shared” instances.
Speed (for seo and ux) is super high priority. Thank you for your thoughts!
Currently nextjs can only do 300 RPS, which is more than enough for your 200 concurrent user since that interaction is mostly through the web app right. If your backend is doing more extra work, then maybe not.
You can stick w/ shared 1x with swap_size_mb = 512, which should be more than enough. IMO 2GB is overkill (but then again I don’t know any of your metrics.)
If you do need to scale, use the 2x-16x CPU shared (performance isn’t needed for handling HTTP requests) and node clusters.
You can shell into one of your machines and run free -h and top to get some information about your current situation (memory and mem/CPU respectively). Post it here if you’d like folks to comment
The main thing with RAM is that if you’re normally running out of it, bump up to the next tier.