Compatibility for changing the instance type - Amazon Elastic Compute Cloud

Compatibility for changing the instance type

You can change the instance type only if the instance's current configuration is compatible with the instance type that you want. If the instance type that you want is not compatible with the instance's current configuration, you must launch a new instance with a configuration that is compatible with the instance type, and then migrate your application to the new instance.

For compatibility information for changing Windows instance types, see Compatibility for changing the instance type in the User Guide for Windows Instances.

Tip

You can use the AWSSupport-MigrateXenToNitroLinux runbook to migrate compatible instances from a Xen instance type to a Nitro instance type. For more information, see AWSSupport-MigrateXenToNitroLinux runbook in the AWS Systems Manager Automation runbook reference.

Compatibility is determined in the following ways:

Virtualization type

Linux AMIs use one of two types of virtualization: paravirtual (PV) or hardware virtual machine (HVM). If an instance was launched from a PV AMI, you can't change to an instance type that is HVM only. For more information, see Linux AMI virtualization types. To check the virtualization type of your instance, check the Virtualization value on the details pane of the Instances screen in the Amazon EC2 console.

Architecture

AMIs are specific to the architecture of the processor, so you must select an instance type with the same processor architecture as the current instance type. For example:

  • If the current instance type has a processor based on the Arm architecture, you are limited to the instance types that support a processor based on the Arm architecture, such as C6g and M6g.

  • The following instance types are the only instance types that support 32-bit AMIs: t2.nano, t2.micro, t2.small, t2.medium, c3.large, t1.micro, m1.small, m1.medium, and c1.medium. If you are changing the instance type of a 32-bit instance, you are limited to these instance types.

Network cards

Some instance types support multiple network cards. You must select an instance type that supports the same number of network cards as the current instance type.

Enhanced networking

Instance types that support enhanced networking require the necessary drivers installed. For example, instances built on the AWS Nitro System require EBS-backed AMIs with the Elastic Network Adapter (ENA) drivers installed. To change from an instance type that does not support enhanced networking to an instance type that supports enhanced networking, you must install the ENA drivers or ixgbevf drivers on the instance, as appropriate.

Note

When you resize an instance with ENA Express enabled, the new instance type must also support ENA Express. For a list of instance types that support ENA Express, see Supported instance types for ENA Express.

To change from an instance type that supports ENA Express to an instance type that does not support it, ensure that ENA Express is not currently enabled before you resize the instance.

NVMe

EBS volumes are exposed as NVMe block devices on instances built on the AWS Nitro System. If you change from an instance type that does not support NVMe to an instance type that supports NVMe, you must first install the NVMe drivers on your instance. Also, the device names for devices that you specify in the block device mapping are renamed using NVMe device names (/dev/nvme[0-26]n1). Therefore, to mount file systems at boot time using /etc/fstab, you must use UUID/Label instead of device names.

Volumes limits

The maximum number of Amazon EBS volumes that you can attach to an instance depends on the instance type and instance size. For more information, see Instance volume limits.

You can only change to an instance type or instance size that supports the same number or a larger number of volumes than is currently attached to the instance. If you change to an instance type or instance size that does not support the number of currently attached volumes, the request fails. For example, if you change from an m7i.4xlarge instance with 32 attached volumes to an m6i.4xlarge, which supports a maximum of 27 volumes, the request fails.