Customising Virtual Machines in AWS, GCP and MS Azure
One of the most remarkable characteristics of the public cloud such as GCP or AWS is its speed. Instant access to an environment from anywhere in the world, fast setup, prebuilt images or instances and managed services - all these allow the end-user to start using computing, storage and networking resources in minutes. Think of it as a pre-made heat-and-eat meal from your favourite supermarket shelf versus the one you're preparing at home, from ingredients that have to be first delivered to your kitchen.
In the field of cloud computing on the IaaS level, the price of fast setup is reduced flexibility. Don’t get me wrong - the range of offers is wide and all public cloud providers have plenty of options tailored to the needs of different types of workload. You can check out the packages by MS Azure, Amazon Web Services and Google Cloud Platform.
However, in a complex and diverse world of different business and tech challenges, you might run into a situation when a custom configuration of the instance is required. For example, you might need to run a simulation of the provisioning of third party software with very specific hardware requirements; or in a case of cost efficiency - when your workload doesn't have to run on a bigger and more expensive type of machine, but the smaller one isn’t sufficient enough. Another scenario could be when you need to map the on-premises server configuration with the available machine types in the public cloud. In other words, using a custom machine gives you the option to configure your VMs to achieve the most cost-effective performance for your specific workload.
So, what options do you have when it comes to the public cloud?
AWS offers 100 configurations of EC2 instances with different characteristics, optimised for different workloads and technological challenges. This is a very impressive number of options, and it could be one of the main reasons why it's actually not possible to have a custom machine type in AWS.
In some cases you can reduce the number of CPU cores and number of threads per core. The disadvantages of doing that are that neither the cost of running a VM will change, nor will it improve the performance as RAM is not flexible.
In Microsoft Azure, over 140 pre-configured Azure Virtual Machines are available, excluding the specific package for SAP HANA on Azure Large Instances. Not all of the VMs are available across all regions, and some VMs are even limited to only one. Considering this effort invested in building the images and the pricing model, an Azure user is not able to build a custom machine type. A workaround could be achieved with v3 VMs, using nested virtualisation, but even so it won’t give the necessary flexibility and definitely won’t be a cost effective solution.
The situations changes when we explore Google Cloud Platform. Like other public cloud providers, GCP offers a range of 28 pre-defined VMs. Unlike other public cloud providers, in GCP you can build a VM that will fit your specific requirements.
In order to succeed, you must accept the rules and limitations. Only machine types with 1 vCPU or an even number of vCPUs can be created. You can increase the memory per vCPU, but there is a maximum amount of memory you can add to each VM instance. Regardless of the CPU platform, you can add extended memory up to a total of 455 GB per VM. For instances using the Skylake CPU Platform in zones where 96 vCPU machine types are available, you can add extended memory up to a total of 624 GB per VM. You must specify memory in 256 MB increments.
The pricing model is also a bit complicated. When going over the cap of the 6.5 GB of memory per vCPU, in addition to a custom machine pricing, you will also be charged for increased memory based on the Extended Memory Pricing. The price for extended memory is different than the price for memory below the 6.5 GB per vCPU threshold and also differs from region to region.
The conclusion here is that you can find a predefined configuration for almost all types of projects and businesses amongst the packages of all three cloud providers. For extreme cases, when customisation is necessary GCP gives you the most flexibility.
The true value of the cloud is realised when customers can scale their workloads horizontally and vertically. With such diversity, complexity, sets of conditions and limitations, it is always necessary to have a trusted partner for your cloud journey, a company or an advisor that focuses on the majority of public cloud usage aspects and can effectively guide you through them.