In line with Emilio, see Moodle quiz performance testing:
- Your CPU (#processors/#cores) will control the maximum number of simultaneous (exam starting at XX:XX hours) quiz candidates. A 4 core (vCPUs) quality Linux VM can handle 200 such candidates. If you don't have seasoned system administrators, then double that.
- The RAM will not affect the peak but needed for good steady response. You achieve that by loading the whole database in to RAM. So add that much to the RAM needed by everything else: the OS, web server, PHP (either as part of the web server or separate as php-fpm), DBMS, cache server (Redis). A calculation is not possible without specific numbers and sizes of each and not reliable since your database will grow. For a very rough initial value, say 1 GB database buffer, 2 GB for the system, 1 GB for the DBMS, are still 4 GB. If you go by the common formula "RAM in GB = 2-4 times vCPUs", means 8-16 GB, you'll have plenty of elbow space (for the web server, php-fpm if it is the case, and cache server).
- Yes, SSD storage gives a big boost. Nowadays you get only SSD in VMs. I don't know how much a minimal Debian server will take, sure less than 5 GB. Then you'll have the remaining storage for uploaded data, system log files, etc. and the (growing) database.
In summary,
- 4-8 vCPU depending on your Linux expertise (and the quality of the VM)
- 8-32 GB RAM depending on the side of the database, safety margin you need (and the size of your wallet)
- 50-200 GB depending on your future growth (ambitions)