AWS continues to upgrade EC2 families with new capabilities and price/performance characteristics. Next generation instances were added recently to Compute Optimized instance family (C5) and General Purpose instance family (M5). C5 instances are powered by 3.0 GHz Intel® Xeon® Scalable processors (Skylake) and offer 25% price/performance improvement over C4 instances. M5 instances are powered by 2.5 GHz Intel® Xeon Platinum 8175 processors (formerly codenamed Skylake), and featuring Intel’s newest vector processing instruction set, Advanced Vector Extension 512 (AVX-512). M5 instances offer 14% improvement in price/performance over M4 instances.
Both C5 and M5 instances are based on lightweight Nitro Hypervisor and use Enhanced Networking using Elastic Network Adapters (ENA) offering better Networking performance up to 25Gbs. They also use NVMe interface for EBS connectivity for better EBS performance.
Price comparison of M5 and M4 families shows 4% savings on on-demand Linux usage (and better compute performance) for instances up to 4xlarge.
Price comparison of C5 and C4 families shows a 9%-13% savings on on-demand Linux usage (and better performance).
Can I Upgrade C4/M4 instances And Save?
Theoretically yes, as the comparisons above show. But practically, it is not a simple instance type switch and may involve tedious steps and in some cases may not be easy for everyone.
One needs to consider the following factors before converting C4/M4 instances.
- Elastic Network Adapter (ENA) Support: C5/M5 families use Enhanced Networking based on ENA. Your AMI/OS needs to be ENA enabled. Details on checking if ENA is enabled on your instances/AMI and how to enable it can be found here.
- NVMe Support needed: Your AMI/OS needs NVMe support. Following OS versions support NMVe drivers as per AWS documentation.
Amazon Linux 2014.03 or later Ubuntu 14.04 or later SUSE Linux Enterprise Server 12 or later Red Hat Enterprise Linux 7.4 or later CentOS 7 or later FreeBSD 11.1-RELEASE Windows Server 2012 R2 Windows Server 2016
- File systems mounted using device names: C5/M5 instances use NVMe interface. NMVe uses a different device name scheme. If device names are used for file system mounting (/etc/fstab) they will need to be modified to change the device names or use device ids (recommended).
[ec2-user@ip-172-31-5-142 ~]$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT nvme2n1 259:1 0 1G 0 disk nvme1n1 259:0 0 1G 0 disk nvme0n1 259:2 0 8G 0 disk ├─nvme0n1p1 259:3 0 8G 0 part / └─nvme0n1p128 259:4 0 1M 0 part
- Available Regions: C5/M5 instances are currently available only in the AWS US East (N. Virginia), US West (Oregon), and EU (Ireland) regions. If your C4/M4 instances run elsewhere you are out of luck at least for now.
- Availability Zones: It seems that C5/M5 instances are not available in certain availability zones within the available regions. Since availability zones are account specific, it is hard to know how it impacts each customer. So until you try it you cannot be sure if you can convert your instances even if your instances match all of the above criteria.
In summary, converting C4/M4 instances may not be a trial task. But for those that are able to go through the analysis and convert could save significantly and improve application performance. At the pace with which AWS moves it is likely that next generation instances will continue to be available in the coming years so the sooner you upgrade the better prepared you are for the future generation instances.