Host on the cloud, get a dedicated server or build your own? This is a common question that most entrepreneurs who are launching a service ask themselves. Seeking answers via the web probably leaves more questions than answers.
The reasons are simple, there are a plethora of articles that sing the praises (for many right reasons) of Infrastructure As A Service (IAAS) such as AWS, Google and other similar services. The ease with which you can launch servers on these clouds makes it even more appealing. The fact that Netflix and other companies are using it gives the added assurance. Now head over to the wonderful calculator that all these services provide and crunch some numbers. You may either buy into it so completely that you are ready to launch your service or taken aback by actually how much it can cost. Let's face it, it's not as cheap as its made out to be.
To better understand this problem, let's crunch some numbers with an example server. Suppose the server we need is equivalent to 4 Cores (or more), 32 GB RAM and about 200 GB hard disk space (Note that in most cases RAM is the overarching choice and CPU cores are not really configurable, notable new exception is Google). For simplicity, I am also not considering prepayment as no startup probably wants to commit for more than a few months.
Cloud Servers (Instances):
AWS - Consider the m4.2xlarge at 32GB RAM and 8 cores. Linux instance is at $0.504 per hour or ~375$ per month. Add charges for storage and data transfer and approximate it to 400$ per month.
Google - Consider the n1-standard-8 at 30GB RAM and 8 cores. Linux instance is at $0.280 per hour lowest price with 100% usage or ~208$. Add charges for storage and data transfer and approximate to 230$ per month.
As you can notice there is already a significant difference between the two services. If you check other providers the price range will be similar.
Typically dedicated servers have always set you back by a significant sum and hence may not have been a choice. But a host of new providers has meant that hybrid offerings are available which has already reduced prices. Significantly Managed dedicated servers are way more expensive than unmanaged servers. The significant difference being in unmanaged only the hardware is supported by the provider, every other responsibility us yours (software, backup etc).
Rackspace - A 24GB prepackaged dedicated server with 6 cores will set you back by ~ 674$ per month. This is backed by Rackspace Fanatical Support of course.
Packet.net - Packet offers dedicated bare metal hardware in a cloud-like fashion. Type 1 server with 4 Cores and 32GB RAM (with 2x120GB SSD drives) is at $0.4 per hour or 297.6$ per month. There are no other charges as everything is included in this.
OVH - A major European provider with a NA presence in Canada and data center. A 32GB / 4 Core dedicated server (unmanaged) costs 79$ a month (no setup fee)
Hetzner.de - German data center, 32GB 4 Cores is priced at 39 Euros or ~43$ per month with a 79 Euro / ~87$ setup fee (one time)
As can be seen, the range is again wide not considering a huge number of smaller providers. Depending on whether some of the administrative tasks can be managed in-house or not, choice of provider can be made. Point to note though is that dedicated servers can actually be cheaper than cloud.
So before deciding, its important to decide based on these (There could be many more significant ones I'am missing, add to the comments)
1. Elastic Scaling - Are your users going to grow that dramatically that you need elastic capability of that nature? Less than 1% of all web apps need this kind of scaling, rest are happy with more deterministic scaling. (Cloud v/s dedicated)
2. Redundancy - Sometimes cost of 2 dedicated servers is still cheaper than 1 cloud instance. So even HA is not an issue with dedicated, but multi-region availability etc can also determine the choice.
3. Time - The longer you are willing to commit the cheaper some of the cloud services will be.
4. Legal or Security related - If customers don't prefer shared multi-tenant instances, then you may have to go dedicated.
Net-net: Cloud services such as AWS are not the only choice. Even dedicated servers can be bought month on month with significant cost and performance gain. You actually have more choice than what is sometimes made out to be!