Amazon Web Services are a good way to store code and other data, but it can get a little pricey. Before you upload your stuff to the Amazon cloud, check out Heap’s article, “How We Estimated Our AWS Costs Before Shipping Any Code.” Heap is an iOS and Web analytics tool that captures every user interaction. The Heap team decided to build it, because there was not a product that offered ad-hoc analysis or analyzed an entire user’s activity. Before they started working on the project, the team needed to estimate their AWS costs to decide if the idea was a sustainable business model.
They needed to figure how much data was generated by a single user interaction, but then they had to find out where the data was stored and what to store it on. The calculations showed that for the business model to work a single visit would have to yield an average one-third of a cent to be worthwhile for clients.
CPU cores, compression, and reserve instances reduced costs, but there are some unexpected factors that inflated costs:
1. “AWS Bundling. By design, no single instance type on AWS strictly dominates another. For example, if you decide to optimize for cost of memory, you may initially choose cr1.8xlarge instances (with 244GB of RAM). But you’ll soon find yourself outstripping its paltry storage (240 GB of SSD), in which case you’ll need to switch to hs1.8xlarge instances, which offer more disk space but at a less favorable cost/memory ratio. This makes it difficult to squeeze savings out of our AWS setup.
2. Data Redundancy. This is a necessary feature of any fault-tolerant, highly available cluster. Each live data point needs to be duplicated, which increases costs across the board by 2x.”
Heap’s formula is an easy and intuitive way to calculate pricing for Amazon Cloud Services. Can it be applied to other cloud services?
Whitney Grace, January 30, 2014