I have some questions about VPS and web hosting.

As far as I understand, VPS is a virtual machine on which we can do anything as we can do with our local machine. Install software, change settings etc.

Web hosting is where we have only a folder in which we place our web site in.

However, most of the provider currently advertise their service as "VPS web hosting". This confuses me, does that mean they are selling VPS service which can only host web sites?

I need a virtual machine which host one RESTful Java service using Tomcat and Jersey and MYSQL at the backend. My plan was to hire a VPS machine, install Tomcat 7 and MySQL on that machine. Is this the right way to go?

Many thanks.

  • A lot of VPS vendors do not allow you to change what web server is running on it. Contact the IPS with your requirements and have them answer this question. – Reactgular May 13 '13 at 16:33
  • This question appears to be off-topic because it is asking to compare two broad approaches, but the meaningful difference between them will be due to the implementation details. – user53019 Oct 9 '13 at 11:22

VPS hosting

You get a virtual machine which is all your own, you run whatever software you can on the supported OS. An example is AWS, which runs heavy JVM apps just fine, provided you create instances with enough RAM.

  • You are responsible for your own OS (security and all).
  • A VM is just like a physical machine (it fails, etc), it just can be replaced faster.
  • You have full control over your OS, and can freely tweak JVM flags.
  • You can add any native components you might need.
  • Usually lower tier is cheap or even free (AWS) but rather resource-constrained.

JVM-enabled hosting

Some providers don't give you your own machine but give you enough JVM access to run whatever jars/wars you might upload.

  • You don't need to bother about maintaining the OS, the JVM, etc.
  • You have less control over things beyond JVM, and even JVM flags.
  • You still got only one instance of your app, but possibly with redundancy higher than on a VPS.

Google AppEngine

It further limits your contact with OS and JVM.

  • It is easy to have more instances of your app.
  • Your app is redundantly deployed (not on one machine).
  • You are limited to Google-supported data store options (fortunately a MySQL-compatible option exists).
  • The lower tier is free, but free resource access quotas may end soon unless you're careful.

Take a look at another relevant SO thread, too.

  • +1 for VPS means you're responsible for security. If you don't have someone who's at least a Linux power user you're going to be in a world of hurt the first time your site gets exploited. (Probably via a driveby attack against a 3rd party framework your site is using.) If the site's handling financial transactions or is critical to your companies business, your minimum goes to having access to a professional sysadmin. For small sites/companies the latter can be a contractor who normally only does a few hours a month of preventative maintenance; as long as you can buy time more in a crisis. – Dan Neely May 13 '13 at 19:51

I recommend you rent a VPS with root access. They're really cheap and you can easily make changes to the systems if your requirements ever change. Most companies provide pre-configured VPS running Linux distributions (Ubuntu, Debian or CentOS are most common) or Windows Server. Just make sure there's root access and you're fine.

Not the answer you're looking for? Browse other questions tagged or ask your own question.