EngineSmith's Blog

Engineering Craftsman

How to argue against using cloud?

Posted by EngineSmith on September 12, 2010

I have been constantly asked the question: why don’t we use cloud? (Surprisingly also many from business/sales people, Amazon etc. really did a good job in PR because I would never ask my VP of Sales “did you try this sales methodology?”).

I used to argue on many different reasons, like complexity, no guarantee of service, slowness, security etc. Then I got tired, and found out this simple, most effective way, just consider one MySQL instance (we have 8-core, 32GB memory, purely Intel X-25E SSD drives for MySQL, about $8K). On Amazon EC2, this is at least comparable to this:

“High-Memory Double Extra Large Instance 34.2 GB of memory, 13 EC2 Compute Units (4 virtual cores with 3.25 EC2 Compute Units each), 850 GB of local instance storage, 64-bit platform”

How much does it cost on EC2 to run it for 2 years? $1/hour * 24 * 365 * 2 = $17,520. EC2 pricing. Also, EC2 doesn’t save your on personnel cost, you still need to have ops engineers (physically deal with your own server will take 2 extra hour than EC2 I guess 🙂

To run my own server in colo for two years, you might add $200/mo * 24 = $4,800 operation costs (rack, power, cooling). That is still only $12,800 total. End of discussion.

Needless to say, I have 4 more cores, and at least 3x better I/O performance, which also means less nodes are required, as well as simpler application logic and operations.

Oh, did I mention that EC2 is a wild zoo? Recently people are telling me that they can’t keep a TCP connection open for more than 10 minutes there. Imagine what that will do to your system.

One Response to “How to argue against using cloud?”

  1. Jeff Darcy said

    I don’t disagree with your conclusion, but I think it’s fairly specific to a particular set of needs. Sure, if you need something pretty beefy and that’s going to run flat out, then cloud pricing isn’t very competitive with colo or private. On the other hand, many times people only need something that’s offsite but doesn’t need to be particularly powerful, or only need extra power for a little while. For example, I have a personal machine in the Rackspace Cloud that I leave up 24/7 to do various things for me, and it costs *much* less than any machine I could own. When I need to do tests, I can also spin up a dozen more machines for a few hours, then spin them down again and not have to pay for them the other 98% of the time when I’m doing other things. As a distributed-systems developer, I often specifically want to use a lot of small machines instead of a few big ones, to test scaling instead of per-node performance, and that could get very expensive with machines I own. The economics in these cases work out so well for me that I can do this kind of thing out of my own pocket, though a “virtual equipment budget” from my employer would be nice too.

    The real comparison here, IMO, is with the smaller instance types and/or with load that varies a lot. For example, the “extra large” instance type would cost half what the “double extra large” costs, less than your colo arrangement, and for a workload that’s memory rather than I/O bound it might make a lot of sense. Other instance types or other providers can offer other tradeoffs, and there are also cases where “pay for what you use” will be better than any long-term own/lease arrangement.

    Cloud isn’t the right choice in every situation, but neither is colo/private.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: