The Big Data Group announced the results of its first ever Public Cloud Cost Benchmark Study on December 4th. This, along with the recent news that Amazon and Google have announced price drops on their cloud services, ushers in a price war that resembles that of the major airlines.
Indeed, Amazon cut its S3 storage prices by 25 percent . Not to be outdone, Google announced via its enterprise blog another 10 percent price cut on Google Cloud Storage. Count on this back-and-forth price cut one-upmanship to last for the next few years.
The Big Data Group study was based upon data from some 250 companies, 250,000 Amazon Web Services instances, and 2.5 petabytes of storage. The study provides information on “typical cloud costs,” as well as utilization rates of clouds. Using this cost data, those looking to cost-justify cloud computing now have a few more data points.
“Some of the key findings from the study:
- Public cloud buyers could realize significant cost savings by increasing their usage of reserved instances. Only 33% of instances are reserved instances today, while some 94% of instances, if converted to reserved instances, would result in expected cost savings. Many of the reasons buyers cite for avoiding reserved instances, such as expecting projects to run only for a short time, prove to be financially unsound over time.
- Many instances are underutilized. Medium instances are on average only 12% utilized, suggesting that many customers use medium instances when they could use small instances instead.
- Elastic Cloud (EC2) instances account for more spend (at 62% of total spend) than any other resource type including Simple Storage Service (S3), Elastic Block Store (EBS) volumes, and Relational Database Service (RDS).”
What this study shows, and what I find in my travels, is that cloud computing is efficient as a concept, but those who use cloud computing are not. Or, better put, those who design cloud computing systems make some bad calls, which make the cloud-based system less cost-effective than if it were deployed in a traditional data center.
From the study, we can see that some bad choice have been made around the use of reserved instances. However, if the study drove a bit deeper, I’m sure they would find that storage utilization has not been optimized, nor have cloud-based databases, or even high-end super computing services that are cloud-delivered.
The reasons for this are fairly obvious:
- A lack of planning in the initial design of the cloud system.
- A lack of operational control during production.
- A willingness to toss money at problems.
- Inability to change systems due to built-in dependencies.
The solutions are also fairly obvious:
Planning means that we do some detailed modeling of how our system will exist within the target cloud platform. This includes utilization of resources, and a model that depicts the cost of operating the system over time, and looking at ways to make the use of a cloud service more cost effective. For instance, the utilization of reserved instances, as the study suggests.
Deep management should be implemented that monitors the utilization of resources, with a link to cost data. Right now, many cloud-based systems are not monitored, or just monitored for up-time statistics. Operational monitoring should also include costs of resources utilized, allowing the operator to tune the systems to provide the best operational performance at the lowest cost.
There should be an effort to rethink some of the costly and poorly designed cloud-based systems that are already out there. Right now it seems to be acceptable to let these systems burn cash, which requires less work than designing them properly in the first place, or changing them after deployment.
Finally, we need to correctly design and plan as we move systems into cloud computing. However, if they are already there, poorly designed and thus cost inefficient, we need to understand that the cost of just leaving a cost- and resource-inefficient system in place far outweighs any benefit we get from leveraging a public cloud.
If cloud computing is to make sense, it must provide cost efficiencies that we typically can’t find within enterprise data centers. In order for this to occur, we have to put some thinking behind how we define, design, and deploy these cloud-based systems. A bit of planning results in some huge cost savings down the road.