Issue
I would like to specify the hardware components of an EC2 instance instead of selecting an instance type.
For example, instance type A has a CPU from company B with C cores and D GB RAM.
I would like to build my own specifications by choosing every component.
When I google this question, I see results about creating an EC2 instance, which is not the same as creating an instance type.
I also see information about creating a machine image. From what I can tell, this is about making a custom operating system.
I don’t think this is possible. Why? If EC2 machines are virtual, couldn’t you arrange virtual components with ease? If EC2 instances have physical CPUs, is it too inconvenient to offer custom hardware?
Solution
This is not possible.
AWS has racks of 'host' computers, each with a particular specification in terms of CPU type, number of CPUs, RAM, directly-attached disks (sometimes), attached GPUs (sometimes), network connectivity, etc.
Each of these hosts is then divided into multiple 'instances', such as:
This is showing that the R5 Host contains 96 virtual CPUs and 768 GB of RAM.
- It can be used as an entire computer, known as
r5.metal
, or - It can be divided into
2 x r5.12xlarge
each with 48 vCPUs and 384 GB of RAM -- each being half of the host, or - It can be divided into
6 x r5.4xlarge
each with 16 vCPUs and 128 GB of RAM -- each being 1/6th of the host, or - It can be divided into
48 x r5.large
each with 2 VCPUs and 16 GB of RAM -- each being 1/48th of the host - And so on
AWS somehow determines how to divide each host computer to support the necessary demand. However, each host can only be divided into smaller versions of the host.
EC2 Instance Families determine what type of CPU is provided and the ratio of CPU:RAM. Each host computer matches one of these Instance Families.
See: Amazon EC2 Instance Types - Amazon Web Services
Answered By - John Rotenstein Answer Checked By - Candace Johnson (WPSolving Volunteer)