As a business which focuses on cloud cost management, we’re often asked about comparing the costs between vendors. The answer is very complex as it depends on what you want, how long you want it for and where you need it. Cost engineering of the cloud is so fraught with complexity it isn’t a good tool to use when choosing your preferred cloud vendor.
When comparing vendors, it is clear that:
- AWS has the widest set of tools meaning the build speed can be accelerated by using platform services, rather than deploying infrastructure and apps. It has many options to reduce the cost of services, but they are not always obvious or easy to apply.
- Microsoft Azure is cheaper for Microsoft Application Services and for many dev-ops services. It also has a deep 3 year discount on a range of products.
- Google Cloud is often cheaper and you get a better technical specification for your money for many basic services, but there are a limited set of platform services. The ability for cost management is low on many products.
While technically possible to put different workloads on different clouds this has limitations. If the workloads need to communicate regularly then that would introduce significant network cost and latency between the applications. You should also consider the management overhead of operating on multiple clouds and ensure you have enough trained engineers, as they’re all different enough to require different skill sets. Therefore it is recommended that customers use a single primary cloud provider where possible, and only use a secondary cloud provider if really necessary.
The technical specifications are slightly different for each vendor. The processor specifications are different, and therefore the RAM speeds can be different. The disk speeds storage capacity and access speed are just a few of the differences when comparing vendors.
The financial optionality is also different between vendors. AWS offers nothing (NUF), partial (PUF) and all upfront reservations (AUF) prices, Azure provides nothing or all upfront reserved instances, but at the same price point and Google Cloud only offers nothing upfront pricing for its commitments.
As an example of the complexity, the most basic compute instance costs for a 4vCPU, 16GB Linux instance is displayed below:
The vendor selection is highly dependent on the financial model, so if you’re using a spot model (Azure), short term on-demand (AWS or Azure), 1 month continuous usage (Google), 1 year commitment paying upfront (AWS) or not (Azure) you can calculate the best price.
Processors and RAM speeds
The processors and RAM speeds are different between vendors (With AWS using Intel 8175M at up to 3.1Ghz, Azure using 8272CL at up to 3.4Ghz and Google using an undefined Cascade lake (82xx) model processor) and the storage operates at vastly different specifications, which could significantly change the application performance. Therefore if you need to fully understand the cost versus performance relationship across vendors then a complex multi-dimensional matrix is required, and if your requirements change slightly then the vendor of choice can easily change.
All of the vendors have multiple GPU offerings. AWS and Azure have exactly the same on-demand price for their base servers (this is the same for their general purpose server, as noted above) but that’s where the similarity ends.
The GPU availability and maximum number per instance varies between cloud vendors as shown below (note: not all options are available in all regions).
Google allows GPUs to be connected to any of its N1 instances, so you don’t need to buy a high CPU server to get a high GPU count. It is therefore generally the cheapest, even when you do size matching against the other vendors.
Azure adds the biggest temporary storage disks to its GPU machines, but AWS has smaller and faster disks on its G4dn servers. Spot, on-demand and reservation prices vary across the instances and terms as shown below:
The Google Cloud cost advantage is higher if you require a multi-GPU solution.
AWS currently has the largest instance sizes, Google the largest storage volumes, and Azure includes large temporary storage with many instances.
Storage prices vary widely between vendors, but they don’t offer the same technical specifications for their services. Therefore, the vendor choice would be different depending on the type of storage required (file, block, or blob), IOPS, throughput, region, access frequency and resiliency requirements. There are so many different options and criteria that even the comparison of services becomes complex, and would need to be considered on an individual work package basis.
- Cost engineering of the cloud is extremely complex and it isn’t a good tool to use when choosing your preferred cloud vendor.
- AWS has many options to reduce the cost of services but they’re not always obvious or easy to apply.
- Microsoft Azure is cheaper for Microsoft Application Services and for many dev-ops services.
- Google Cloud is often cheaper and you get a better technical specification for your money for many basic services.
- It is recommended that customers use a single primary cloud provider where possible.
- Technical specifications, financial optionality, processors and RAM speeds, GPU offerings and storage differs between cloud vendors making cost optimisation very configuration specific.
You can use the cost calculators from AWS, Azure and Google Cloud to provide an estimate of cloud costs, but technology choice, geographical reach, resilience requirements and performance criteria are a much better guide when choosing the right vendor for you.