Approx how many agents do you have providing services to the 2000 users ?
100 tickets per month for an entire OsTicket instance doesn't sound like a lot and not enough for 2000 users.
We might have closer to 1500 users but it can vary a bit and we only cater for a small subset of requests, with just a few departments spread over approx 40 agents currently.
We use a single linux VM instance with 4 CPU, 8GB of ram, and 100GB of storage. Likely you will run fine with a little less memory but occasionally doing things like database backups/imports etc I find it nicer to have a little more memory headroom.
The storage depends more on how long you are expecting to run the service, and how many backups you want to keep on disk. Unless you have something special doing backups, most likely you will use mysql dump and tar up a copy of the attachments folder locally before copying these off to another system for safe keeping. We keep a couple of these backups on the server for easy access but certainly you could run with say 50GB initially without much trouble. The actual size of a brand new install isn't that big but attachments start to add up.
Very likely this is different for everyone but as a very rough approx for what we saw, 50000 tickets was under 1GB for compressed database backup and maybe 6GB for compressed tar of attachments.
If you are not using a VM (which I would recommend) and have a bare metal server (seems like overkill), then certainly I wouldn't like to support it running in production without at least a dual PSU.
Then as Kevin says you have lots of other enterprise options for running these types of web server / database server configurations such as load balancers and database clusters which give you a lot more assurances around staying safe and available.