Available Amazon EC2 Instance Types
Small Instance (default) (1)
1.7 GB memory, 32-bit platform
1 EC2 Compute Unit (1 virtual core with 1 EC2 Compute Unit)
160 GB instance storage (150 GB plus 10 GB root partition)
Instance Type name: m1.small (used in EC2 APIs)
Price: $0.10 per instance hour
7.5 GB memory, 64-bit platform
4 EC2 Compute Units (2 virtual cores with 2 EC2 Compute Units each)
850 GB instance storage (2 x 420 GB plus 10 GB root partition)
Instance Type name: m1.large (used in EC2 APIs)
Price: $0.40 per instance hour
Extra Large Instance
15 GB memory, 64-bit platform
8 EC2 Compute Units (4 virtual cores with 2 EC2 Compute Units each)
1,690 GB instance storage (4 x 420 GB plus 10 GB root partition)
Instance Type name: m1.xlarge (used in EC2 APIs)
Price: $0.80 per instance hour
(1) The small instance type is equivalent to the original Amazon EC2 instance type that has been available since Amazon EC2 launched. This instance type is the default for all customers. To use other instance types, customers must specifically request them via the RunInstances API.
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 http://www.amazon.com/gp/browse.html?node=370375011.
Before you begin, make sure you are using the right versions of our WSDL, API Tools, and API:
- WSDL and API version: 2007-08-29 or later
- API Tools: 1.2-13740 or later
Note: You can check version information using the ec2ver command.
Finding the Amazon Public 64-bit AMI
The large and extra large instances are 64-bit which require 64-bit AMIs. We provide a public 64-bit AMI that you can find by searching for public AMIs owned by Amazon with “x86_64” in the manifest path.
This example shows how to use the ec2dim command and grep to locate the 64-bit public AMI:
ec2dim -o amazon | grep x86_64 IMAGE <ami-id> ec2-public-images/fedora-core6-base-x86_64.manifest.xml amazon available public
The original instance type (now called the small instance or m1.small), no change is required. It is a 32-bit instance; you can launch your previous 32-bit AMIs without changes.
Launching New Instance Types
To specify the instance type during launch, use the –instance-type command line option of the ec2-run-instances command.
This example starts an extra large instance:
ec2run <ami-id> --instance-type m1.xlarge -k <keypair>
This example starts a large instance:
ec2run <ami-id> --instance-type m1.large -k <keypair>
You can launch the original instance type (now called the small instance or m1.small) as before. Simply specify “—instance-type m1.small”, or leave it out and the small instance will launch by default.
This example starts a small instance:
ec2run <ami-id> --instance-type m1.small -k <keypair>or
ec2run <ami-id> -k <keypair>
The DescribeInstances response includes an additional instance level element named instanceType which displays the type of instance that is running (i.e., m1.small, m1.large, or m1.xlarge).
The following is an example of output from the DescribeInstances response:
$ ec2din RESERVATION r-5824c031 416161254515 default INSTANCE i-edb05684 ami-b98d68d0 ec2-72-44-47-95.z-3.compute-1.amazonaws.com domU-12-31-35-00-3C-81.z-2.compute-1.internal running 0 m1.xlarge 2007-07-13T15:13:36+0000 RESERVATION r-46de3a2f 416161254515 default INSTANCE i-85af49ec ami-2bb65342 ec2-72-44-56-99.z-3.compute-1.amazonaws.com domU-12-31-36-00-34-C3.z-1.compute-1.internal running 0 m1.small 2007-08-10T16:00:09+0000
The RunInstances and DescribeInstances (ec2run and ec2din, respectively) now return the timestamp at which the instance launched. The timestamp is different from uptime as it will remain constant even if an instance is rebooted. For example:
$ ec2run ami-b98d68d0 --instance-type m1.xlarge RESERVATION r-6b42a302 416161254515 default INSTANCE i-e548a58c ami-b98d68d0 pending 0 m1.xlarge 2007-08-17T13:09:28+0000 $ ec2din RESERVATION r-6b42a302 416161254515 default INSTANCE i-e548a58c ami-b98d68d0 ec2-72-44-47-95.z-3.compute-1.amazonaws.com domU-12-31-35-00-3C-81.z-2.compute-1.internal running 0 m1.xlarge 2007-07-13T15:13:36+0000
Instance storage on the small instance is identical to the original instance.
Instance storage on the new instance types is exposed as follows:
- /dev/sdb (/mnt on large and extra large instance types)
- /dev/sdc (on large and extra large instance types, not mounted)
- /dev/sdd (on extra large instance types, not mounted)
- /dev/sde (on extra large instance types, not mounted)
Instance storage is subject to the same constraints as the ephemeral store of the original instance. The disk contents will survive a reboot of the instance (or the host machine), but will be lost when the instance is terminated.
Note: /dev/sda2 is no longer exposed to the instance. Additionally, the openssh keypair is no longer written to any of the auxiliary storage devices (it is available through the instance meta-data URL).
For more information, see the "Disk Performance Optimization" section of the Amazon EC2 Developer Guide.
Obtaining the Instance Type via Instance Meta-Data
The instance type is exposed as part of the instance meta-data. It can be queried from within an instance as follows:
GET http://169.254.169.254/2007-08-29/meta-data/instance-type m1.xlarge
To bundle instances, please use our new AMI Tools. These tools can bundle any of the three available instance types.
Previous versions of the tool chose a fixed fstab file. The new tools pick the appropriate fstab file for the instance type or allow you to override the file. The new tools can bundle 64-bit or 32-bit AMIs.
Please review the Technical FAQs section of the Amazon EC2 Developer Guide, especially the FAQs in the “Instance Types and Architecture” section.