Instance Types
Amazon EC2 instances are grouped into two families: standard and High-CPU. Standard instances have memory to CPU ratios suitable for most general purpose applications; High-CPU instances have proportionally more CPU resources than memory (RAM) and are well suited for compute-intensive applications. When selecting instance types, you might want to use less powerful instance types for your web server instances and more powerful instance types for your database instances. Additionally, you might want to run CPU instance types for CPU-intensive data processing tasks.
One of the advantages of EC2 is that you pay by the instance hour, which makes it convenient and inexpensive to test the performance of your application on different instance families and types. One good way to determine the most appropriate instance family and instance type is to launch test instances and benchmark your application.
The instance types described in the following table are available.
Type | CPU | Memory | Storage | Platform | I/O | Name |
---|---|---|---|---|---|---|
Small |
1 EC2 Compute Unit (1 virtual core with 1 EC2 Compute Unit) |
1.7 GB |
160 GB instance storage (150 GB plus 10 GB root partition) |
32-bit |
Moderate |
m1.small |
Large |
4 EC2 Compute Units (2 virtual cores with 2 EC2 Compute Units each) |
7.5 GB |
850 GB instance storage (2 x 420 GB plus 10 GB root partition) |
64-bit |
High |
m1.large |
Extra Large |
8 EC2 Compute Units (4 virtual cores with 2 EC2 Compute Units each) |
15 GB |
1690 GB instance storage (4 x 420 GB plus 10 GB root partition) |
64-bit |
High |
m1.xlarge |
High-CPU Medium |
5 EC2 Compute Units (2 virtual cores with 2.5 EC2 Compute Units each) |
1.7 GB |
350 GB instance storage (340 GB plus 10 GB root partition) |
32-bit |
Moderate |
c1.medium |
High-CPU Extra Large |
20 EC2 Compute Units (8 virtual cores with 2.5 EC2 Compute Units each) |
7 GB |
1,690 GB instance storage (4 x 420 GB plus 10 GB root partition) |
64-bit |
High |
c1.xlarge |
Note | |
---|---|
The small instance type is the original Amazon EC2 instance type
available since the launch of Amazon EC2. It is the default instance type for all customers.
To use other instance types, you must specify them through the |
Important | |
---|---|
We strongly recommend using the 2.6.18 Xen stock kernel with the c1.medium and c1.xlarge instances. Although the default Amazon EC2 kernels will work, the new kernels provide greater stability and performance for these instance types. For more information about kernels, see Kernels, RAM Disks, and Block Device Mappings. |
Transitioning to a utility computing model changes how developers are trained to think about CPU resources. Instead of purchasing or leasing a particular processor to use for several months or years, you are renting capacity by the hour. Because Amazon EC2 is built on commodity hardware, over time there might be several different types of physical processors underlying different virtual EC2 instances. Our goal is to provide a consistent amount of CPU capacity regardless of the actual underlying hardware.
Amazon EC2 uses a variety of measures to provide each instance with a consistent and predictable amount of CPU capacity. To make it easy for developers to compare CPU capacity between different instance types, we defined an Amazon EC2 Compute Unit.
Note | |
---|---|
We use several internal benchmarks and tests to manage the consistency and predictability of the performance of an Amazon EC2 Compute Unit. For more information, go to the Instance page. |
To find out which instance will work best for your application, we recommend launching an instance and using your own benchmark application. This will help you determine which instance type works best for your specific use case.
Amazon EC2 provides virtualized server instances. While some resources like CPU, memory and instance storage are dedicated to a particular instance, other resources like the network and the disk subsystem are shared amongst instances. If each instance on a physical host tries to use as much of one of these shared resources as possible, each will receive an equal share of that resource. However, when a resource is under-utilized you will often be able to consume a higher share of that resource while it is available.
The different instance types will provide higher or lower minimum performance from the shared resources depending on their size. Each of the instance types has an I/O performance indicator (moderate or high). Instance types with high I/O performance have a larger allocation of shared resources. Allocating 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 instances with high I/O performance.