Ask HN: When to choose a VPS over shared hosting?

12 points by nudge ↗ HN
Does anyone have any advice about how to choose whether to go with shared hosting or a VPS? I don't have any experience using a VPS - I'm happy to learn, but I'm concerned I won't be able to ensure the security of the thing. On the other hand, I've had good experiences with shared hosting, but I'm concerned that what I'm designing (effectively a niche social network, with 'following'-type performance requirements) may stretch the limits of a shared hosting account - although, what are those limits? At what point does it start to make sense to go for a VPS? I'm not concerned about being in control of everything - in fact, I'm sure someone else would be better at running it! - but I don't want to go with shared hosting if it means I'll run into serious performance problems later. Likewise I don't want to go with a VPS if I can never be confident about security. How to proceed? Thanks for your help.

12 comments

[ 4.0 ms ] story [ 35.0 ms ] thread
when you start doing anything more than wordpress sites or learning php, then its pretty definitely time for a vps
First off I have a VPS from both prgmr and linode, and recommend both of them, though linode is probably the more user friendly of the two.

When choosing between shared and vps you really need to figure out how much control you really need, and then weigh that control with your ability to run a server (or even learning to run a server as you say someone else would be better running it).

From what I have heard http://mediatemple.net/ is pretty good for less advanced server users, but don't necessarily take my word for it try and find some comparisons.

As for security on a VPS you'll be better than a good amount of shared hosting if all you do is be sure to keep everything up to date, use good passwords, change your ssh port to a high number (disable root access), and use iptables to restrict your ports. To do those things there are plenty of guides to be found, and of course remember to backup configuration and all essential files for your web app/page.

depends on what type of site/app you have and what type of traffic you expect. your shared hosting acct is on a server with 100 other sites. you can't rely on dedicated resources or bandwidth. shared accts are good for more static brochure sites or low traffic blogs.
I have a virtual server since about one week. It is not that hard to use. Maybe you need a few hours, but that's it.

On the other hand you can install whatever you want, no problems with new software that is not installed on you shared hosting.

In general if you follow the guides available from people like slicehost/linode etc in how to get your VPS secure it is likely to be more secure than some shared hosts seem to be.

You do need to keep on top of keeping the VPS up to date but that isn't much work.

I have yet to find a shared host that (eventually) doesn't oversell their facilities. I've found a few gems, only to be let down a year or two down the road. You don't want to be in this position.

When I started using VPS hosting, I had zero sysadmin experience outside the Windows world. In choosing a VPS host, my biggest concern was accessibility to support that actually knew how to do the things I was doing. In other words, access to actual sysadmins.

I chose Rimuhosting as my provider almost 5 years ago, and I haven't been unhappy yet. I can't stress this enough. As a new sysadmin, you're going to need help. You have two choices:

* You can rely on community, which is great, but you'll have to wait on answers, and you'll likely be told to RTFM on many occasions.

* You can go with a host that offers support, and (very important) also offers sysadmin help at reasonable rates for tasks that are over your head.

This has been the greatest thing about Rimuhosting. Their support is awesome, and they go the extra mile, but they offer something a lot of other hosts simply will not do. They offer sysadmin services at a rate of $45/hr, which is very reasonable. In addition to completing tasks, they'll send you a quick run down of what they did. Teach a man to fish style! I've learned as much from them as I have any website.

I cannot say enough good things about Rimuhosting.

I second your Rimuhosting vote: their support is personal, ridiculously timely (I've had several support emails get responses in minutes) and just outright awesome.
speaking as someone who's only income is selling VPSs, if your application works under shared hosting, and you can find competent shared hosting providers for a reasonable cost, you are probably better off with shared hosting.

Now, personally, I consider hiroku and google app engine to be shared hosting. very expensive, high end shared hosting. (in fact, carefully consider the expense... if you have low revenue per compute cycle, or if you plan on scaling up your usage before scaling up your revenue, they may not be suitable just on cost.)

Now, the advantage to shared hosting is that it actually has all the upsides the cloud promises. You actually eliminate your SysAdmin. VPS hosts (or "cloud" hosts that just give you an *NIX box) only eliminate the need for a hardware guy, which is the cheapest sysadmin role you can have.

Also, there are some performance and reliability advantages to having one large box dedicated to, say, running php, etc... vs setting your tiny private stack up on some 256MiB box. It's extremely difficult and expensive to give you a live 'hot failover' VPS without your help. It's pretty simple to have hot failover with a shared hosting setup, hot failover that the customer need not notice.

Now, the downside of shared hosting is control. While /in theory/ shared hosting should kick the shit out of a vps for anything shared hosting can do, here in reality, that's not always or even usually how it works. when you outsource your sysadmin duties, you are dependent on the people you are outsourcing to being both competent /and/ caring about your problem.

The thing of it is, if your provider doesn't care about you, then you are /much/ better off with a xen vps. with a xen vps, the other hosts on the box aren't going to mess you up nearly as much as on an OpenVZ or a shared hosting system.

This is why I sell Xen VPSs rather than OpenVZ, FreeBSD jails, or shared hosting. Yes, running a xen host takes more hardware, but it takes a lot less sysadmin time from your provider.

The only real solid "do this no matter what" advice I can give you is to have off site backups, and practice bringing your system up on a new provider every now and then. All providers, shared and vps, make mistakes. Sometimes those mistakes wipe out both live data and backups- see the hypervm disaster.

Always be ready to switch providers, and you will always be with a provider you are satisfied with.

I agree with most of what you said, except for the Google App Engine part. The App Engine free quotas are great (Python support and free quotas are basically the main reasons why I chose App Engine).

The App Engine free quotas allow you to operate at zero cost while still getting (on an app that accesses the datastore a couple times every page) about 1-2 million pageviews a month (not as much as the 5 million Google advertises, but it's still pretty darn good).

Now I don't know how long the free quotas will last, but with the amount of traffic that support, revenue isn't an issue when starting out.

eh, I know at least one small, revenue free startup that is in to app engine for a grand a month hosting fees. (If you own your own equipment, a grand a month supports maybe 100Mbps and around 10 sockets. 20 if you find someone who doesn't rip you on the bandwidth, but that's hard.)

/if/ you could buy app engine compatible service from more than one company, it would be great; it's just that googles current model with app engine /can/ result in some rather high costs (either re-writing your code to run off of google, or paying through the nose) once you reach a certain threshold.

Now, for some things, that's fine. It would be perfectly acceptable for my business model, for instance, for me to do the signup page and account management stuff on app engine. everyone who sees that stuff is paying me. but there are many business models for which it's current price structure is not very good, namely if you plan on being both big and free, it is not suitable.

the real problem, I think, is how difficult it is to move off app engine. If you are doing something in your own VPS, it's fairly trivial to move to another provider, or to your own hardware if you need to scale and save some money. this, I'm given to understand, is /much harder/ if you built for the app engine platform.

I chose a VPS b/c I wanted to run Python web apps, which traditionally don't work with shared hosting environments. Most shared hosts have daemons that kill long running processes. If you have a python script running for a long time (even if it is running your site) it would be killed. This seems to be the biggest reason in my mind for running a VPS over a shared host.

In terms of cost, a VPS usually will cost more as memory usage is something you'll have manage. For example, I would have liked to run MongoDB on my VPS but just didn't have anywhere close to enough memory. Not a big deal, but if you're using it for a business then it is important to understand what you're getting into in terms of memory usage and what services will need to run. You have to allocate resources for not only the web server, but any databases, scripts, etc.

Several VPS providers also offer managed VPS accounts. They secure the distro for you and just give you root to install a few additional items. Most of the initial setup is done for you already.