Ultimate Guide to Memory Optimized EC2 Instance Types

Share this Post

AWS offers a wide range of EC2 instance types for different compute use cases. Instance types are available in different combinations of CPU, memory, storage, and networking capacity that allow you to build a flexible blend of resources for your application needs. Instance types come in a variety of instance sizes to help scale your resources to match your workloads.

Read our earlier article on EC2 instance types for a general overview. In this article, we will dive deeper into Memory Optimized instances to help you choose the right resources for maximum utilization and savings.

Memory optimized instances are well-suited for what applications?

Memory-optimized instances offer a large memory size designed for memory intensive applications including in-memory applications, in-memory databases (such as SAP HANA), in-memory analytics solutions, High Performance Computing, Electronic Design Automation, scientific computing and enterprise applications.

Memory performance

To take advantage of the high memory capacity, memory optimized instances require 64-bit virtualization on Linux Amazon Machine Images with hardware virtual machines (HVM). HVM AMIs provide superior performance for memory optimized instances when compared to paravirtual (PV) AMIs.

Network performance

Enhanced networking can be enabled for certain types of instance to provide lower latencies, lower network jitter, and higher packet-per-second (PPS) performance. While most applications do not consistently need a high level of network performance, they can benefit from increased bandwidth when they send or receive data.

SSD I/O performance

Memory optimized instances can fill up SSD-based instance storage volume. This results in increased latency and dramatically reduced I/O performance. To more efficiently manage the space available for write operations, you can leave 10% of the volume unpartitioned so that the SSD controller can use it for over-provisioning. This decreases the amount of storage available, but increases performance even if the disk is close to full capacity.

R5, R5a R5n Instances

Use Cases

R5 and R5a instances are used for the following memory intensive applications:

  • High-performance databases, including relational (MySQL) and NoSQL (MongoDB, Cassandra).
  • Distributed web scale cache stores that provide in-memory caching of key-value type data (Memcached and Redis).
  • Mid-size In-memory databases using optimized data storage formats and analytics for business intelligence (for example, SAP HANA).
  • Analytics applications performing real-time processing of big unstructured data (financial services, Hadoop/Spark clusters).
  • Enterprise applications in High-performance computing (HPC) and Electronic Design Automation (EDA).

R5 instances are powered by Intel processors, whereas R5a run on AMD processors.

R5n and R5dn instance variants with higher bandwidth are used for applications that can take advantage of improved network throughput and packet rate performance.

Bare metal instances, such as r5.metal, provide applications direct access to physical resources of the host server, such as processors and memory.

These instances are designed for the following:

  • Workloads that require access to low-level hardware features (for example, Intel VT) that are not available or fully supported in virtualized environments
  • Applications that require a non-virtualized environment for licensing or support

What is the difference between r4 and r5 instances?

R5 delivers approximately 20% higher CPU performance over R4, and costs 10% less. R5 provides 5% more memory per vCPU, with up to 768 GiB of memory, compared to 488 GiB maximum for R4.

X1 and X1e Instances

These instances offer one of the lowest price per GiB of RAM among Amazon EC2 instance types.

Use Cases

  • In-memory databases such as SAP HANA, including SAP-certified support for Business Suite S/4HANA, Business Suite on HANA (SoH), Business Warehouse on HANA (BW), and Data Mart Solutions on HANA.
  • Big-data processing engines such as Apache Spark or Presto.
  • High-performance computing (HPC) applications.

X1e instances are optimized for the following:

  • High-performance databases
  • In-memory databases such as SAP HANA
  • Memory-intensive enterprise applications

What is the difference between x1 and x1e instances?

X1e instances come in 6 configurations, from 4 to 128 vCPUs with 122 to 3,904 GiB of memory. X1 instances come in 2 configurations, 64 to 128 vCPUs with 976 to 1,952 GiB memory. X1e instances offer double the memory of X1 instances (32GB vs 16GB of memory per vCPU).

Memory performance

X1 instances include Intel Scalable M​​emory Buffers, providing 300 GiB per second of sustainable memory-read bandwidth and 140 GiB per second of sustainable memory-write bandwidth.

Instance performance

X1 and X1e instances feature up to 128 vCPUs and are powered by four Intel Xeon E7-8880 v3 processors that feature high-memory bandwidth and larger L3 caches to boost the performance of in-memory applications.

High memory instances

High memory instances have bare metal performance with direct access to host hardware. They reduce the management overhead associated with complex networking and ensure predictable performance.

Use Cases

These instances have the largest memory of any EC2 instance and are designed for the following:
  • Large in-memory enterprise databases, including production deployments of SAP HANA in-memory database in the cloud.
  • Business applications that depend on these databases sharing the same AWS Virtual Private Cloud.

Instance performance

High memory instances (u-6tb1.metal, u-9tb1.metal, and u-12tb1.metal) with 6 TiB, 9 TiB, 12 TiB memory are the first to be powered by the latest generation Intel Xeon Platinum 8176M (Skylake) processors optimized for mission-critical enterprise workloads.

High Memory instances with 18 TB and 24 TB of memory (u-18tb1.metal and u-24tb1.metal) are the first instances powered by 2nd Generation Intel Xeon Scalable 8280L (Cascade Lake) processors.

Z1d Instances

These instances offer high compute capacity, the fastest of any cloud instance, and a high memory footprint.

Use Cases

Z1d instances are designed for the following:

  • Electronic Design Automation (EDA)
  • Relational database workloads with high per-core licensing costs.

z1d.metal instances provide your applications with direct access to physical resources of the host server, such as processors and memory.

  • Workloads that require access to low-level hardware features (for example, Intel VT) that are not available or fully supported in virtualized environments
  • Applications that require a non-virtualized environment for licensing or support

Optimizing AWS Spend for Memory Optimized EC2 Instances

Cost management is critical to optimizing your cloud architecture. As your memory requirements increase, your costs can quickly add up. You can take advantage of pricing options that are designed to help you control your cloud spend based on volume purchases of instances.

Reserved Instances

if you are running production environments with steadily increasing workloads reserving instances 1 to 3 years in advance will provide significant savings.

Savings Plans

Savings Plans will offer discounts when you commit to a specific dollar amount of instance usage over a 1 or 3 year period.

The table below illustrates how much you can save on memory optimized instances through volume based discount plans. An r5.xlarge running on Linux in US East (N. Virginia) can save significant costs.

Automated Cost Optimization

Developing and managing your cloud architecture with the right memory optimized instances through the best pricing plans requires significant time and effort. Parquantix develops a cost optimization strategy based on your application needs and constantly monitors usage to maximize instance utilization and performance with its AI-driven solution.

Are you ready to start optimizing your memory intensive applications?

Contact us to schedule a 30-minute consultation:
  • This field is for validation purposes and should be left unchanged.