It depends on your local connectivity, the other clients connectivity, location, peering, security requirements and what sort of IO load you are expecting. Personally I prefer to have physical control of the server all things being equal, but it depends on your needs - 30 people all grabbing a 1GB file at the same time isn’t going to work if you only have a 20Mbit uplink to use an extreme example.
30 users sounds more commercial than personal, that being the case it can get more complex in terms of company policy/security/auditing/logging for compliance etc. can you be any more specific about what you’re doing and why? OpenVPN is a single threaded process, it’s affected by core speed and hardware instructions such as AES-NI can help, but it scales badly. Other technologies such as IPSec may be acceptable, on a personal basis you could use other more bleeding edge stuff, but commercially that’s generally a bad idea.