Ask HN: When to choose a VPS over shared hosting?
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 ] threadWhen 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.
On the other hand you can install whatever you want, no problems with new software that is not installed on you shared hosting.
You do need to keep on top of keeping the VPS up to date but that isn't much work.
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.
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.
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.
/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.
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.