NetShroud lifting the veil

December 2, 2010

AWS vs On-Site Private Cloud – The Calculator

Filed under: Uncategorized — Tags: , , , , — Richard @ 1:33 pm

AWS vs On-Site Private Cloud – The Calculator

In a previous post I compared the cost of building a private virtualized development environment in house versus deploying the same infrastructure on Amazon EC2.  Given a simplistic set of assumptions about usage patterns and resource requirements, my conclusion was that building a bare-bones private cloud was about half the cost over 5 years versus building on Amazon.

In this post I’m making my Cloud Calculator Google spreadsheet available so that you can make a copy, put in your own requirements and assumptions, and see what would be the most cost effective in your environment.  I would love to get your feedback on the calculator!  Let me know whether you find it useful and if you have any suggested improvements.  Better yet, make the improvements yourself and share them back to me!

The public Google spreadsheet comes with a sample set of requirements for a more complicated – and probably more realistic – version of the previous post’s fictitious #SandTech development environment:

  • 303 total virtual servers
  • 36 physical hosts (in private cloud)
  • 5 TB of network storage
  • Server instance memory requirements ranging from 600MB to 68GB
  • 60% of the servers in use around 50 hours per week
  • 30% of the servers in use around 16 hours per week
  • 4 database servers in use 100%
  • A dozen Map/Reduce nodes running around 67 hours per week

Below is an image of the spreadsheet’s Summary tab, showing the 3 and 5 year costs for each option.  In this case, Amazon AWS wins the cost contest over a 3 year period, though it still loses out over 5 years.  The calculator also shows the possible savings of a hybrid solution where the highly utilized nodes reside in the private cloud and the “burst” nodes sit on Amazon.

Give it a go and let me know what you think!

Cloud Calculator

November 23, 2010

EC2 On-Demand vs. Reserved

Filed under: Cloud — Tags: , — Richard @ 1:03 am

In a previous post I compared the cost of building a private virtualized development environment in house versus deploying the same infrastructure on Amazon EC2.  Given a simplistic set of assumptions about usage patterns and resource requirements, my conclusion was that building a bare-bones private cloud was about half the cost over 5 years versus building on Amazon.

One reader asked, “If cost is 2x at 30% server utilization, sounds like if the server is used 15% of the time the cost will be the same either in house or on Amazon.”

This would be correct if you ignore that at 15% utilization (25 hours per week) you would never save enough on the hourly usage rates to break even on the reservation fee.  The graphic below shows the break-even cost points for EC2 reserved versus on-demand m1.large instances given various assumptions about the decrease in future average hourly usage pricing.  The steeper lines are on-demand instances and the less-steep lines are reserved instances, assuming a 3-year reservation.

The line colors represent the different assumptions about average annual compound usage pricing reduction per year.  Blue represents a 4% annual price decrease; yellow represents 6%; red is 8% and green is 10%.

I generated this chart in Google Spreadsheets.  Grab a copy to play with if you like.

Key takeaways:

  • If an instance needs to be up for less than ~48 hours per week, or around 22% utilization, you should definitely choose the on-demand option.
  • If you are sure an instance will need to be up for more than ~56 hours per week, you should buy down the usage pricing by reserving your instance.
  • Between 48 and 56 hours is a toss-up, and whatever assumption you make about future price reduction probably won’t make much of a difference.  If you think your utilization might to grow over time, it might be best to go with reserved instances.

November 12, 2010

The economics of Private vs. Public cloud.

Filed under: Cloud — Tags: , , , , — Richard @ 1:56 pm

… or, Act NOW to get Amazon EC2 m1.large for 50% off!

Sorry, I don’t have any inside scoop on blow-out sales for EC2 instances.  But if you are considering Amazon AWS as a way to replace or enhance your development data center, you might benefit from taking a look at my simple cost analysis for #SandTech, a fictional software company building web delivered applications.

Based on a set of admittedly over-simplified assumptions, the cost to build a private cloud comes out to around half the cost of the same infrastructure on Amazon.  In future posts I’ll look at situations where Amazon comes out as the better choice, or better yet, where a hybrid public-private cloud might be the optimal strategy.

Ready to #Sand?

Let’s assume you are the head of IT/Ops for #SandTech.  Your boss, Mr. Big, heard that you can save a ton of money by moving to the cloud, and has asked you to look into it and make a recommendation.

Ironically enough, all of your existing 300+ engineering servers are approaching 5 years old and are due to be replaced.  You’ve also outgrown your current headquarters and will be moving to a new facility.  This is the perfect opportunity to start from scratch, either by building a private cloud on-site, or leveraging AWS for public cloud services… or both.

For this analysis we’re going to keep things really simple, focusing just on servers and ignoring stuff like bandwidth usage and storage.  Whether you decide to build the engineering systems in the cloud or build on-site, in either case the new headquarters will need a network infrastructure with Internet routers, firewalls, and and network core to serve the basic corporate IT needs of the company.  Fortunately, your new headquarters has a decent server room with sufficient power and cooling capability, so we’ll ignore all these costs in our analysis.

As for server spec, every one of your Ubuntu development servers just happens to need exactly 7.5 GB of RAM.  Processing power is not really important, especially for the development systems that won’t see much load, so the equivalent of a couple of CPUs is just dandy.  For local storage, 200GB is more than plenty.  Not-so-coincidentally, an Amazon m1.large instance fits the bill nicely.

Of course, not all servers are used all the time; a development server generally needs to be available only when an engineer is actually working with it.  However, your engineers generally share servers as they are working on projects, and as we know engineers don’t all work the same hours.  The engineers are primarily located in Silicon Valley, but there are quite a few engineers on the US east coast and there is a significant QA function done in Asia.

Broadly speaking, some servers need to be up pretty much 100% of the time (i.e., your SVN and Bugzilla server), and some servers are only used occasionally.  After careful analysis, you’ve determined that the average usage across all the systems is 30%, meaning out of the 8,766 hours in a year (365.25 x 24), the servers need to be up and available around 2,630 hours, which comes out to around 50 hours per week.

AWS logo

Amazon EC2

So now we know:

  • what kind of servers we need
  • how many servers we need
  • how many hours in the year they will be used

Looking up the on-demand cost of an Amazon EC2 m1.large instance we see that it’s $0.34 per hour.  Putting on your green eye-shades, 2,630 hours times $0.34 per hour comes out to around $894 per year per server.  Over 3 years, that’s $2,682.  Over 5 years, it’s $4,470.

We can cut this cost slightly by paying the up-front EC2 reservation fee to buy down your hourly usage rate.  Back to the green eye-shades, the 3-yr reservation fee for m1.large is $1,400 which buys you a $0.12 per hour usage rate.  Over 3 years that’s $2,346 (2,630 hours * $0.12 * 3 years + $1,400).  Over 5 years, its $4,134, assuming in year 4 and 5 you pay the non-reserved rates (you can either trust me on this, or don your eye-shades again).

However, we can set aside most of that math for now (but hang on to those green eye-shades).  Amazon has been occasionally lowering the cost of EC2 instances over time, so the numbers above are somewhat inflated.  For the sake of argument and simple math, let’s assume taking future year price reduction into account, it’s a good bet that our 3 year cost per server is is going to be more like $2,000.  We’ll assume the 5 year cost will be $3,000.  Great!  We can get our 300 servers from Amazon for $600k over 3 years or around $900k over 5 years.

Private Cloud

Your crack IT team has identified a hardware platform for the private cloud option.  The specs are 1 rack unit chassis with dual 6-core AMD processors, 64 GB of DDR2 memory, a 2TB internal SATA disk, DC power supplies and out-of-band management capabilities.   Xen Server was chosen as the virtualization hypervisor, for which you’ve reserved around 2.8GB of RAM, leaving 61.2GB available for virtual machines.  With Xen, a physical server can be carved up in just about any possible combination of RAM, CPU and local storage.  In this case, each server instance will be 7.65GB memory and 240GB of local storage, amounting to 12.5% of the available server.  Each server will also get the equivalent of 1.5 CPUs allocated.  Fortunately, Xen can be configured such that virtual hosts are allowed to take advantage of unused processing time from other virtual machines, so the effective processing capacity can be much higher.

Your team would be racking these servers into a 44RU cabinet with a pair of stackable 48-port access layer switches (i.e., Cisco 2960-S) and a dumb 48-port out-of-band management switch.  Since all our servers are running on DC power, the cabinet also houses a stack of AC to DC rectifiers and a DC power back plane.  Our vendor has given us a price tag of $27k for the cabinet, rectifiers, switches and cabling, tax and delivery.

Now, we know we need 300 virtual servers, each of which consumes 12.5% of a physical host.  This means we need a total of 37.5 physical hosts.  Our vendor tells us these servers can be had for $7k each including tax and delivery with the cabinet.  We can’t buy a half server, and want to have an extra server on hand in case one breaks.  This brings our total to 39 at a cost of $273k.  Adding in the cost of the cabinet, we’re up to $300k.

There are several non-capital costs we now have to factor in.  Your vendor will provide warranty, support and on-site hardware replacement service for the cabinet and servers for $15k per year.  Figure you will need to allocate around 10% of the time of one of your sys admins to deal with hardware issues (i.e., coordinating repairs with the vendor) at a cost of around $15k per year in salary and benefits.  You’ll need around 20Kw to power and cool the cabinet at a cost of around $20k per year.  Figure around $10k per year to lease an appropriately sized UPS, transfer switch and generator, including maintenance costs and amortization of installation over a 10 year useful life.  In total, your non-capital yearly costs add up to $60k.

So in all, the 3 year cost of your on-site private cloud deployment is $480k.  Compared with the $600k cost of running on Amazon over 3 years, your $480k on-site option will be 20% lower.  If you assume a 5 year life for your equipment, your on-site deployment comes out to $600k, or 33% less than running it on Amazon.

Now let’s change the equation slightly.  Let’s assume rather than 7.5GB of RAM, your servers actually only need 5.1GB of RAM.  With AWS, you still need to run the same m1.large EC2 instance type – Amazon doesn’t offer an “m1.medium instance” or anything between the small 1.7GB and large 7.5GB instance type (aside from the high-CPU XL 7.0GB instance, but this is twice the cost of m1.large).

But on your private Xen cloud, you can carve the physical Xen host up just about any way you want.  You can put twelve 5.1GB virtual servers on each physical box and drop your server count down to 26 boxes, including your spare.  This reduces your 3 year cost of on-site deployment down to under $360k, or 40% less than the cost of Amazon.  For a 5 year amortization, the cost would come in around $450k or 50% less than Amazon.


Clearly, assessing the economics of building a private virtualized infrastructure versus running on a public cloud will greatly depend on your assumptions.  Most significant of these is the utilization you expect from your servers.  Running an m1.large EC2 instance full time over 5 years will cost you well over $6k, even accounting for likely future price decreases;  the same virtual server on your private cloud will marginally cost less than $2k.  However, if that same server will only be used 10 hours per week, the cost on Amazon would be a third the cost of the private cloud option.

So how about the best of both worlds?  A hybrid private / public cloud will be a topic for a future post, in which l will talk about the calculator I created on Google Spreadsheets, and make it available for you to copy and try out yourself.  I created the tool because Amazon’s calculator is not very useful for comparing to a private cloud / virtualized infrastructure because it makes the assumption every server is a dedicated box.  With my calculator you can create real world scenarios of servers with different specs and utilization ratios (obviously nobody is going to build a farm of 300 servers all with 7.5GB).  You can also include stuff like bandwidth utilization and storage, and all of your assumptions around AWS pricing and the architecture of your on-site private cloud.

Powered by WordPress