How much does a VM cost? The question seems simple, but the answer is surprisingly complex.
Calculating the cost of a VM requires a keen knowledge of computing costs, an understanding of computing capacity and insight into anticipated use. And although cost analysis might seem better left to the business side, IT experts and collaborative, interdisciplinary FinOps teams have all the details necessary to perform basic calculations.
These calculations lay the foundations for cloud-based VM management tasks, such as showback and chargeback. Use the examples in this cost guide to learn how to calculate the cost of a VM instance.
Calculate fixed and recurring costs
Start any VM cost estimate by calculating the total fixed and recurring costs of virtual server deployment.
Fixed costs per server might include physical servers; physical storage, such as storage arrays; hypervisor licenses, such as VMware vSphere; OS licenses, such as Windows Server 2022 Datacenter edition; and management software, such as VMware vCenter.
Recurring annual costs per server might include network connectivity, storage connectivity, OS and management software maintenance, and routine system hardware maintenance. Your organization might carry more or fewer costs, so adjust this list accordingly.
Multiply the annual recurring costs per server by the expected deployment lifecycle. For example, a three-year lifecycle means you plan to operate the equipment or software for three years before repurposing or retiring it. Individual organizations might use longer or shorter lifecycles depending on their business plans and needs.
A $10,000 fixed cost for a server -- such as a Dell PowerEdge R6625 or R7625 rack server -- will remain the same over three years, whereas an annual network connectivity cost of $500 will amount to $1,500 per server over the course of the lifecycle. Likewise, a $2,000 annual management database cost for the deployment will come to $6,000 after a three-year period.
Calculate total deployment costs
Next, multiply the fixed and recurring costs per server over the lifecycle by the total number of servers involved in the deployment. This number represents the total costs of your virtual hardware and software deployment.
Here's an example of a 10-server deployment with one large 512 TB storage array -- such as an HPE 3PAR StoreServ 8000 or 9000 storage system -- and a single management tool with annual updates. Actual costs can vary dramatically depending on the products selected and the specific terms extended by each vendor.
The table below displays cost examples and summarizes cost and time relationships. Collaborate with procurement specialists in your organization when completing such summaries.
Calculate computing capacity
After adding up the costs of your virtualized data center hardware and software deployment, the next step is to determine the computing capacity the deployment can provide to VMs.
Continuing with the above example, you know the storage array will provide up to 512 TB, and now you must determine the effective number of servers. This is the total number of servers minus the number of redundant servers.
If you have 10 servers with no redundant nodes, there is a total of 10 servers available. If three of those servers are redundant for highly resilient workload deployments, you'll wind up with seven: 10 servers total, minus three servers held for failover or redundancy-effective servers to supply compute resources.
Note the total amount of memory, processors and processor clock cycles available per server. This information is available in the technical specifications for each machine -- for example, 2 TB of memory with two 12-core processors running at 2.3 GHz, for a total of 24 cores per server.
Also determine the percentage of memory and processor capacity per server that you intend to reserve vs. overcommit. Reservation keeps some compute capacity available for later growth or performance management, whereas overcommitment maximizes resource use by recognizing that not all VMs use all allocated resources all the time. Network bandwidth in Gbps isn't included here, but is also a possible factor.
There is no requirement for what percentages to reserve or overcommit, although the choice can affect costs. For this example, plan to reserve 15% of memory and overcommit 5% -- VM performance is most sensitive to memory -- while reserving 15% and overcommitting 60% of processor cycles. The total does not need to add up to 100%.
The following table breaks down the available and allocable resources per server for all seven effective servers in this example.
Calculate effective costs
Now that you know the total deployment costs and what compute resources should be allocable, you can calculate some monthly and hourly costs for computing resources.
Start by determining how many hours per month the deployment will be available. In almost all cases, the deployment will run 24 hours per day, every day of the month. This example is calculated for 31 days, so 744 hours per month is a standard benchmark.
Also determine the total number of VM instances you intend to carve out of the deployment. For this exercise, figure 200 VMs maximum. Determine the percentage of costs allocated to memory and processor cycles. In this case, the total must add up to 100%; it's common to assign 70% of costs to memory and 30% to processor cycles.
The business needs to recover $140,000 in server costs for the deployment over three years and 12,794.8 GB of memory available, accounting for 70% of the costs. Divide $140,000 by 12,794.8 GB and multiply by 0.7 to calculate effective memory costs: $10.94 per GB over three years; $3.65 per GB, per year; $0.304 per GB, per month; or $0.000408 per GB, per hour ($0.304 / 744 hours per month).
Processor cycle calculation
The business also needs to recover the remaining 30% of the $140,000 investment over three years from the 21.896 GHz of allocable processor cycles. Therefore, divide $140,000 by 21.896 GHz and multiply by 0.3 to determine processor cycle costs: $1,918 per GHz over three years; $639.38 per GHz, per year; $53.28 per GHz, per month; or $0.0716 per GHz, per hour ($53.28 / 744 hours per month).
Finally, the business must recover 100% of the $20,000 cost for the 512 TB storage array over three years. Dividing $20,000 by 512 TB results in storage costs of $39.06 per TB over three years; $13.02 per TB, per year; $1.086 per TB, per month; or $0.00145 per TB, per hour ($1.086 / 744 hours per month).
The following table breaks down the memory, processor and storage costs for this example.
Noncompute item costs
So far, we've only calculated the compute costs per hour based on the capital cost of the gear and the total compute resources that should be available from that gear. Now, we need to calculate the monthly costs for the noncompute items, such as licenses and connectivity.
To do so, take the total lifecycle cost for each noncompute item and find the annual cost, monthly cost and cost per VM, assuming that you use 200 VMs as planned. The following table summarizes the noncompute fixed costs for this example.
Find the cost per VM
In this example, the owners of each VM instance will be charged $0.304 per GB of memory and $53.28 per GHz of processor time each month to recover a portion of the $140,000 server investment, $1.086 per TB of storage to recover part of the $20,000 storage array, and a flat monthly fee of $26.52 to help recoup the other noncompute development costs.
Some organizations also charge a one-time setup fee to provision and configure the VM -- for example, $500 or $1,000. This fee often serves as a powerful business tool to mitigate indiscriminate or unnecessary provisioning requests.
The total VM cost then depends on the amount of memory, processor cycles and storage allocated to the VM instance. For example, suppose IT offers a menu of small, medium and large VM sizes:
- a small VM with 2 GB memory, 4 GHz processor cycles and 100 GB (0.1 TB) storage;
- a medium VM with 4 GB memory, 8 GHz processor cycles and 200 GB (0.2 TB) storage; and
- a large VM with 8 GB memory, 12 GHz processor cycles and 400 GB (0.4 TB) storage.
Using the costs established above, the following table shows estimated costs for these three example VM types.
Revisit costs regularly
Remember that this is only one example of VM cost analysis and is not meant to be all inclusive. You can easily add other cost factors, such as network bandwidth or data center energy costs, to the calculations to suit specific business considerations.
Changing key cost factors, such as lowering server costs through volume discounts or increasing the number of VMs expected from the deployment, can radically alter the pricing for VM consumers. This analysis also doesn't include markups or other value-added business services.
This method provides a sound foundation for internal showback or chargeback processes, rather than generating a profit. However, it would be simple to add a margin to these costs to produce profit if IT provides VMs to external computing consumers.
Finally, cost analysis isn't a one-time endeavor. IT leaders should reassess and recalculate compute and noncompute costs on a regular basis. This should be done annually or each time a technology refresh or other major change occurs in the data center infrastructure.
The rise of FinOps
FinOps, a combination of the words finance and DevOps, is an emerging discipline intended to drive collaboration among enterprise business, finance, engineering and technology teams. This collaboration is designed to help organizations make better data-driven spending decisions and enforce accountability in technology investments.
FinOps is typically associated with cloud cost management, which can be challenging due to cloud environments' complex, granular and interrelated cost components. However, FinOps teams can also help take some of the complexity out of VM cost analysis.
While in-house VM cost analysis is a relatively straightforward endeavor, the expertise and insights provided by a cross-disciplinary team can ensure all cost components are considered with the most accurate cost data. In addition, an accurate assessment of in-house VM costs can help organizations compare costs against cloud VM instances.
Other VM options
This example assumes you're running traditional VMs operated in local data center installations that are owned by the business itself. While the process of VM cost analysis is well established, VMs themselves have evolved and proliferated. Ultimately, different VM permutations should be considered carefully when analyzing VM costs across the business.
Businesses that embrace cloud and other hosted computing can use an array of predefined VM setups available from cloud providers. The costs of cloud-based VMs are sometimes easier to analyze.
Data about cloud VM instances and their cost-time value is readily available because the business pays that bill from the cloud provider every month. However, also consider the addition of any storage resources or cloud services attached to the operation of that VM, which can dramatically increase VM operating costs.
As the public cloud evolves, major providers such as AWS, Microsoft Azure and Google Cloud have developed products to extend their respective clouds into local data centers.
For example, AWS Outposts, Amazon ECS Anywhere, Azure Stack and Google Cloud Anthos all offer means of provisioning and operating cloud resources from local installations. Consequently, the costs of such offerings, along with the related costs of actual cloud use, need to be figured into any VM cost analysis.