I think for something like this, you’d rent cloud servers as you’d expect the number of concurrent users to change over time and ideally would be able to spin up more capacity when you need it without having to have those machines available all the time. You still need some kind of system that decides when to order more capacity with enough warning that it’s actually available (you can tell AWS you want a VM immediately, but it still takes a couple of minutes to transfer your data onto it and boot it up, which is longer than people want to sit in a loading screen) and decides which servers to assign to which users.
I think for something like this, you’d rent cloud servers as you’d expect the number of concurrent users to change over time and ideally would be able to spin up more capacity when you need it without having to have those machines available all the time. You still need some kind of system that decides when to order more capacity with enough warning that it’s actually available (you can tell AWS you want a VM immediately, but it still takes a couple of minutes to transfer your data onto it and boot it up, which is longer than people want to sit in a loading screen) and decides which servers to assign to which users.