Amazon EC2 instances are the fundamental building block for your computing needs in the AWS cloud. You can think of instances as virtual servers that can run applications. Instances are created from an Amazon Machine Image (AMI) and choosing an appropriate instance type. An AMI is a template that contains a software configuration, including an operating system, which defines your operating environment. You can select an AMI provided by AWS, our user community, or on the AWS Marketplace. You can also create and optionally share your own AMIs. A single AMI can be used to launch one or thousands of instances.
Amazon EC2 provides a wide selection of instance types optimized to fit different use cases. Instance types comprise varying combinations of CPU, memory, storage, and networking capacity and give you the flexibility to choose the appropriate mix of resources for your applications. Each instance type includes one or more instance sizes, allowing you to scale your resources to the requirements of your target workload. For the best experience, you should launch on instance types that are appropriate for your applications. You have the flexibility to choose the combination of instance types most appropriate for your application today, and then choose a different instance size as your business and application needs change. To make it easier for you to select the best option for your applications, Amazon EC2 instance types are grouped together into families based on target application profiles. Below is a quick guide to help you think about choosing the right instance type.
Amazon EC2 instances are available in the following families:
This family includes the M1 and M3 instance types, and provides a balance of compute, memory, and network resources, and it is a good choice for many applications. General-purpose instances are recommended for small and mid-size databases, data processing tasks that require additional memory, caching fleets, and for running backend servers for SAP, Microsoft SharePoint, and other enterprise applications.
M3 instances are the newest generation of this family. M3 instances feature high frequency Intel Xeon E5-2670 (Sandy Bridge or Ivy Bridge) processors. These instances offer SSD-based instance storage for fast instance store I/O performance. Compared to M1 instances, M3 instances provide better, more consistent perfromance at lower prices.
- Popular use cases: Small and mid-size databases, data processing, encoding, caching, SAP, Microsoft SharePoint and other enterprise applications.
This family includes the C1, CC2, and C3 instance types, and is optimized for applications that benefit from high compute power. Compute-optimized instances have a higher ratio of vCPUs to memory than other families, and the lowest cost per vCPU among all Amazon EC2 instance types. We recommend compute-optimized instances for running compute-bound scale out applications. Examples of such applications include high performance front-end fleets and web-servers, on-demand batch processing, distributed analytics, and high performance science and engineering applications.
C3 instances are the latest generation of compute-optimized instances, providing customers with the highest performing processors and the lowest price/compute performance available in EC2 currently. Each virtual CPU (vCPU) on C3 instances is a hardware hyper-thread from a 2.8 GHz Intel Xeon E5-2680v2 (Ivy Bridge) processor allowing you to benefit from the latest generation of Intel processors. C3 instances support Enhanced Networking that delivers improved inter-instance latencies, lower network jitter and significantly higher packet per second (PPS) performance. This feature provides hundreds of teraflops of floating point performance by creating high performance clusters of C3 instances. Compared to C1 instances, C3 instances provide faster processors, approximately double the memory per vCPU, support for clustering and SSD-based instance storage.
CC2 instances feature 2.6GHz Intel Xeon E5-2670 processors, high core count (32 vCPUs) and support for cluster networking. CC2 instances are optimized specifically for HPC applications that benefit from high bandwidth, low latency networking and high compute capacity.
- Popular use cases: High-traffic web applications, ad serving, batch processing, video encoding, distributed analytics, high-energy physics, genome analysis, and computational fluid dynamics.
This family includes G2 and CG1 instance types, which provide you with Intel Xeon processors and high-performance NVIDIA GPUs intended for graphics and general purpose GPU compute applications. Currently, there are two types of GPU instances. G2 instances provide access to NVIDIA GRID GPUs (“Kepler” GK104) each with 1,536 CUDA cores and 4GB of video memory. This GPU also features an on-board hardware video encoder designed to support up to eight real-time HD video streams (720p@30fps) or up to four real-time FHD video streams (1080p at 30 fps). The initial driver release provides support for OpenGL 4.3, DirectX 9, 10, and 11, CUDA 5.5, OpenCL 1.1, and GRID SDK. The GRID SDK provides low-level access to the capture and encoding capabilities of GRID GPUs. Combined with the hardware resources of G2 instances, the GRID SDK enables low-latency frame capture and encoding for either the full operating system or select render targets, enabling high-quality interactive streaming experiences.
CG1 instances provide access to NVIDIA Tesla M2050 GPUs (“Fermi” GF100) each with 448 CUDA cores and 3GB of video memory. The latest driver release provides support for CUDA 5.5, OpenCL 1.1, and DirectCompute. The NVIDIA GPU Computing SDK provides hundreds of code samples and white papers to help you get started writing software with CUDA or DirectCompute, allowing you to take advantage of the parallel performance of NVIDIA GPUs.
You can be up and running with Amazon EC2 GPU instances in minutes by leveraging our GPU Amazon Machine Images found in the AWS Marketplace. For immediate access to 3D graphics streaming capabilities, the AWS Marketplace also provides offerings that integrate the NVIDIA GRID SDK and G2 instances.
- G2 popular use cases: Game streaming, 3D application streaming, and other server-side graphics workloads.
- CG1 popular use cases: Computational chemistry, rendering, financial modeling, and engineering design.
This family includes the M2 and CR1 instance types and is optimized for memory-intensive applications. Memory-optimized instances use Intel Xeon processors and have the lowest cost per GiB of RAM among Amazon EC2 instance types. We recommend memory-optimized instances for many database applications, for memcached and other distributed caches, and larger deployments of enterprise applications like SAP and Microsoft SharePoint. CR1 instances are the latest generation of memory-optimized instances and provide even more memory (244 GiB), run on faster CPUs (Intel Xeon E5-2670 with NUMA support) compared to M2 instances, and support cluster networking for bandwidth intensive applications. M2 instances are available in smaller sizes, and are an excellent option for many memory-bound applications.
- M2 and CR1 popular use cases: High performance databases, distributed memory caches, in-memory analytics, genome assembly and analysis, and larger deployments of SAP, Microsoft SharePoint and other enterprise applications.
This family includes the High Storage Instances, HS1 and High I/O Instances, I2 and HI1. These instances provide you with Intel Xeon processors and direct-attached storage options optimized for applications with specific storage capacity and random I/O requirements. HS1 instances are optimized for very high storage density, low storage cost, and high sequential I/O performance. I2 and HI1 instances provide very fast SSD-backed instance storage optimized for very high random I/O performance, and provide high IOPS at a low cost. We recommend using I2 and HI1 instances for NoSQL databases like Cassandra and MongoDB which benefit from very high random I/O performance and the low request latency of direct-attached SSDs, and are an excellent choice for transactional systems that can manage their own resiliency.
HS1 instances provide you with 48 TB of storage capacity across 24 hard disk drives, high network performance, fast CPU performance (Intel Xeon E5-2650), and offer throughput performance of up to 2.6 GB per second. We recommend HS1 instances for customers running large-scale data warehouses or parallel file systems such as an always-on Hadoop cluster with 100s of terabytes of data.
HI1 instances are the first generation of High I/O instances. HI1 instances feature Intel processors - each CPU (vCPU) is a 2.4 GHz thread from a hyper-threaded Intel Xeon E5-2620 (Westmere) processor. Hi1.4xlarge instances include 60.5 GiB of RAM and 1990 GB of SSD-based instance storage.
I2 instances are the latest generation of High I/O instances, providing customers with the highest IOPS compared to all other Amazon EC2 instances. I2 instances feature the latest generation of Intel processors - each virtual CPU (vCPU) is a hardware hyperthread from an Intel Xeon E5-2670 v2 (Ivy Bridge) processor. I2.8xlarge instances include 244 GiB of RAM, 6400 GB of SSD-based instance storage, and supports TRIM for better successive SSD write performance. I2 instances also support Enhanced Networking for low latency, low jitter, and very high packet per second performance.
- I2 and HI1 popular use cases: NoSQL databases like Cassandra and MongoDB, and scale out transactional databases.
- HS1 popular use cases: Data warehousing, Hadoop, and cluster file systems.
Micro instances are a very low-cost instance option, providing a small amount of CPU resources. Micro instances may opportunistically increase CPU capacity in short bursts when additional cycles are available. They are well suited for lower throughput applications and websites that require additional compute cycles periodically, but are not appropriate for applications that require sustained CPU performance.
- T1 popular use cases: Low traffic websites or blogs, small administrative applications, bastion hosts, and free trials to explore EC2 functionality
We recommend that you select the instance type that is most appropriate for your workload profile and scale, and then change your instance type if your application's requirements change. In all cases, we strongly recommend application profiling and load testing. The availability of multiple instance types, combined with features like EBS-optimization and cluster networking allow applications to be optimized for increased performance, improved application resilience, and lower costs. In particular, you should evaluate the most important performance metrics for your application. For applications that benefit from a low cost per CPU, we recommend choosing compute-optimized instances (C1 or CC2 instances). For applications that require the lowest cost per GiB of memory, we recommend choosing memory-optimized instances (M2 or CR1 instances). Additionally, we recommend that if you are running a database, you should choose instances that support EBS-optimization or instances that support cluster networking. For applications with high inter-node network requirements, you should choose instances that support cluster networking. Micro instances provide short-lived CPU resources opportunistically and are not recommended for applications that require sustained CPU performance.
Amazon EC2 instances provide a number of additional features to help you deploy, manage, and scale your applications.
Amazon EC2 allows you to choose between multiple storage options based on your requirements. Amazon EBS is a durable, block-level storage volume that you can attach to a single, running Amazon EC2 instance. You can use Amazon EBS as a primary storage device for data that requires frequent and granular updates. For example, Amazon EBS is the recommended storage option when you run a database on Amazon EC2. Amazon EBS volumes persist independently from the running life of an Amazon EC2 instance. Once a volume is attached to an instance you can use it like any other physical hard drive. Amazon EBS provides two volume types: Standard volumes and Provisioned IOPS volumes. They differ in performance characteristics and price, allowing you to tailor your storage performance and cost to the needs of your applications.
Standard volumes offer storage for applications with moderate or bursty I/O requirements. Standard volumes deliver approximately 100 IOPS on average with a best effort ability to burst to hundreds of IOPS. Standard volumes are also well suited for use as boot volumes, where the burst capability provides fast instance start-up times.
Provisioned IOPS volumes are designed to deliver predictable, high performance for I/O intensive workloads such as databases. With Provisioned IOPS, you specify an IOPS rate when creating a volume, and then Amazon EBS provisions that rate for the lifetime of the volume. Amazon EBS currently supports up to 4000 IOPS per Provisioned IOPS volume. You can stripe multiple volumes together to deliver thousands of IOPS per Amazon EC2 instance to your application.
Many Amazon EC2 instances can also include storage from disks that are physically attached to the host computer. This disk storage is referred to as instance store. Instance store provides temporary block-level storage for Amazon EC2 instances. The data on an instance store volume persists only during the life of the associated Amazon EC2 instance.
In addition to block level storage via Amazon EBS or instance store, you can also use Amazon S3 for highly durable, highly available object storage. Learn more about Amazon EC2 storage options from the Amazon EC2 documentation.
For an additional low, hourly fee, customers can launch selected Amazon EC2 instances types as EBS-optimized instances. EBS-optimized instances enable EC2 instances to fully use the IOPS provisioned on an EBS volume. EBS-optimized instances deliver dedicated throughput between Amazon EC2 and Amazon EBS, with options between 500 and 2,000 Megabits per second (Mbps) depending on the instance type used. The dedicated throughput minimizes contention between Amazon EBS I/O and other traffic from your EC2 instance, providing the best performance for your EBS volumes. EBS-optimized instances are designed for use with both Standard and Provisioned IOPS Amazon EBS volumes. When attached to EBS-optimized instances, Provisioned IOPS volumes can achieve single digit millisecond latencies and are designed to deliver within 10% of the provisioned IOPS performance 99.9% of the time. We recommend using Provisioned IOPS volumes with EBS-optimized instances or instances that support cluster networking for applications with high storage I/O requirements.
Enhanced Networking enables you to get significantly higher packet per second (PPS) performance, lower network jitter and lower latencies. This feature uses a new network virtualization stack that provides higher I/O performance and lower CPU utilization compared to traditional implementations. In order to take advantage of Enhanced Networking, you should launch an HVM AMI in VPC, and install the appropriate driver. Enhanced Networking is currently supported in C3 and I2 instances. For instructions on how to enable Enhanced Networking on EC2 instances, see the Enhanced Networking on Linux and Enhanced Networking on Windows tutorials. To learn more about this feature, check out the Enhanced Networking FAQ section.
C3, I2, CC2, CR1, CG1, G2, HI1, and HS1 instances support cluster networking. Instances launched into a common cluster placement group are placed into a logical cluster that provides high-bandwidth, low-latency networking between all instances in the cluster. Cluster networking is ideal for high performance analytics systems and many science and engineering applications, especially those using the MPI library standard for parallel programming.
Dedicated Instances are Amazon EC2 instances that run on single-tenant hardware dedicated to a single customer. They are ideal for workloads where corporate policies or industry regulations require that your EC2 instances be physically isolated at the host hardware level from instances that belong to other customers. Dedicated Instances let you take full advantage of the benefits of the AWS cloud – on-demand elastic provisioning, pay only for what you use, all while ensuring that your Amazon EC2 compute instances are isolated at the hardware level.
Amazon EC2 instances provide access to the following processor features from Intel including:
- Intel® AES New Instructions (AES-NI): Intel AES-NI encryption instruction set improves upon the original Advanced Encryption Standard (AES) algorithm to provide faster data protection and greater security.
- Intel® Advanced Vector Extensions (Intel® AVX): Intel AVX is a 256-bit instruction set extension designed for applications that are Floating Point (FP) intensive. It improves performance for applications like image and audio/video processing, scientific simulations, financial analytics, and 3D modeling and analysis.
- Intel® Turbo Boost Technology: Intel Turbo Boost Technology provides more performance when needed. The processor is able to automatically run cores faster than the base operating frequency to help you get more done faster.
Not all processor features are available in all instance types, check out the instance type processor details table for more detailed information on which features are available from which instance types.
Amazon EC2 allows you to provision a variety of instances types, which provide different combinations of CPU, memory, disk, and networking. Launching new instances and running tests in parallel is easy, and we recommend measuring the performance of applications to identify appropriate instance types and validate application architecture. We also recommend rigorous load/scale testing to ensure that your applications can scale as you intend.
Amazon EC2 provides you with a large number of options across ten different instance types, each with one or more size options, organized into six distinct instance families optimized for different types of applications. We recommend that you assess the requirements of your applications and select the appropriate instance family as a starting point for application performance testing. You should start evaluating the performance of your applications by (a) identifying how your application needs compare to different instance families (e.g. is the application compute-bound, memory-bound, etc.?), and (b) sizing your workload to identify the appropriate instance size. There is no substitute for measuring the performance of your full application since application performance can be impacted by the underlying infrastructure or by software and architectural limitations. We recommend application-level testing, including the use of application profiling and load testing tools and services.
The following table list the specifications for each Amazon EC2 Instance Type:
||Instance Type||Processor Arch||vCPU||ECU||Memory (GiB)||Instance Storage (GB)||EBS-optimized Available||Network Performance|
|General purpose||m3.medium||64-bit||1||3||3.75||1 x 4 SSD*6||-||Moderate|
|General purpose||m3.large||64-bit||2||6.5||7.5||1 x 32 SSD*6||-||Moderate|
|General purpose||m3.xlarge||64-bit||4||13||15||2 x 40 SSD*6||Yes||High|
|General purpose||m3.2xlarge||64-bit||8||26||30||2 x 80 SSD*6||Yes||High|
|General purpose||m1.small||32-bit or
|1*1||1||1.7||1 x 160||-||Low|
|General purpose||m1.medium||32-bit or
|1||2||3.75||1 x 410||-||Moderate|
|General purpose||m1.large||64-bit||2||4||7.5||2 x 420||Yes||Moderate|
|General purpose||m1.xlarge||64-bit||4||8||15||4 x 420||Yes||High|
|Compute optimized||c3.large||64-bit||2||7||3.75||2 x 16 SSD||-||Moderate|
|Compute optimized||c3.xlarge||64-bit||4||14||7.5||2 x 40 SSD||Yes||Moderate|
|Compute optimized||c3.2xlarge||64-bit||8||28||15||2 x 80 SSD||Yes||High|
|Compute optimized||c3.4xlarge||64-bit||16||55||30||2 x 160 SSD||Yes||High|
|Compute optimized||c3.8xlarge||64-bit||32||108||60||2 x 320 SSD||-||10 Gigabit*4|
|Compute optimized||c1.medium||32-bit or
|2||5||1.7||1 x 350||-||Moderate|
|Compute optimized||c1.xlarge||64-bit||8||20||7||4 x 420||Yes||High|
|Compute optimized||cc2.8xlarge||64-bit||32||88||60.5||4 x 840||-||10 Gigabit*4|
|GPU instances||g2.2xlarge||64-bit||8||26||15||1 x 60 SSD||Yes||High|
|GPU instances||cg1.4xlarge||64-bit||16||33.5||22.5||2 x 840||-||10 Gigabit*4|
|Memory optimized||m2.xlarge||64-bit||2||6.5||17.1||1 x 420||-||Moderate|
|Memory optimized||m2.2xlarge||64-bit||4||13||34.2||1 x 850||Yes||Moderate|
|Memory optimized||m2.4xlarge||64-bit||8||26||68.4||2 x 840||Yes||High|
|Memory optimized||cr1.8xlarge||64-bit||32||88||244||2 x 120
|Storage optimized||i2.xlarge||64-bit||4||14||30.5||1 x 800 SSD||Yes||Moderate|
|Storage optimized||i2.2xlarge||64-bit||8||27||61||2 x 800 SSD||Yes||High|
|Storage optimized||i2.4xlarge||64-bit||16||53||122||4 x 800 SSD||Yes||High|
|Storage optimized||i2.8xlarge||64-bit||32||104||244||8 x 800 SSD||-||10 Gigabit*4|
|Storage optimized||hs1.8xlarge||64-bit||16||35||117||24 x 2,048*3||-||10 Gigabit*4|
|Storage optimized||hi1.4xlarge||64-bit||16||35||60.5||2 x 1,024
|Micro instances||t1.micro||32-bit or
|1||Variable*5||0.615||EBS only||-||Very Low|
*1 - M1, C1, M2, and HI1 instances are based on Intel Xeon processors.
- For G2, M3, CC2 and CR1 instances, each vCPU is a hardware hyperthread from Intel Xeon E5-2670 processors
- For C3 instances, each vCPU is a hardware hyperthread from 2.8 GHz Intel Xeon E5-2680 v2 (Ivy Bridge) processors
- For HS1 instances, each vCPU is a hardware hyperthread from Intel Xeon E5-2650 processors
- CG1 instances are backed by 2 x Intel Xeon X5570, quad-core with hyperthread plus 2 NVIDIA Tesla M2050 GPUs
- G2 instances are backed by 1 x NVIDIA GRID GPU (Kepler GK104)
*2 HI1 instances can deliver more than 120,000 4 KB random read IOPS and between 10,000 and 85,000 4 KB random write IOPS (depending on active logical block addressing span) to applications. The maximum sequential throughput on is approximately 2 GB/s read and 1.1 GB/s write.
*3 HS1 instances can deliver 2.4 GB/s of 2 MB sequential read performance and 2.6 GB/s of sequential write performance.
*4 Instances launched into the same cluster placement group are placed into a non-blocking 10 Gigabit ethernet network
*5 For more information on the Micro instances see theAWS Documentation
*6 Instance storage for M3 instances will be provided when these block device mappings are specified in the instance launch parameters.
The following table list the processor specifications for each Amazon EC2 Instance Type:
|Instance Family||Instance Type||Processor Arch||vCPU||ECU||Physical Processor||Intel® AES-NI||Intel® AVX†||Intel® Turbo|
|General purpose||m3.medium||64-bit||1||3||Intel Xeon E5-2670||Yes||Yes||Yes|
|General purpose||m3.large||64-bit||2||6.5||Intel Xeon E5-2670||Yes||Yes||Yes|
|General purpose||m3.xlarge||64-bit||4||13||Intel Xeon E5-2670||Yes||Yes||Yes|
|General purpose||m3.2xlarge||64-bit||8||26||Intel Xeon E5-2670||Yes||Yes||Yes|
|General purpose||m1.small||32-bit or
|1||1||Intel Xeon Family||-||-||-|
|General purpose||m1.medium||32-bit or
|1||2||Intel Xeon Family||-||-||-|
|General purpose||m1.large||64-bit||2||4||Intel Xeon Family||-||-||-|
|General purpose||m1.xlarge||64-bit||4||8||Intel Xeon Family||-||-||-|
|Compute optimized||c3.large||64-bit||2||7||Intel Xeon E5-2680 v2
|Compute optimized||c3.xlarge||64-bit||4||14||Intel Xeon E5-2680 v2
|Compute optimized||c3.2xlarge||64-bit||8||28||Intel Xeon E5-2680 v2
|Compute optimized||c3.4xlarge||64-bit||16||55||Intel Xeon E5-2680 v2
|Compute optimized||c3.8xlarge||64-bit||32||108||Intel Xeon E5-2680 v2
|Compute optimized||c1.medium||64-bit||2||5||Intel Xeon Family||Yes||-||-|
|Compute optimized||c1.xlarge||64-bit||8||20||Intel Xeon Family||Yes||-||-|
|Compute optimized||cc2.8xlarge||64-bit||32||88||Intel Xeon E5-2670||Yes||Yes||Yes|
|GPU instances||g2.2xlarge||64-bit||8||26||Intel Xeon E5-2670||Yes||Yes||Yes|
|GPU instances||cg1.4xlarge||64-bit||16||33.5||Intel Xeon x5570||Yes||-||-|
|Memory optimized||m2.xlarge||64-bit||2||6.5||Intel Xeon Family||Yes||-||-|
|Memory optimized||m2.2xlarge||64-bit||4||13||Intel Xeon Family||Yes||-||-|
|Memory optimized||m2.4xlarge||64-bit||8||26||Intel Xeon Family||Yes||-||-|
|Memory optimized||cr1.8xlarge||64-bit||32||88||Intel Xeon E5-2670||Yes||Yes||Yes|
|Storage Optimized||i2.xlarge||64-bit||4||14||Intel Xeon E5-2670 v2||Yes||Yes||Yes|
|Storage Optimized||i2.2xlarge||64-bit||8||27||Intel Xeon E5-2670 v2||Yes||Yes||Yes|
|Storage Optimized||i2.4xlarge||64-bit||16||53||Intel Xeon E5-2670 v2||Yes||Yes||Yes|
|Storage Optimized||i2.8xlarge||64-bit||32||104||Intel Xeon E5-2670 v2||Yes||Yes||Yes|
|Storage optimized||hs1.8xlarge||64-bit||16||35||Intel Xeon E5-2650||Yes||-||-|
|Storage Optimized||hi1.4xlarge||64-bit||16||35||Intel Xeon Family||Yes||-||-|
|Micro instances||t1.micro||32-bit or
*1 For more information on the Micro instances see the AWS documentation.
† AVX is only available on HVM instances.