🐾How to decompose EC2 instance type?🐾
🤓 Do you struggle with choosing EC2 instance type? Are you puzzled by all the letters included in the EC2 type? Let’s decompose it and choose the correct one for your application.
Instance type name can be decomposed into five parts that describe instance characteristics: Family, Generation, Processor, Capabilities, and Size.
Family
All instances can be sorted into five groups (each includes several families): compute, storage-optimized, memory-optimized, general purpose, and accelerated compute.
Compute group includes:
compute-optimized C family
high-performance computing HPC family
Storage optimized group includes
dense storage D family
storage optimized I family
storage optimized Im family with a 1:4 ratio of vCPU to memory
storage optimized Is family with a 1:6 ratio of vCPU to memory
HDD-based H family
Memory-optimized group includes:
memory-optimized R family
high memory U family with up to 24 TiB of memory
memory-intensive X family with one of the lowest prices per GiB of RAM
compute and memory-optimized Z family
General purpose:
general purpose M family
macOS-based MAC family
T family with burstable CPU and smallest EC2 sizes possible
Accelerate compute:
GPU accelerated P family
graphics-intensive G family
DL family optimized for deep learning workloads
F family with hardware acceleration with field programmable gate arrays (FPGA)
TRN family powered by AWS Trainium chips for deep learning training
INF family powered by AWS Inferentia chips for deep learning inference
VT family for real-time video transcoding
Processor
AWS provides you with the choice among AMD, Intel, and Gravitron processors. Intel and AMD have x86-based architecture, while Graviton has 64-bit Arm Neoverse cores. In most cases, AWS recommends using Gravitron processors as a more efficient option, confirmed by several blogposts and independent articles. However, you should keep in mind that some of the software can be incompatible with Gravitron.
Capabilities
AWS suggests several additional capabilities for instance enhancement:
b – provides better performance due to direct EBS attachments
d – allows usage of instance store volumes with the highest IOPS performance
e – good option for workloads that require a high-performance for both storage and memory
-flex – can be used with M family price-performance benefits for a majority of general-purpose workloads
n – good for network-bound and storage-intensive workloads (usually provide higher bandwidth)
q – Qualcomm inference accelerators for deep learning workloads
z – offers higher performance for Intel Xeon Scalable processors
Thank you for reading, let’s chat 💬
💬 How do you choose an appropriate instance family for your workload?
💬 How do you tune your workload performance?
💬 Any interesting fine-tuning story comes to your mind after reading the post?
I love hearing from readers 🫶🏻 Please feel free to drop comments, questions, and opinions below👇🏻