For small businesses, cloud computing’s pay-as-you-go, capacity-on-demand model can be very appealing.
In the bygone dotcom days, a tech startup needed to raise significant capital just to build out capacity before serving their first customer. This made the minimum cost of entry for online services substantial.
By contrast, today all you need is a charge card with the credit limit of a responsible college student to get underway. So the cost for entrepreneurs has gone from mortgaging their future to foregoing a daily latte.
But what happens if the stars align and you hit it big? Does the pure OpEx model remain the best choice when your server farm grows from 3 servers to a dozen? Or a hundred? Or a thousand?
The title of this article reflects the conventional wisdom about the proper use of cloud computing. Although cloud computing can seem incredibly cheap for low or intermittent usage, costs can quickly pile up for heavy users. Many consumers of public cloud services find themselves reaching an inflection point where purchasing and managing their own gear starts to look appealing.
Cloud Computing Costs
[Disclaimer: I am not an accountant, nor do I play one on television. The information I’m about to dispense is for reference purposes only. Your mileage may vary.]
For purposes of this discussion, I’ll use the largest and most recognized public cloud provider in the industry, Amazon Web Services.
I’ll be comparing the costs of running full-time in the cloud against owning and running your own servers. The analysis will focus only on compute, memory, and operating costs, excluding storage and software. I’m also not including services like DNS, caching, queuing, data ETL, monitoring & management, etc.
Finally, I’ll be using the current AWS price list at the time of writing. Readers can refer to Amazon’s Simple Monthly Calculator for the most current pricing.
For additional details check out Amazon’s “How AWS Pricing Works” whitepaper.
Before we begin, we need to define a basis for comparison. AWS offers a myriad of options for their Elastic Compute Cloud (EC2). Variables include:
- On-demand versus reserved – As with your mobile phone, the costs are lower if you sign a long-term contract. With AWS you can choose between on-demand and reserved 1-year, or 3-year term, with high, medium, or low utilization. For this analysis I’ll compare all three options.
- Choice of operating system – The cost for Linux/Open Solaris < RHEL/SLES < Windows < Windows + MS SQL Server. I’ll be using Linux.
- Instance size – This is by far the biggest variable. Detailed descriptions of EC2 instances
are available on the AWS site. For this analysis I’ll be using the High Memory Double Extra Large instance, which translates to:
- 13 compute units (think 1GHz CPU cores)
- 34.6GB memory
- 850GB storage
- High I/O performance
- Location – Amazon maintains several availability zones throughout the world. Pricing varies by zone. There are upfront, non-recurring charges along with hourly costs. I’ll be using US West (Northern California), since it’s where I live.
- Data Transfer – The final item to consider is data transfer in and out of the EC2 instance. I’ll admit that this is the squishiest part of this analysis, and the values are going to be highly dependent on the application involved. The numbers used have a large impact on overall cost. As a rough approximation, let’s assume I need the equivalent of a 10Mbps link, and that my average loading is 30%. This works out to ~ 32GB/day. (You only pay for transfers out.)
As a long-time HP customer, I’m most familiar with their products. Based on the chosen cloud configuration, I’ll be using the following physical system for comparison:
- HP DL160 G6with
- 2x4core Xeon E5603 processors @ 1.60 GHz
- 32GB memory
- List price of $3,830 USD
- Assume power consumption of 164W steady state, based roughly on HP’s Power Calculator Catalog.
- The server is hosted in an Equinix data center. (It’s my blog and I’ll host where I want to.)
- Assume one-time charge of $400 to rack, stack, and patch the server
- Assume ongoing space, power, and cooling charges of $115/month
Own Versus Rent Cost Comparison
Now that the ground rules are set, let’s see where the numbers take us.
Table 1 (below) presents the cost of an EC2 High MEM Double XL instance with 32GB/day of data transfer out.
Table 2 (below) shows the cost of an HP DL360G8 with dual 8-core processors and 32GB of memory in a hosted environment.
Conclusions and Recommendations
In this article I looked at costs for a single server/instance under moderate load running 24x7x365. Based on the analysis, an owned system running in a hosted data center can be less expensive than a public cloud instance over a 3 year term. However, the results are highly dependent on several variables and assumptions. Changes to any of these could yield a very different result. Additionally, the commitment term chosen for EC2 had a huge impact on overall cost.
Whether to buy and run your own equipment or to consume capacity in the cloud depends largely on applications and scale. An understanding the load patterns as well as current and future needs is vital when choosing between owned and cloud solutions. If you have significant steady-state demand, the owned option can result in overall cost savings. On the other hand, if your load varies widely a capacity-on-demand approach will likely make more sense. And if you have both, the “own the base, rent the spike” approach should provide the best value.