What steps should I take to determine which Amazon Elastic Compute Cloud (Amazon EC2) instance is best for my workload?
Short description
Amazon EC2 offers a range of instance types with different levels of CPU, memory, storage, and networking capacity. To determine which instance type you need for your use case, gather details about the system requirements of the application or software that you plan to run on your instance. These details should include the following:
Resolution
Determine the use case for the instance and then review the different EC2 instance families.
To learn more about the different use cases that a particular EC2 instance family can serve, see Instance types.
Amazon offers the following instance type families:
Choose the Amazon EC2 instance family and appropriate size for your instance
Use the system requirements you gathered and the instance family that best serves your needs to choose a specific instance type. Instance type names are comprised of the family name and the instance size. For example, the t2.micro instance is from the T2 family and is micro-sized.
Every instance type has the following hardware specifications:
-
Default vCPUs: The number of virtual CPUs for the instance. For more information, see Optimize CPU options.
-
Memory (GiB): For more information, see Amazon EC2 high memory instances.
-
Instance storage (GB): The local instance store volumes that are available to the instance. The data in an instance store isn't permanent. Data on instance store volumes is deleted if the instance is stopped or terminated. For more information, see Amazon EC2 instance store.
-
Amazon Elastic Block Store (Amazon EBS)-Optimized available: Indicates whether the instance type supports EBS optimization. An EBS-optimized instance provides additional, dedicated throughput for Amazon EBS I/O. This provides improved performance for your Amazon EBS volumes and enables instances to use provisioned IOPs fully. For more information, see Amazon EBS–optimized instances.
-
Network Performance: Indicates the performance level of the rate of data transfer. You can enable enhanced networking that provides higher bandwidth, higher packet-per-second (PPS) performance, and consistently lower inter-instance latencies. For more information, see How do I enable and configure enhanced networking on my EC2 instances?
Find and launch your selected instance type
You can find your selected instance type using the Amazon EC2 console or AWS Command Line Interface (AWS). You can launch your instance from a selected Amazon Machine Image (AMI) using any available launch option.
Note: If you receive errors when running AWS CLI commands, make sure that you’re using the most recent version of the AWS CLI.
Additional considerations
-
Root volume: Every EC2 instance is backed by Amazon EBS or instance store volume. Select an AMI based on which type of root volume you need. For more information, see Storage for the root device.
-
Purchasing options: Amazon EC2 supports On-Demand Instances (the default), Spot Instances, and Reserved Instances. For more information, see Instance purchasing options. For detailed pricing of each EC2 instance type, see Amazon EC2 pricing and the AWS Pricing Calculator.
-
Changing Instance Type (Scalability): If your system requires more CPU or memory than is available on your current EC2 instance type, then you can resize the instance. For more information, one of the following:
What steps do I need to take before changing the instance type of my EC2 Linux instance?
How do I resize my EC2 Windows instance or change the EC2 Windows instance type?
-
Get recommendations for an instance type: For already running EC2 instances, you can use AWS Compute Optimizer for recommendations to help you improve performance, save money, or both. You can use these recommendations to decide whether to move to a new instance type.
-
Monitor your EC2 instance: Monitor your instances to make sure you're getting the most reliability, availability, and performance. For more information, see Monitor Amazon EC2.
-
Manage a fleet of EC2 instances: AWS Systems Manager enables you to remotely and securely manage the configuration of your Amazon EC2 instances, and your on-premises instances and virtual machines (VMs) in hybrid environments, including VMs from other cloud providers. For more information, see the AWS Systems Manager User Guide.