I've tried searching this site and search engines but I can't find a guide or anything similar suitable for a beginner.
I have a working system that has been working so far with a handful of students, who probably are not all using it at the same time. Performance is acceptable but sometimes slow and unusable. The player sometimes complains about a slow internet connection, even when connected via Ethernet to a 300mbit cable modem. I suspect the VPS is having trouble serving all those SCORM assets quickly. I don't think the system is being made to run too much PHP code.
Unfortunately all the Moodle provider solutions and cloud Moodle services are simply too expensive for me. I'm a single man operation and I mostly create lessons, so I rely on easy to use IT infrastructure such as VPS hosting.
I understand that CDN providers can be used to accelerate/distribute/load balance (whatever the term is). However, I've only seen them advertise for use with websites (e.g. WordPress). How could a CDN help speed up SCORM modules in Moodle? Would it help by decomposing SCORM modules across many servers around the world? Would the load be split up between different servers? I really don't know this stuff very well at all but I need to do something because I might be getting 200 students soon.
I was looking at https://www.keycdn.com/pricing and their prices seem very fair.
Does Moodle work with CDN? Is there a guide somewhere? Again, I tried searching here but it returns almost 100 pages of results, most of which are words that contain "cdn" in the string and not actually what I'm looking for. I also can't find any guides.
How large is your SCORM module overall?
First you need to understand the actual problem.. is it the image files that are taking a long time to be sent by the server? or is it the CSS or other things? You can use Google Chrome's developer tools to analyze it and see what the slow down is:
It also has a handy tool to simulate what it would feel like on dial-up or a mobile internet 2G/3G connection so you can see the impact it has.
It is quite possible your VPS doesn't have much bandwidth for sending large image files out and that's your bottleneck. Only way to get around that honestly is to pay more money for faster/more bandwidth on the server side or maybe looking into something like MoodleCloud?
You could also try to host your largest images/videos on another site and embed them. That way people are downloading it from that site (which may or may not have CDNs) rather than your one server. That's why people use YouTube or Vimeo for videos for example.