Compute power costs in the cloud have lacked a holistic metric to allow for more accurate cost prediction and analysis. In the previous article in this series, we introduced the core-hours metric, which can be used to gain a high level of granularity and more accurate visibility into compute power consumption. The core-hours metric is the result of the total number of instance cores (virtual CPUs) multiplied by the total number of hours that they run. In this article, we will discuss how knowing the core-hours cost metric can help you gain an additional level of cloud optimization.
Continuing with the previous article’s electric company analogy, an electric bill is calculated according to a fixed price per kilowatt-hour that is then multiplied by consumption. However, the concept of differentiated pricing is now rising among utilities around the world. For example, you may pay a different rate for peak hour usage compared to off-peak hour usage, which would require you to separate your consumption accordingly. Since this generates higher cost granularity, you should also calculate average costs and consumption in order to plan ahead and create an efficient environment. In this case, if your average price per kilowatt-hour drops over time, it means that more of your consumption is done at off-peak hours, which is much more cost effective.
Optimization across Instance Families and Price Models
In the cloud, pricing and calculating costs are more granular and complicated. And in order to simplify consumption and costs, you should use the core-hours metric. The price rate of one core-hour is fixed within the same instance family and grows proportionately with the number of cores you use. For example, if you look at AWS EC2, an m3.large EC2 instance has twice the amount of cores as an m3.medium instance, and costs twice as much. So the average price per core within the same EC2 family is the same for all sizes.
Different Instance Families and Types
However, if you use different instance families, the price per core changes because the CPU core isn’t the only component that is used to evaluate the power of a machine. For example, an r3.large that is memory optimized with two cores costs more per core than an m3.large with two cores. This is due to the r3.large with two cores having more RAM than the m3.large with two cores. However, because they both have two cores, they will have varying price rates per core.
Additionally, using newer generation machines can also affect pricing. Continuing with our example of memory optimized machines, a previous generation RAM-optimized m2.xlarge instance with two cores and 17GB of RAM costs $0.245 per hour where as a current generation r3.large with two cores and a bit less RAM costs $0.166. This is one example of what can affect the average price of a core. So you’re not only better off migrating older generations to newer generations for better performance, but for lower costs per core, as well.
Different Price Models
Pricing models can also affect the average price of cores. For example, if you are using on-demand pricing, the price per core will be higher than that of reservations due to their inherent discount, or you could use spot instances for even lower prices per core. Consequently, deploying more reserved or spot instances may show a trend in the drop of the average price per core. And if you are running previous generation machines, you can compare your price against models with current generation machines. Comparatively, if you have instances running on a reservation and the reservation expires, they will automatically be switched to on-demand pricing, which will result in a rise in the average price per core. Leveraging core-hours average costs to compare the impact of different pricing models is a good indicator of the efficiency of your deployment.
The following example shows how an increase in consumption of reserved instance core-hours lowers the average overall price per core (since reserved instance price rates are lower than on-demand).
Although using the average price per core can provide you with great insights, the price can change between different cloud providers. There is still a need to unify across multiple cloud providers for this to be a truly effective method. However, this report on core costs can still be an effective indicator of the cost of your cloud deployment.
Start Optimizing Your Multi-Cloud Deployment
Start your free trial today to easily identify greater cloud efficiency opportunities and view your entire AWS deployment in one place. Gain full transparency, accountability, and control.