Amazon Elastic Compute Cloud
User Guide for Linux (API Version 2015-04-15)
Did this page help you?  Yes | No |  Tell us about it...
« PreviousNext »
View the PDF for this guide.Go to the AWS Discussion Forum for this product.Go to the Kindle Store to download this guide in Kindle format.

Instance Types

When you launch an instance, the instance type that you specify determines the hardware of the host computer used for your instance. Each instance type offers different compute, memory, and storage capabilities. Select an instance type based on the requirements of the application or software that you plan to run on your instance.

Amazon EC2 provides each instance with a consistent and predictable amount of CPU capacity, regardless of its underlying hardware.

Amazon EC2 dedicates some resources of the host computer, such as CPU, memory, and instance storage, to a particular instance. Amazon EC2 shares other resources of the host computer, such as the network and the disk subsystem, among instances. If each instance on a host computer tries to use as much of one of these shared resources as possible, each receives an equal share of that resource. However, when a resource is under-utilized, an instance can consume a higher share of that resource while it's available.

Each instance type provides higher or lower minimum performance from a shared resource. For example, instance types with high I/O performance have a larger allocation of shared resources. Allocating a larger share of shared resources also reduces the variance of I/O performance. For most applications, moderate I/O performance is more than enough. However, for applications that require greater or more consistent I/O performance, consider an instance type with higher I/O performance.

The maximum transmission unit (MTU) for an instance depends on its instance type. The following instance types provide 9001 MTU (jumbo frames): CC2, C3, C4, R3, CG1, CR1, G2, D2, HS1, HI1, I2, T2, and M3. The other instance types provide 1500 MTU (Ethernet v2 frames).

To obtain additional, dedicated capacity for Amazon EBS I/O, you can launch some instance types as Amazon EBS–optimized instances. For more information, see Amazon EBS–Optimized Instances.

To optimize your instances for high performance computing (HPC) applications, you can launch some instance types in a placement group. For more information, see Placement Groups.

When you launch your instance, it uses one of two types of virtualization: paravirtual (PV) or hardware virtual machine (HVM). The virtualization type is determined by the AMI used to launch the instance; some instance types support both PV and HVM while others support only one or the other. HVM virtualization uses hardware-assist technology provided by the AWS platform. With HVM virtualization, the guest VM runs as if it were on a native hardware platform, except that it still uses PV network and storage drivers for improved performance. For more information, see Linux AMI Virtualization Types.

Security Group Rules for Path MTU Discovery

Path MTU Discovery is used to determine the MTU between two hosts. If a host sends a packet that's larger than the receiving host's MTU, the receiving host returns the following ICMP message: Destination Unreachable: Fragmentation Needed and Don't Fragment was Set (Type 3, Code 4). This instructs the original host to adjust the MTU until the packet can be transmitted. By default, security groups do not allow any inbound ICMP traffic. To ensure that your instance can receive this message and the packet does not get dropped, you must add a custom inbound ICMP rule to your security group. For more information, see the Adding Rules to a Security Group and API and Command Overview sections in the Amazon EC2 Security Groups topic.

  • Amazon EC2 console: Enter the values Destination Unreachable, and fragmentation required, and DF flag set.

  • AWS CLI or Query API: Specify icmp as the protocol, and a port range from 3 to 4.

  • EC2 CLI: Specify icmp as the protocol, and 3:4 as the type.

Available Instance Types

Amazon EC2 provides the current and previous generation instance types listed in the following tables.

There is a limit on the total number of instances that you can launch in a region, and there are additional limits on some instance types. For more information, see How many instances can I run in Amazon EC2?

Current Generation Instances

For the best performance, we recommend that you use current generation instance types and HVM AMIs when you launch new instances. For more information on current generation instance types, see the Amazon EC2 Instances detail page.

Instance FamilyCurrent Generation Instance Types

General purpose

t2.micro | t2.small | t2.medium | m3.medium | m3.large | m3.xlarge | m3.2xlarge

Compute optimized

c4.large | c4.xlarge | c4.2xlarge | c4.4xlarge | c4.8xlarge | c3.large | c3.xlarge | c3.2xlarge | c3.4xlarge | c3.8xlarge

Memory optimized

r3.large | r3.xlarge | r3.2xlarge | r3.4xlarge | r3.8xlarge

Storage optimized

i2.xlarge | i2.2xlarge | i2.4xlarge | i2.8xlarge | d2.xlarge | d2.2xlarge | d2.4xlarge | d2.8xlarge

GPU instances

g2.2xlarge | g2.8xlarge

Previous Generation Instances

Amazon Web Services offers previous generation instances for users who have optimized their applications around these instances and have yet to upgrade. We encourage you to use the latest generation of instances to get the best performance, but we will continue to support these previous generation instances after new instances launch. If you are currently using a previous generation instance and would like to see which one would be a suitable upgrade, see Upgrade Paths.

Instance FamilyPrevious Generation Instance Types

General purpose

m1.small | m1.medium | m1.large | m1.xlarge

Compute optimized

c1.medium | c1.xlarge | cc2.8xlarge

Memory optimized

m2.xlarge | m2.2xlarge | m2.4xlarge | cr1.8xlarge

Storage optimized

hi1.4xlarge | hs1.8xlarge

GPU instances


Micro instances


Hardware Specifications

For more information about the hardware specifications for each Amazon EC2 instance type, see Instance Type Details.

To determine which instance type best meets your needs, we recommend that you launch an instance and use your own benchmark application. Because you pay by the instance hour, it's convenient and inexpensive to test multiple instance types before making a decision. If your needs change, you can resize your instance later on. For more information, see Resizing Your Instance.