Hacker News new | ask | show | jobs
Which is less expensive: Amazon or self-hosted? (gigaom.com)
46 points by sadtaf 4512 days ago
19 comments

"Today, instead of simply assuming that you’ll be buying and operating your own servers, storage and networking"

umm... I've been leasing dedicated servers since 1999 just fine. Why is all 'cloud' discussion always about AWS vs buying dedicated hardware? The vast middle ground serves most people just fine.

EDIT: Actually, I can understand these discussions in some capacity - with large enough orgs, money may come from budget X vs budget Y, and there can be tax implications depending on what option you choose. The majority of people I see/read/hear having these discussions are not at that level though.

I'd say the tax portion is actually a huge consideration for many businesses that would be comparing between leasing or buying. If you purchase $100k of hardware or more, that can have a pretty significant tax benefit.
Yes, again, true, but... the majority of people I know that have these discussions, and make these decisions, aren't dealing at anywhere near that level, and start to justify AWS because of a free micro tier vs having to shell out $40/month on a VPS.

Again, yes, there can be bigger considerations at play, but I contend it materially impacts far fewer people than think they would be impacted.

You're only getting the tax benefit because you've had to spend 100k to start out with (which you wouldn't have to do when renting from AWS).
It seems to me that this post is missing the advantages of Cloud Computing (AWS) and the Cloud Ecosystem. The Cloud is not less expensive than physical servers - it is different and a different beast. You have flexibility and a different toolset, as well the ability to start a new server without procurement. As well, it completely disregards some of the advantages of physical servers, including in-box IO (disk) needs. Clouds have not been good in the past for high-IO apps. As well, you get more control at the expense of flexibility.

Overall - the determination of Cloud vs Physical should not be based solely on Price but needs and overall Ecosystem that you want to participate in.

Not to mention, as an independent consultant and developer, the ability to spin up a new server to play with any time is invaluable.

Long term yes, it's cheaper to own than rent/lease.

Renting/leasing is often more cash flow friendly in the short/near term (due to not needing large sums of initial investment and [in the U.S.] tax implications of OpEx vs CapEx expenditures)

If you're trying to preserve capital in a start-up situation renting/leasing is the way to go until you know what resources you actually need.

It's also risk mitigation. You can spin those AWS instances up and down smoothly depending on your needs.

You can't get rid of a 1+ year lease agreement, or something that you purchased. Nor is it a good idea to buy/lease more quickly without really thinking about the long-term financials.

YES.

Once the business fundamentals (profitability/cost savings), load profile, and your team's skills can support physical infrastructure, it makes sense to do so. Until then, virtualize!

Unless you're running spot instances, that logic doesn't work.
Could you elaborate on this?
Reserved instances are paid for a full year.
1) There's a difference between on-demand and spot instances.

2) Well... yes. My entire premise is based upon not making any long-term leases/purchases, as I stated. Hence, if you bought a 1 year reserved instance, you're doing long-term leasing, and therefore your situation doesn't fall into what I was discussing. So, I'm not sure what your point is.

I beg to differ, in that the article doesn't consider the cost-benefit around the effort required to run them. Running your own hardware will cost significantly more time to manage than the latter, in my opinion.
Or you lease to own the hardware. Best of both worlds.
I'd like to see this same sort of thing done with updates for the lower 2014 pricing and in either the US West Oregon Region or the US East Region instead of Northern California. NorCal is roughly 10% more costly for many instance types.

Edit: And a little more attention paid to cost of maintenance and outages, which does factor into the decision of self-hosted vs AWS quite heavily. This article sort of does some hand-waving to get away from it, but it is an important consideration.

At my last startup we were running everything off of AWS but i would not do it again except for some short running toy projects. We ended up paying a few hundred $ per month for a web and db server that were just barely usable in terms of speed.

Compare that to a box i can get for EUR 50 over at Hetzner that alone is multiple times faster than the 2 small AWS vms . Need another one ? Will be provisioned in about an hour...don't need an instance anymore ? Cancel it by the end of the month, no long term contracts. Yes there is a one-time fee for setting up a new box, but thats about it. And you don't believe how far you can get with a proper beefy 2, maybe 3 machine setup..For EUR 150 you get power equivalent to spending >1000 on AWS easily.

Today AWS to me only makes sense for short term computing projects or something very time limited (eg <4weeks) or if money simply doesn't matter. Everything else is just marketing bla, i still need todo the same setup work on AWS.

It is the most ridiculous article I have ever read because it doesn't consider the cost of maintaining and support.
Who maintains your AWS instances? You still need someone to create AMIs, script updates, destroy stuck machines, etc. The physical cost of maintenance is pretty minimal unless you have a massive deployment or you have really poor hardware. Especially since if you have a few racks at any decent datacenter they will provide basic remote hands support to do things like replace failed drives.
It is the most ridiculous article I have ever read because it doesn't consider the cost of maintaining and support.

The article does consider those costs:

Note that while labor costs are included in the model, I am leaving them out of this example for simplicity. Because labor is a mostly fixed cost for each alternative, it will tend not to impact the relative comparison of the two alternatives. Rather, it will impact where the actual break-even point lies.

and furthermore, those costs would not significantly differ between the two options, or the other option of leasing servers or VPS instances. You're always going to need sysadmins to organise deployment, maintenance, dbs, backup, etc. even if you use AWS, and in addition you have to deal with all the different AWS APIs as well in order to use their services like glacier, and tailor your app to depend on them.

But price is probably the least important reason to choose your hosting solution; AWS, VPS, leased servers and your own servers have very different properties and levels of control - different companies will have very different load patterns and requirements on CPU, IO, storage, bandwidth etc. Price is just one factor in the calculation.

I agree with you. Sometimes hiring a person for maintaining is more expensive and sometimes is cheaper. It depends on the scale of product.
It is not just about hiring people there are too many parameters like providing backups and infrastrcture and so many on
And how many of those are significantly different between the two options? Either way, you still need one or more sysadmins, you still need a backup setup. Sure, there are extra maintenance costs associated with owning the hardware, but what portion of maintaining a server infrastructure is tied up specifically in that, and how does it scale relative to the size of the cluster?
In my experience of managing a team of 10+ admins, less than 5% of their time was spent dealing with physical hardware and that includes installation and repair.

Today's equipment is very reliable.

But the most expensive resource is human resource, specially expert ones.
Another case where self hosting can be much less expensive (by orders of magnitude, in fact) than cloud providers is compute-bottlenecked tasks, e.g. machine learning experiments with huge training sets.

A single self-hosted compute server that costs ~$20/month in electricity to run 24/7 would cost over $1500/month from AWS.

This may be swayed by the fact that you might have a task that can be run in parallel on multiple machines and then finish in an hour, so that you can then move on. Buying or renting enough capacity and then leaving idle for the remaining time is not an option, but with AWS you can easily spin up 100 instances for an hour and do the computational worth for 4 days of a single machine, then shut them down at no extra cost.
That is the use case that AWS is best for. That is not the use case covered in the article, though. The use case being discussed is that for a cluster of always-on machines with a fairly consistent load. If you have a minimum baseline load on your servers, fulfilling that from AWS, or Azure, or similar services doesn't make financial sense. Colocated (if you don't mind dealing with the hardware) or leased (if you do mind) servers for your baseline load combined with cloud machines for load spikes makes the most sense.
OTOH, you may have to buy the self-hosted server, which could sway the cost calculation back in favor of cloud hosting.
I am totally not convinced by AWS, but to be taken seriously you will have to factor in the initial price of that machine if you make a comparison like that.
I think this article does an OK job of outlining parts of the decision tree for cloud vs. self-hosted (while ignoring other options like traditional hosting providers). The other things to consider are staffing and materials costs if maintaining servers in house, DR/business continuity, time value of money depending on how the servers are financed, replacement of aging hardware and operating environments, and differences of how the infrastructure would be built (clustered, load balanced, geographic load balanced, etc.). The reality is cloud providers provide a lot of building blocks for you to use to design infrastructure in a more robust manner but that doesn't mean that other options should be ignored - it’s another decision that depends on the factors laid out in the article and a lot of others that are specific to each organization.
Article is from February 2012. Does this price comparison reflect today's situation?
Amazoon has updated AWS pricing list recently, But I think the method which this article introduces is useful generally for estimating server costs.
The concept is. The article was pretty actual price light anyway.
> ... a bit more than half of the total cost for each alternative is for bandwidth/data transfer charges ($35,144 for self-hosted at $8/Mbps and $36,900 for AWS).

If you're buying ~5 Gbps and paying $8/Mbps for it, please please please get in touch with me. I will sell it to you for $6/Mbps and save you 25% off the top! :-)

About $5/Mbps here! It seems like you can get some pretty good deals if you find a newish data-center. Internap has been building out like crazy recently and gave us a great deal on bandwidth. I remember the days of potentially hundreds of dollars per Megabit!

Edit: Expanded my comment.. this isn't fark.com

I have a single-server colo at a local datacenter here in Dallas[1] for $49 total (with 10Mbps). Same datacenter will give you 2Gbps to a half or full rack for $1900/mo.

[1] http://www.colounlimited.com/

At 5 Gbps order size, if you're paying more than $0.9/Mbps you're getting screwed.
You also have to take time into account. Self-hosting is going to take a bit more time to coordinate, administrate, and possibly even fiddle with hardware.

I'd also like to see a comparison with other cloud providers, since Amazon is rather expensive.

I don't see any mention of storage costs in the article. If you're using S3, it's really hard to wean off of it, and using it externally doesn't usually make economic sense because you're paying twice for bandwidth. And if you go to a S3-compatiable service, you miss out on Amazon's cost-saving features like Glacier, lifecycle management etc.

Amazon's storage pricing is already pretty competitive: http://www.twinstrata.com/cloud-storage-pricing/

I don't think "bang for the buck" comparisons are the main issue here.

The main advantage of going for AWS (especially) or other cloud provider is flexibility: you shrink and grow your server farms whenever you need to, with little setup/maintenance costs.

So, cost savings come, mainly, from not paying for idle/underused hardware. At scale, these can make it cheaper to go cloud rather than self-hosted.

Sounds nice in theory, but how often do you actually need to do that? More often than not, you are still overpaying on AWS vs a simple leased server. Look at what you get for a mere 50 bucks/month http://www.hetzner.de/en/hosting/produkte_rootserver/ex40

Add 10 to that and you have dual SSDs, no long term contracts and provisioning of new machines within the same day, mostly <2 hours.

> "More often than not, you are still overpaying on AWS vs a simple leased server"

Sorry, didn't explain myself properly: that's exactly my point. Unless you have enough scale to enjoy the benefits of on-demand shrink/grow, you're better off with offers like the one you posted or even other cloud providers like DO.

A good thing about AWS is that it ended up forcing down prices for leased servers.

While it may depend on a company's requirements; speaking for the startup I work for -- we use bare-metal servers that give us more bang for the buck and they are cheaper than aws and cloud solutions in general that we've compared (note: we were on Linode in the beginning but are now on SoftLayer)
What's the cost of staff who speak AWS lingo and know how to engineer solutions vs. traditional server environments?

In our work with private cloud, traditional enterprise data center folks don't seem to grok cloud.

There is something wrong about the "Total Costs for Different Data Transit Cost Assumptions". The hybrid cost should not be less than its parts, it could follow the lowest cost line at best.
AWS isn't about being cheaper, it's about capital preservation. (Although reserved instances give you an option to make an investment if you choose.)
That depends.

How much do you feel that outages / lost data cost you?

How much is your time worth while managing your own servers & network?

Because Amazon has never had outages? It happens to everyone at some point.
Been happening quite a lot to amazon compare this to a tier 1 telco where having a switch (central office /exchange) go down which is once in every other generation experience for the developed world.
It does happen to everyone including those hosting their own. What if your transit provider in your colo goes down? What if their UPS goes boom? That is why if you are hosting your own and will lose significant money on downtime you need to have another colo which adds a lot of cost. If you want to stay in AWS you can provision machines in other availability zones if things go bad quite quickly or have them running in other zones. You could also have redundancy by having assets with other cloud providers too.
You should have offsite backups anyway, no matter what service you're using, and a quick way to deploy to other providers if whatever host/datacenter you're using dies. That applies no matter what sort of host you use really, which I think is what the OP tried to say - not that self-hosting is bullet-proof, but that AWS is not bullet-proof either.

AWS outages in one zone do sometimes affect other zones too, so it is not disaster proof:

http://www.zdnet.com/amazon-web-services-the-hidden-bugs-tha...

I don't know about Amazon, but Microsoft pays you in credit for Azure when they have outages
I'll feel really good when I get my $500 credit for an outage that cost me $50,000 in business.
Then engineer your cloud provided architecture to be resilient, in the same manner you do so with hardware.

At least you get $500 - with an onsite, self-owned infrastructure outage, you lose that $50k...and get nothing but pain and direct blame!

Correct on both counts. Ultimately, if you lose $50,000 in revenue to an outage it is at least partially your fault. Whether you want the direct control of the entire cluster in exchange for the extra responsibility is an individual choice. My point is that offering to rebate a trivial amount of money in that case is pretty meaningless. Hell, I think its meaningless even if you have full redundancy and don't suffer any actual losses. I certainly don't see it as a perk of cloud providers.
Not making $50,000 is in no way the same as someone removing $50,000 from your bank account. It's an opportunity cost.
"[I]n no way the same"? Either one reduces my profit for the year by $50,000. One comes out of revenue, the other comes out of cash on hand (or increases debt, as the case may be). Yes, there are trade-offs and differing side effects from the situations, but they are similar in their effect on the bottom line.

Also, losing $50,000 in business because of a supplier or subcontractor failure is not an opportunity cost.

I don't really feel this factors in to this particular talk that much. Not only has Amazon had some VERY high-profile outages (meaning making the national news), but just about every cloud provider has or does have outages of more than a few minutes.
The reason why they make the news is due to the amount of people who did it wrong by hosting everything in US-EAST1 and not having the ability to deploy to another availability zone. Even data centers have outages that are much longer lasting. You do not hear about them as much because people that are large colo in multiple data centers and people that are small go down in smaller numbers.

Cloud computing is no different than anything else in computer hardware/enterprise. You need to have redundancy.

Less than 5% of my team's time is spent managing the physical infrastructure.

The rest is optimization, monitoring, backups and service management, all of which you have on AWS as well.

Google started with used computers crammed into a Stanford dorm room.

Just sayin'...