So, you’re looking for the right instance type for your public cloud workload, but how do you decide? Major cloud providers such as Amazon Web Services (AWS), Microsoft Azure Cloud and Google Cloud Platform (GCP) now offer such a large catalog of IaaS instances that it can become difficult to make sense of it all. The recent releases of Intel Ice Lake and AMD Milan processors have seen major cloud providers introducing even more instance types that leverage the significant performance improvements of these new chips. Let’s break down the current IaaS catalogs and see how we can navigate this complexity.
Various factors contribute to the complexity of IaaS catalogs from major cloud providers:
In the past 5 or so years, cloud providers have significantly increased the total number of IaaS offerings. Currently, Azure sits on top with just over 600 different virtual machine sizes spread across 77 families. AWS EC2 instance types sit at around 500 across 77 families. On the other end, GCP has around 150 different compute engine offerings across 12 families, though this does not include custom sizing offered by GCP.
The plethora of families offered by cloud providers offers more choice to consumers but also increases the complexity.
Each catalog can be categorized by the following five distinctions: general purpose, compute optimized, memory optimized, GPU optimized, and storage optimized.
Let’s say you’ve decided that a memory optimized system in AWS would best suit your workload. You still have just under 150 potential options to choose from!
There is also the potential for cross-family optimization depending on how your workload changes over time. Consider a scenario where you have a general purpose m5.large instance running in AWS but you need more memory.
If there is no need for the additional vCPUs, b) would be the better option.
This cross-family optimization avoids unused resources and excess costs but isn’t obvious at first glance.
Instances are offered in various regions and availability zones, often expanding to new regions over time. However, you may find an instance isn’t available for you to use. This could be because the vendor hasn’t setup the infrastructure for that instance type or it could be because all the infrastructure for that instance type is already in use, in which case you would need to wait for it to become available or choose a different instance type.
Another aspect of availability to consider is software. Is the operating system I want to use available on this instance? Does the instance I’m considering support the software I will need? This is an especially important question with Graviton on AWS as it uses the ARM architecture. Applications will need to be rebuilt to run on the new architecture, increasing the overhead of adopting that instance.
Pricing in and of itself is quite complex as there are many different options for a given instance. Do you plan to use your instances for extended periods of time? Then consider reserved instances or savings plans on a 1- or 3-year term.
Maybe you only need an instance for a brief period and only want to pay while you’re actively using it. In this case spot or on demand pricing may be more appealing. Spot instances can be up to 90% cheaper than on demand making them a great cost saving option, but since spot instances rely on unused EC2 capacity, they can be terminated when there are not enough resources.
Also worth noting is that pricing often varies by region with some instance types costing more in some locations. Pricing is updated regularly across major cloud providers based on usage and availability. AWS spot pricing, for example, can be updated as often as every five minutes.
Various vendor or instance specific factors must be considered if you want to leverage the cloud catalogs to the fullest. These factors include things like:
These factors vary across different instance types and cloud vendors and can be leveraged to maximize the efficiency of your workload.
There are many choices for processor models in cloud computing. AWS, Azure and GCP offer a wide variety of Intel and AMD processors spanning multiple generations including Intel’s Haswell, Broadwell, Skylake, Cascade Lake platforms or AMD’s Rome platform.
The latest Intel Ice Lake and AMD Milan chips were recently introduced in AWS’ 6i & 6a instance types, Azure’s D and E v5 VM sizes and GCP’s N2, T2D and C2D machine types. Newer processors provide significant performance improvements over previous generations with unique premium CPU features such as Intel’s AVX-512 and QuickAssist Technology (QAT). These premium features can yield significant boosts in performance for AI, cryptography, and other workloads.
Recently, GCP has also begun to offer the ability for users to choose the CPU generation to be used in their instance.
AWS also offers Graviton, an ARM-based processor, as a more cost-effective option. At last year’s re:Invent, AWS teased Graviton3 and just a few weeks ago announced the general availability of their first Graviton3 instance: C7g.
All these options are great for consumers, but it requires a deep understanding of the capabilities and potential trade offs of different chips.
If you wish to modernize your VMs to take advantage of faster processors, you need to verify that the VM you migrate to supports your current disk configuration and capabilities. Historically, Azure offered local storage with their VMs but with v4 and v5 virtual machines, they have introduced flavors of the same VM with and without disks. For instance, of the 625 VM sizes in the Azure catalog, 149 have no local disk.
Furthermore, there are notable differences in storage configuration between AMD vs. Intel versions of the same VM size.
Here is an example for standard_e32 (32 vCPUs and 256 GB memory):
As shown above, the standard_e32 instance type has 14 different options with a variety of disk configurations and processor architectures across 3 generations.The v3 generation e32 has only two Intel-based options: disk or disk with premium storage support on attached storage.
The newer v4 and v5 VMs each introduced 6 options with variations based on Intel vs AMD processors, local vs no local disks, and standard vs premium storage support.
Furthermore, each generation supports different processor models, network capabilities, Hyper-V versions supported, etc., making it a challenge to choose the optimal instance type.
To effectively leverage AWS, Azure, or GCP’s IaaS catalogs, you need to consider hundreds of choices available from each cloud vendor. Densify helps optimize performance of your instances and control your bill. Our cloud optimization solution tracks your workload’s utilization history and considers a wide range of factors to automatically recommend you the best instance types to use.
Reach out for a customized Cloud Optimization Demo.