|
Amazon Elastic Compute Cloud |
|
|
|
User Guide |
|
|
|
What is Amazon EC2? |
|
Amazon Elastic Compute Cloud (Amazon EC2) provides on-demand, scalable computing capacity |
|
in the Amazon Web Services (AWS) Cloud. Using Amazon EC2 reduces hardware costs so you can |
|
develop and deploy applications faster. You can use Amazon EC2 to launch as many or as few |
|
virtual servers as you need, configure security and networking, and manage storage. You can add |
|
capacity (scale up) to handle compute-heavy tasks, such as monthly or yearly processes, or spikes in |
|
website traffic. When usage decreases, you can reduce capacity (scale down) again. |
|
An EC2 instance is a virtual server in the AWS Cloud. When you launch an EC2 instance, the |
|
instance type that you specify determines the hardware available to your instance. Each instance |
|
type offers a different balance of compute, memory, network, and storage resources. For more |
|
information, see the Amazon EC2 Instance Types Guide. |
|
|
|
Features of Amazon EC2 |
|
Amazon EC2 provides the following high-level features: |
|
Instances |
|
Virtual servers. |
|
Amazon Machine Images (AMIs) |
|
Preconfigured templates for your instances that package the components you need for your |
|
server (including the operating system and additional software). |
|
Instance types |
|
Various configurations of CPU, memory, storage, networking capacity, and graphics hardware |
|
for your instances. |
|
Features |
|
|
|
1 |
|
|
|
Amazon Elastic Compute Cloud |
|
|
|
User Guide |
|
|
|
Amazon EBS volumes |
|
Persistent storage volumes for your data using Amazon Elastic Block Store (Amazon EBS). |
|
Instance store volumes |
|
Storage volumes for temporary data that is deleted when you stop, hibernate, or terminate |
|
your instance. |
|
Key pairs |
|
Secure login information for your instances. AWS stores the public key and you store the private |
|
key in a secure place. |
|
Security groups |
|
A virtual firewall that allows you to specify the protocols, ports, and source IP ranges that can |
|
reach your instances, and the destination IP ranges to which your instances can connect. |
|
Amazon EC2 supports the processing, storage, and transmission of credit card data by a merchant |
|
or service provider, and has been validated as being compliant with Payment Card Industry (PCI) |
|
Data Security Standard (DSS). For more information about PCI DSS, including how to request a |
|
copy of the AWS PCI Compliance Package, see PCI DSS Level 1. |
|
|
|
Related services |
|
Services to use with Amazon EC2 |
|
You can use other AWS services with the instances that you deploy using Amazon EC2. |
|
Amazon EC2 Auto Scaling |
|
Helps ensure you have the correct number of Amazon EC2 instances available to handle the |
|
load for your application. |
|
AWS Backup |
|
Automate backing up your Amazon EC2 instances and the Amazon EBS volumes attached to |
|
them. |
|
Amazon CloudWatch |
|
Monitor your instances and Amazon EBS volumes. |
|
Related services |
|
|
|
2 |
|
|
|
Amazon Elastic Compute Cloud |
|
|
|
User Guide |
|
|
|
Access Amazon EC2 |
|
You can create and manage your Amazon EC2 instances using the following interfaces: |
|
Amazon EC2 console |
|
A simple web interface to create and manage Amazon EC2 instances and resources. If you've |
|
signed up for an AWS account, you can access the Amazon EC2 console by signing into the AWS |
|
Management Console and selecting EC2 from the console home page. |
|
AWS Command Line Interface |
|
Enables you to interact with AWS services using commands in your command-line shell. It is |
|
supported on Windows, Mac, and Linux. For more information about the AWS CLI , see AWS |
|
Command Line Interface User Guide. You can find the Amazon EC2 commands in the AWS CLI |
|
Command Reference. |
|
AWS CloudFormation |
|
Amazon EC2 supports creating resources using AWS CloudFormation. You create a template, in |
|
JSON or YAML format, that describes your AWS resources, and AWS CloudFormation provisions |
|
and configures those resources for you. You can reuse your CloudFormation templates to |
|
provision the same resources multiple times, whether in the same Region and account or in |
|
multiple Regions and accounts. For more information about supported resource types and |
|
properties for Amazon EC2, see EC2 resource type reference in the AWS CloudFormation User |
|
Guide. |
|
AWS SDKs |
|
If you prefer to build applications using language-specific APIs instead of submitting a request |
|
over HTTP or HTTPS, AWS provides libraries, sample code, tutorials, and other resources |
|
for software developers. These libraries provide basic functions that automate tasks such |
|
as cryptographically signing your requests, retrying requests, and handling error responses, |
|
making it easier for you to get started. For more information, see Tools to Build on AWS. |
|
AWS Tools for PowerShell |
|
A set of PowerShell modules that are built on the functionality exposed by the SDK for .NET. |
|
The Tools for PowerShell enable you to script operations on your AWS resources from the |
|
PowerShell command line. To get started, see the AWS Tools for PowerShell User Guide. You |
|
can find the cmdlets for Amazon EC2, in the AWS Tools for PowerShell Cmdlet Reference. |
|
Access EC2 |
|
|
|
4 |
|
|
|
Amazon Elastic Compute Cloud |
|
|
|
User Guide |
|
|
|
Get started with Amazon EC2 |
|
Use this tutorial to get started with Amazon Elastic Compute Cloud (Amazon EC2). You'll learn how |
|
to launch and connect to an EC2 instance. An instance is a virtual server in the AWS Cloud. With |
|
Amazon EC2, you can set up and configure the operating system and applications that run on your |
|
instance. |
|
Overview |
|
The following diagram shows the key components that you'll use in this tutorial: |
|
• An image – A template that contains the software to run on your instance, such as the operating |
|
system. |
|
• A key pair – A set of security credentials that you use to prove your identity when connecting to |
|
your instance. The public key is on your instance and the private key is on your computer. |
|
• A network – A virtual private cloud (VPC) is a virtual network dedicated to your AWS account. |
|
To help you get started quickly, your account comes with a default VPC in each AWS Region, and |
|
each default VPC has a default subnet in each Availability Zone. |
|
• A security group – Acts as a virtual firewall to control inbound and outbound traffic. |
|
• An EBS volume – We require a root volume for the image. You can optionally add data volumes. |
|
|
|
8 |
|
|
|
Amazon Elastic Compute Cloud |
|
|
|
User Guide |
|
|
|
Cost for this tutorial |
|
When you create your AWS account, you can get started with Amazon EC2 for free using the AWS |
|
Free Tier. |
|
If you created your AWS account before July 15, 2025, it's less than 12 months old, and you haven't |
|
already exceeded the Free Tier benefits for Amazon EC2, it won't cost you anything to complete |
|
this tutorial, because we help you select options that are within the Free Tier benefits. Otherwise, |
|
you'll incur the standard Amazon EC2 usage fees from the time that you launch the instance (even |
|
if it remains idle) until you terminate it. |
|
If you created your AWS account on or after July 15, 2025, it's less than 6 months old, and you |
|
haven't used up all your credits, it won't cost you anything to complete this tutorial, because we |
|
help you select options that are within the Free Tier benefits. |
|
For information on how to determine whether you are eligible for the Free Tier, see the section |
|
called “Track your Free Tier usage”. |
|
Tasks |
|
• Step 1: Launch an instance |
|
• Step 2: Connect to your instance |
|
• Step 3: Clean up your instance |
|
9 |
|
|
|
Amazon Elastic Compute Cloud |
|
|
|
User Guide |
|
|
|
• Next steps |
|
|
|
Step 1: Launch an instance |
|
You can launch an EC2 instance using the AWS Management Console as described in the following |
|
procedure. This tutorial is intended to help you quickly launch your first instance, so it doesn't |
|
cover all possible options. |
|
To launch an instance |
|
1. |
|
|
|
Open the Amazon EC2 console at https://console.aws.amazon.com/ec2/. |
|
|
|
2. |
|
|
|
In the navigation bar at the top of the screen, we display the current AWS Region — for |
|
example, Ohio. You can use the selected Region, or optionally select a Region that is closer to |
|
you. |
|
|
|
3. |
|
|
|
From the EC2 console dashboard, in the Launch instance pane, choose Launch instance. |
|
|
|
4. |
|
|
|
Under Name and tags, for Name, enter a descriptive name for your instance. |
|
|
|
5. |
|
|
|
Under Application and OS Images (Amazon Machine Image), do the following: |
|
a. |
|
|
|
Choose Quick Start, and then choose the operating system (OS) for your instance. For |
|
your first Linux instance, we recommend that you choose Amazon Linux. |
|
|
|
b. |
|
|
|
From Amazon Machine Image (AMI), select an AMI that is marked Free Tier eligible. |
|
|
|
6. |
|
|
|
Under Instance type, for Instance type, select an instance type that is marked Free Tier |
|
eligible. |
|
|
|
7. |
|
|
|
Under Key pair (login), for Key pair name, choose an existing key pair or choose Create new |
|
key pair to create your first key pair. |
|
|
|
Warning |
|
If you choose Proceed without a key pair (Not recommended), you won't be able to |
|
connect to your instance using the methods described in this tutorial. |
|
8. |
|
|
|
Under Network settings, notice that we selected your default VPC, selected the option to use |
|
the default subnet in an Availability Zone that we choose for you, and configured a security |
|
group with a rule that allows connections to your instance from anywhere (0.0.0.0.0/0). |
|
|
|
Step 1: Launch an instance |
|
|
|
10 |
|
|
|
Amazon Elastic Compute Cloud |
|
|
|
User Guide |
|
|
|
Warning |
|
If you specify 0.0.0.0/0, you are enabling traffic from any IP addresses in the world. |
|
For the SSH and RDP protocols, you might consider this acceptable for a short time |
|
in a test environment, but it's unsafe for production environments. In production, be |
|
sure to authorize access only from the appropriate individual IP address or range of |
|
addresses. |
|
|
|
For your first instance, we recommend that you use the default settings. Otherwise, you can |
|
update your network settings as follows: |
|
|
|
9. |
|
|
|
• |
|
|
|
(Optional) To use a specific default subnet, choose Edit and then choose a subnet. |
|
|
|
• |
|
|
|
(Optional) To use a different VPC, choose Edit and then choose an existing VPC. If the VPC |
|
isn't configured for public internet access, you won't be able to connect to your instance. |
|
|
|
• |
|
|
|
(Optional) To restrict inbound connection traffic to a specific network, choose Custom |
|
instead of Anywhere, and enter the CIDR block for your network. |
|
|
|
• |
|
|
|
(Optional) To use a different security group, choose Select existing security group and |
|
choose an existing security group. If the security group does not have a rule that allows |
|
connection traffic from your network, you won't be able to connect to your instance. For |
|
a Linux instance, you must allow SSH traffic. For a Windows instance, you must allow RDP |
|
traffic. |
|
|
|
Under Configure storage, notice that we configured a root volume but no data volumes. This |
|
is sufficient for test purposes. |
|
|
|
10. Review a summary of your instance configuration in the Summary panel, and when you're |
|
ready, choose Launch instance. |
|
11. If the launch is successful, choose the ID of the instance from the Success notification to open |
|
the Instances page and monitor the status of the launch. |
|
12. Select the checkbox for the instance. The initial instance state is pending. After the instance |
|
starts, its state changes to running. Choose the Status and alarms tab. After your instance |
|
passes its status checks, it is ready to receive connection requests. |
|
|
|
Step 1: Launch an instance |
|
|
|
11 |
|
|
|
Amazon Elastic Compute Cloud |
|
|
|
User Guide |
|
|
|
Step 2: Connect to your instance |
|
The procedure that you use depends on the operating system of the instance. If you can't connect |
|
to your instance, see Troubleshoot issues connecting to your Amazon EC2 Linux instance for |
|
assistance. |
|
|
|
Linux instances |
|
You can connect to your Linux instance using any SSH client. If you are running Windows on |
|
your computer, open a terminal and run the ssh command to verify that you have an SSH client |
|
installed. If the command is not found, install OpenSSH for Windows. |
|
To connect to your instance using SSH |
|
1. |
|
|
|
Open the Amazon EC2 console at https://console.aws.amazon.com/ec2/. |
|
|
|
2. |
|
|
|
In the navigation pane, choose Instances. |
|
|
|
3. |
|
|
|
Select the instance and then choose Connect. |
|
|
|
4. |
|
|
|
On the Connect to instance page, choose the SSH client tab. |
|
|
|
5. |
|
|
|
(Optional) If you created a key pair when you launched the instance and downloaded the |
|
private key (.pem file) to a computer running Linux or macOS, run the example chmod |
|
command to set the permissions for your private key. |
|
|
|
6. |
|
|
|
Copy the example SSH command. The following is an example, where key-pair-name.pem |
|
is the name of your private key file, ec2-user is the username associated with the image, and |
|
the string after the @ symbol is the public DNS name of the instance. |
|
ssh -i key-pair-name.pem [email protected] |
|
|
|
7. |
|
|
|
In a terminal window on your computer, run the ssh command that you saved in the previous |
|
step. If the private key file is not in the current directory, you must specify the fully-qualified |
|
path to the key file in this command. |
|
The following is an example response: |
|
The authenticity of host 'ec2-198-51-100-1.us-east-2.compute.amazonaws.com |
|
(198-51-100-1)' can't be established. |
|
ECDSA key fingerprint is l4UB/neBad9tvkgJf1QZWxheQmR59WgrgzEimCG6kZY. |
|
Are you sure you want to continue connecting (yes/no)? |
|
|
|
Step 2: Connect to your instance |
|
|
|
12 |
|
|
|
Amazon Elastic Compute Cloud |
|
|
|
8. |
|
|
|
User Guide |
|
|
|
(Optional) Verify that the fingerprint in the security alert matches the instance fingerprint |
|
contained in the console output when you first start an instance. To get the console output, |
|
choose Actions, Monitor and troubleshoot, Get system log. If the fingerprints don't match, |
|
someone might be attempting a man-in-the-middle attack. If they match, continue to the next |
|
step. |
|
|
|
9. |
|
|
|
Enter yes. |
|
The following is an example response: |
|
Warning: Permanently added 'ec2-198-51-100-1.useast-2.compute.amazonaws.com' (ECDSA) to the list of known hosts. |
|
|
|
Windows instances |
|
To connect to a Windows instance using RDP, you must retrieve the initial administrator password |
|
and then enter this password when you connect to your instance. It takes a few minutes after |
|
instance launch before this password is available. Your account must have permission to call the |
|
GetPasswordData action. For more information, see Example policies to control access the Amazon |
|
EC2 API. |
|
The default username for the Administrator account depends on the language of the operating |
|
system (OS) contained in the AMI. To determine the correct username, identify the language |
|
of the OS, and then choose the corresponding username. For example, for an English OS, the |
|
username is Administrator, for a French OS it's Administrateur, and for a Portuguese OS it's |
|
Administrador. If a language version of the OS does not have a username in the same language, |
|
choose the username Administrator (Other). For more information, see Localized Names for |
|
Administrator Account in Windows in the Microsoft website. |
|
To retrieve the initial administrator password |
|
1. |
|
|
|
Open the Amazon EC2 console at https://console.aws.amazon.com/ec2/. |
|
|
|
2. |
|
|
|
In the navigation pane, choose Instances. |
|
|
|
3. |
|
|
|
Select the instance and then choose Connect. |
|
|
|
4. |
|
|
|
On the Connect to instance page, choose the RDP client tab. |
|
|
|
5. |
|
|
|
For Username, choose the default username for the Administrator account. The username you |
|
choose must match the language of the operating system (OS) contained in the AMI that you |
|
|
|
Step 2: Connect to your instance |
|
|
|
13 |
|
|
|
Amazon Elastic Compute Cloud |
|
|
|
User Guide |
|
|
|
used to launch your instance. If there is no username in the same language as your OS, choose |
|
Administrator (Other). |
|
6. |
|
|
|
Choose Get password. |
|
|
|
7. |
|
|
|
On the Get Windows password page, do the following: |
|
a. |
|
|
|
Choose Upload private key file and navigate to the private key (.pem) file that you |
|
specified when you launched the instance. Select the file and choose Open to copy the |
|
entire contents of the file to this window. |
|
|
|
b. |
|
|
|
Choose Decrypt password. The Get Windows password page closes, and the default |
|
administrator password for the instance appears under Password, replacing the Get |
|
password link shown previously. |
|
|
|
c. |
|
|
|
Copy the password and save it in a safe place. This password is required to connect to the |
|
instance. |
|
|
|
The following procedure uses the Remote Desktop Connection client for Windows (MSTSC). If |
|
you're using a different RDP client, download the RDP file and then see the documentation for the |
|
RDP client for the steps to establish the RDP connection. |
|
To connect to a Windows instance using an RDP client |
|
1. |
|
|
|
On the Connect to instance page, choose Download remote desktop file. When the |
|
file download is finished, choose Cancel to return to the Instances page. The RDP file is |
|
downloaded to your Downloads folder. |
|
|
|
2. |
|
|
|
Run mstsc.exe to open the RDP client. |
|
|
|
3. |
|
|
|
Expand Show options, choose Open, and select the .rdp file from your Downloads folder. |
|
|
|
4. |
|
|
|
By default, Computer is the public IPv4 DNS name of the instance and User name is the |
|
administrator account. To connect to the instance using IPv6 instead, replace the public IPv4 |
|
DNS name of the instance with its IPv6 address. Review the default settings and change them |
|
as needed. |
|
|
|
5. |
|
|
|
Choose Connect. If you receive a warning that the publisher of the remote connection is |
|
unknown, choose Connect to continue. |
|
|
|
6. |
|
|
|
Enter the password that you saved previously, and then choose OK. |
|
|
|
7. |
|
|
|
Due to the nature of self-signed certificates, you might get a warning that the security |
|
certificate could not be authenticated. Do one of the following: |
|
• |
|
|
|
If you trust the certificate, choose Yes to connect to your instance. |
|
|
|
Step 2: Connect to your instance |
|
|
|
14 |
|
|
|
Amazon Elastic Compute Cloud |
|
|
|
• |
|
|
|
User Guide |
|
|
|
[Windows] Before you proceed, compare the thumbprint of the certificate with the value |
|
in the system log to confirm the identity of the remote computer. Choose View certificate |
|
and then choose Thumbprint from the Details tab. Compare this value to the value of |
|
RDPCERTIFICATE-THUMBPRINT in Actions, Monitor and troubleshoot, Get system log. |
|
|
|
• |
|
|
|
[Mac OS X] Before you proceed, compare the fingerprint of the certificate with the |
|
value in the system log to confirm the identity of the remote computer. Choose Show |
|
Certificate, expand Details, and choose SHA1 Fingerprints. Compare this value to the |
|
value of RDPCERTIFICATE-THUMBPRINT in Actions, Monitor and troubleshoot, Get |
|
system log. |
|
|
|
8. |
|
|
|
If the RDP connection is successful, the RDP client displays the Windows login screen and |
|
then the Windows desktop. If you receive an error message instead, see the section called |
|
“Remote Desktop can't connect to the remote computer”. When you are finished with the RDP |
|
connection, you can close the RDP client. |
|
|
|
Step 3: Clean up your instance |
|
After you've finished with the instance that you created for this tutorial, you should clean up by |
|
terminating the instance. If you want to do more with this instance before you clean up, see Next |
|
steps. |
|
|
|
Important |
|
Terminating an instance effectively deletes it; you can't reconnect to an instance after |
|
you've terminated it. |
|
|
|
You'll stop incurring charges for that instance or usage that counts against your Free Tier limits as |
|
soon as the instance status changes to shutting down or terminated. To keep your instance |
|
for later, but not incur charges or usage that counts against your Free Tier limits, you can stop the |
|
instance now and then start it again later. For more information, see Stop and start Amazon EC2 |
|
instances. |
|
To terminate your instance |
|
1. |
|
|
|
In the navigation pane, choose Instances. In the list of instances, select the instance. |
|
|
|
2. |
|
|
|
Choose Instance state, Terminate (delete) instance. |
|
|
|
Step 3: Clean up your instance |
|
|
|
15 |
|
|
|
Amazon Elastic Compute Cloud |
|
|
|
3. |
|
|
|
User Guide |
|
|
|
Choose Terminate (delete) when prompted for confirmation. |
|
Amazon EC2 shuts down and terminates your instance. After your instance is terminated, it |
|
remains visible on the console for a short while, and then the entry is automatically deleted. |
|
You cannot remove the terminated instance from the console display yourself. |
|
|
|
Next steps |
|
After you start your instance, you might want to explore the following next steps: |
|
• Explore the Amazon EC2 core concepts with the introductory tutorials. For more information, see |
|
Tutorials for launching EC2 instances. |
|
• Learn how to track your Amazon EC2 Free Tier usage using the console. For more information, |
|
see the section called “Track your Free Tier usage”. |
|
• Configure a CloudWatch alarm to notify you if your usage exceeds the Free Tier (for accounts |
|
created before July 15, 2025). For more information, see Tracking your AWS Free Tier usage in |
|
the AWS Billing User Guide. |
|
• Add an EBS volume. For more information, see Create an Amazon EBS volume in the Amazon EBS |
|
User Guide. |
|
• Learn how to remotely manage your EC2 instance using the Run command. For more |
|
information, see AWS Systems Manager Run Command in the AWS Systems Manager User Guide. |
|
• Learn about instance purchasing options. For more information, see Amazon EC2 billing and |
|
purchasing options. |
|
• Get advice about instance types. For more information, see Get recommendations from EC2 |
|
instance type finder. |
|
|
|
Next steps |
|
|
|
16 |
|
|
|
Amazon Elastic Compute Cloud |
|
|
|
User Guide |
|
|
|
Best practices for Amazon EC2 |
|
To ensure the maximum benefit from Amazon EC2, we recommend that you perform the following |
|
best practices. |
|
Security |
|
• Manage access to AWS resources and APIs using identity federation with an identity provider and |
|
IAM roles whenever possible. For more information, see Creating IAM policies in the IAM User |
|
Guide. |
|
• Implement the least permissive rules for your security group. |
|
• Regularly patch, update, and secure the operating system and applications on your instance. |
|
For more information, see Update management. For guidelines specific to Windows operating |
|
systems, see Security best practices for Windows instances. |
|
• Use Amazon Inspector to automatically discover and scan Amazon EC2 instances for software |
|
vulnerabilities and unintended network exposure. For more information, see the Amazon |
|
Inspector User Guide. |
|
• Use AWS Security Hub controls to monitor your Amazon EC2 resources against security best |
|
practices and security standards. For more information about using Security Hub, see Amazon |
|
Elastic Compute Cloud controls in the AWS Security Hub User Guide. |
|
Storage |
|
• Understand the implications of the root device type for data persistence, backup, and recovery. |
|
For more information, see Root device type. |
|
• Use separate Amazon EBS volumes for the operating system versus your data. Ensure that the |
|
volume with your data persists after instance termination. For more information, see Preserve |
|
data when an instance is terminated. |
|
• Use the instance store available for your instance to store temporary data. Remember that the |
|
data stored in instance store is deleted when you stop, hibernate, or terminate your instance. |
|
If you use instance store for database storage, ensure that you have a cluster with a replication |
|
factor that ensures fault tolerance. |
|
• Encrypt EBS volumes and snapshots. For more information, see Amazon EBS encryption in the |
|
Amazon EBS User Guide. |
|
17 |
|
|
|
Amazon Elastic Compute Cloud |
|
|
|
User Guide |
|
|
|
Resource management |
|
• Use instance metadata and custom resource tags to track and identify your AWS resources. |
|
For more information, see Use instance metadata to manage your EC2 instance and Tag your |
|
Amazon EC2 resources. |
|
• View your current limits for Amazon EC2. Plan to request any limit increases in advance of the |
|
time that you'll need them. For more information, see Amazon EC2 service quotas. |
|
• Use AWS Trusted Advisor to inspect your AWS environment, and then make recommendations |
|
when opportunities exist to save money, improve system availability and performance, or help |
|
close security gaps. For more information, see AWS Trusted Advisor in the AWS Support User |
|
Guide. |
|
Backup and recovery |
|
• Regularly back up your EBS volumes using Amazon EBS snapshots, and create an Amazon |
|
Machine Image (AMI) from your instance to save the configuration as a template for launching |
|
future instances. For more information about AWS services that help achieve this use case, see |
|
AWS Backup and Amazon Data Lifecycle Manager. |
|
• Deploy critical components of your application across multiple Availability Zones, and replicate |
|
your data appropriately. |
|
• Design your applications to handle dynamic IP addressing when your instance restarts. For more |
|
information, see Amazon EC2 instance IP addressing. |
|
• Monitor and respond to events. For more information, see Monitor Amazon EC2 resources. |
|
• Ensure that you are prepared to handle failover. For a basic solution, you can manually attach |
|
a network interface or Elastic IP address to a replacement instance. For more information, see |
|
Elastic network interfaces. For an automated solution, you can use Amazon EC2 Auto Scaling. For |
|
more information, see the Amazon EC2 Auto Scaling User Guide. |
|
• Regularly test the process of recovering your instances and Amazon EBS volumes to ensure data |
|
and services are restored successfully. |
|
Networking |
|
• Set the time-to-live (TTL) value for your applications to 255, for IPv4 and IPv6. If you use a |
|
smaller value, there is a risk that the TTL will expire while application traffic is in transit, causing |
|
reachability issues for your instances. |
|
|
|
18 |
|
|
|
Amazon Elastic Compute Cloud |
|
|
|
User Guide |
|
|
|
Amazon Machine Images in Amazon EC2 |
|
An Amazon Machine Image (AMI) is an image that provides the software that is required to set up |
|
and boot an Amazon EC2 instance. Each AMI also contains a block device mapping that specifies |
|
the block devices to attach to the instances that you launch. You must specify an AMI when you |
|
launch an instance. The AMI must be compatible with the instance type that you chose for your |
|
instance. You can use an AMI provided by AWS, a public AMI, an AMI that someone else shared with |
|
you, or an AMI that you purchased from the AWS Marketplace. |
|
An AMI is specific to the following: |
|
• Region |
|
• Operating system |
|
• Processor architecture |
|
• Root device type |
|
• Virtualization type |
|
You can launch multiple instances from a single AMI when you require multiple instances with the |
|
same configuration. You can use different AMIs to launch instances when you require instances |
|
with different configurations, as shown in the following diagram. |
|
|
|
19 |
|
|
|
Amazon Elastic Compute Cloud |
|
|
|
User Guide |
|
|
|
You can create an AMI from your Amazon EC2 instances and then use it to launch instances with |
|
the same configuration. You can copy an AMI to another AWS Region, and then use it to launch |
|
instances in that Region. You can also share an AMI that you created with other accounts so that |
|
they can launch instances with the same configuration. You can sell your AMI using the AWS |
|
Marketplace. |
|
Contents |
|
• AMI types and characteristics in Amazon EC2 |
|
• Find an AMI that meets the requirements for your EC2 instance |
|
• Paid AMIs in the AWS Marketplace for Amazon EC2 instances |
|
• Amazon EC2 AMI lifecycle |
|
• Instance launch behavior with Amazon EC2 boot modes |
|
• Use encryption with EBS-backed AMIs |
|
• Understand shared AMI usage in Amazon EC2 |
|
• Monitor AMI events using Amazon EventBridge |
|
• Understand AMI billing information |
|
• AMI quotas in Amazon EC2 |
|
20 |
|
|
|
Amazon Elastic Compute Cloud |
|
|
|
User Guide |
|
|
|
AMI types and characteristics in Amazon EC2 |
|
When you launch an instance, the AMI that you choose must be compatible with the instance type |
|
that you choose. You can select an AMI to use based on the following characteristics: |
|
• Region |
|
• Operating system |
|
• Processor architecture |
|
• Launch permissions |
|
• Root device type |
|
• Virtualization types |
|
|
|
Launch permissions |
|
Launch permissions determine who can use an AMI to launch instances. You can think of launch |
|
permissions as sharing an AMI—when you grant launch permissions, you're sharing the AMI |
|
with other users. Only the owner of an AMI can determine its availability by specifying launch |
|
permissions. Launch permissions fall into the following categories. |
|
Launch |
|
permission |
|
|
|
Description |
|
|
|
public |
|
|
|
The owner grants launch permissions to all AWS accounts. |
|
|
|
explicit |
|
|
|
The owner grants launch permissions to specific AWS accounts, organizat |
|
ions, or organizational units (OUs). |
|
|
|
implicit |
|
|
|
The owner has implicit launch permissions for an AMI. |
|
|
|
Amazon and the Amazon EC2 community provide a large selection of public AMIs. For more |
|
information, see Understand shared AMI usage in Amazon EC2. Developers can charge for their |
|
AMIs. For more information, see Paid AMIs in the AWS Marketplace for Amazon EC2 instances. |
|
|
|
Root device type |
|
All AMIs are categorized as either backed by Amazon EBS or backed by instance store. |
|
AMI characteristics |
|
|
|
21 |
|
|
|
Amazon Elastic Compute Cloud |
|
|
|
User Guide |
|
|
|
• Amazon EBS-backed AMI – The root device for an instance launched from the AMI is an Amazon |
|
Elastic Block Store (Amazon EBS) volume created from an Amazon EBS snapshot. Supported for |
|
both Linux and Windows AMIs. |
|
• Amazon instance store-backed AMI – The root device for an instance launched from the AMI is an |
|
instance store volume created from a template stored in Amazon S3. Supported for Linux AMIs |
|
only. Windows AMIs do not support instance store for the root device. |
|
For more information, see Root volumes for your Amazon EC2 instances. |
|
Note |
|
Instance store-backed AMIs are considered end of life and are not recommended for new |
|
usage. They are only supported on the following older instance types: C1, C3, D2, I2, M1, |
|
M2, M3, R3, and X1. |
|
|
|
The following table summarizes the important differences when using the two types of AMIs. |
|
Characteristic |
|
|
|
Amazon EBS-backed AMI |
|
|
|
Amazon instance store-backed |
|
AMI |
|
|
|
Root device volume |
|
|
|
EBS volume |
|
|
|
Instance store volume |
|
|
|
Boot time for an |
|
instance |
|
|
|
Usually less than 1 minute |
|
|
|
Usually less than 5 minutes |
|
|
|
By default, the root volume |
|
is deleted when the instance |
|
terminates.* Data on any other |
|
EBS volumes persists after |
|
instance termination by default. |
|
|
|
Data on any instance store |
|
volumes persists only during the |
|
life of the instance. |
|
|
|
Can be in a stopped state. Even |
|
when the instance is stopped and |
|
not running, the root volume is |
|
persisted in Amazon EBS. |
|
|
|
Cannot be in a stopped state; |
|
instances are running or |
|
terminated. |
|
|
|
Data persistence |
|
|
|
Stopped state |
|
|
|
Root device type |
|
|
|
22 |
|
|
|
Amazon Elastic Compute Cloud |
|
|
|
Characteristic |
|
|
|
Modifications |
|
|
|
Charges |
|
|
|
AMI creation/bundling |
|
|
|
User Guide |
|
|
|
Amazon EBS-backed AMI |
|
|
|
Amazon instance store-backed |
|
AMI |
|
|
|
The instance type, kernel, RAM |
|
disk, and user data can be |
|
changed while the instance is |
|
stopped. |
|
|
|
Instance attributes are fixed for |
|
the life of an instance. |
|
|
|
You're charged for instance |
|
usage, EBS volume usage, and |
|
storing your AMI as an EBS snaps |
|
hot. |
|
|
|
You're charged for instance usage |
|
and storing your AMI in Amazon |
|
S3. |
|
|
|
Uses a single command/call |
|
|
|
Requires installation and use of |
|
AMI tools |
|
|
|
* By default, EBS root volumes have the DeleteOnTermination flag set to true. For information |
|
about how to change this flag so that the volume persists after termination, see Keep an Amazon |
|
EBS root volume after an Amazon EC2 instance terminates. |
|
** Supported with io2 EBS Block Express only. For more information, see Provisioned IOPS SSD |
|
Block Express volumes in the Amazon EBS User Guide. |
|
|
|
Determine the root device type of your AMI |
|
The AMI that you use to launch an EC2 instance determines the type of the root volume. The root |
|
volume of an EC2 instance is either an EBS volume or an instance store volume. |
|
Nitro-based instances support only EBS root volumes. The following previous generation instance |
|
types are the only instance types that support instance store root volumes: C1, C3, D2, I2, M1, M2, |
|
M3, R3, and X1. |
|
Console |
|
To determine the root device type of an AMI |
|
1. |
|
|
|
Open the Amazon EC2 console at https://console.aws.amazon.com/ec2/. |
|
|
|
Determine the AMI root device type |
|
|
|
23 |
|
|
|
Amazon Elastic Compute Cloud |
|
|
|
User Guide |
|
|
|
Amazon EC2 instances |
|
An Amazon EC2 instance is a virtual server in the AWS cloud environment. You have full control |
|
over your instance, from the time that you first start it (referred to as launching an instance) until |
|
you delete it (referred to as terminating an instance). You can choose from a variety of operating |
|
systems when you launch your instance. You can connect to your instance and customize it to meet |
|
your needs. For example, you can configure the operating system, install operating system updates, |
|
and install applications on your instance. |
|
Amazon EC2 provides a wide range of instance types. You can choose an instance type that |
|
provides the compute resources, memory, storage, and network performance that you need to run |
|
your applications. |
|
With Amazon EC2, you pay only for what you use. Billing for your instance starts when you launch |
|
your instance and it transitions to the running state. Billing stops when you stop your instance and |
|
resumes when you start your instance. When you terminate your instance, billing stops when it |
|
transitions to the shutting down state. |
|
Amazon EC2 provides features that you can use to optimize the performance and the cost of |
|
your instances. For example, you can use Amazon EC2 Fleet or Amazon EC2 Auto Scaling to scale |
|
your capacity up or down as your instance utilization changes. You can reduce the costs for your |
|
instances using Spot Instances or Savings Plans. |
|
A managed instance is managed by a service provider, such as Amazon EKS Auto Mode. You can’t |
|
directly modify the settings of a managed instance. Managed instances are identified by a true |
|
value in the Managed field. For more information, see Amazon EC2 managed instances. |
|
Features and tasks |
|
• Amazon EC2 instance types |
|
• Amazon EC2 managed instances |
|
• Amazon EC2 billing and purchasing options |
|
• Store instance launch parameters in Amazon EC2 launch templates |
|
• Launch an Amazon EC2 instance |
|
• Connect to your EC2 instance |
|
• Amazon EC2 instance state changes |
|
267 |
|
|
|
Amazon Elastic Compute Cloud |
|
|
|
User Guide |
|
|
|
• Automatic instance recovery |
|
• Use instance metadata to manage your EC2 instance |
|
• Detect whether a host is an EC2 instance |
|
• Instance identity documents for Amazon EC2 instances |
|
• Precision clock and time synchronization on your EC2 instance |
|
• Manage device drivers for your EC2 instance |
|
• Configure your Amazon EC2 Windows instance |
|
• Upgrade an EC2 Windows instance to a newer version of Windows Server |
|
• Tutorial: Connect an Amazon EC2 instance to an Amazon RDS database |
|
|
|
Amazon EC2 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, and is grouped in an instance family based on these capabilities. Select an |
|
instance type based on the requirements of the application or software that you plan to run on |
|
your instance. For more information about features and use cases, see Amazon EC2 Instance Types. |
|
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 underused, 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. |
|
Contents |
|
• Available instance types |
|
• Hardware specifications |
|
Instance types |
|
|
|
268 |
|
|
|
Amazon Elastic Compute Cloud |
|
|
|
User Guide |
|
|
|
• Hypervisor type |
|
• AMI virtualization types |
|
• Processors |
|
• Find an Amazon EC2 instance type |
|
• Get recommendations from EC2 instance type finder |
|
• Get EC2 instance recommendations from Compute Optimizer |
|
• Amazon EC2 instance type changes |
|
• Burstable performance instances |
|
• Performance acceleration with GPU instances |
|
• Amazon EC2 Mac instances |
|
• Amazon EBS-optimized instance types |
|
• CPU options for Amazon EC2 instances |
|
• AMD SEV-SNP for Amazon EC2 instances |
|
• Processor state control for Amazon EC2 Linux instances |
|
|
|
Available instance types |
|
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. |
|
Instance type naming conventions |
|
Names are based on instance family, generation, processor family, capabilities, and size. For more |
|
information, see Naming conventions in the Amazon EC2 Instance Types Guide. |
|
Find an instance type |
|
To determine which instance types meet your requirements, such as supported Regions, compute |
|
resources, or storage resources, see Find an Amazon EC2 instance type and Amazon EC2 instance |
|
type specifications in the Amazon EC2 Instance Types Guide. |
|
Available instance types |
|
|
|
269 |
|
|
|
Amazon Elastic Compute Cloud |
|
|
|
User Guide |
|
|
|
• Launch a container instance using an Inf1 or Inf2 instance and an Amazon ECS-optimized AMI. |
|
For more information, see Amazon Linux 2 (Inferentia) AMIs in the Amazon Elastic Container |
|
Service Developer Guide. |
|
• Create an Amazon EKS cluster with nodes running Inf1 instances. For more information, see |
|
Inferentia support in the Amazon EKS User Guide. |
|
|
|
Find an Amazon EC2 instance type |
|
Before you can launch an instance, you must select an instance type to use. The instance type |
|
that you choose might depend on the resources that your workload requires, such as compute, |
|
memory, or storage resources. It can be beneficial to identify several instance types that might suit |
|
your workload and evaluate their performance in a test environment. There is no substitute for |
|
measuring the performance of your application under load. |
|
You can get suggestions and guidance for EC2 instance types using the EC2 instance type finder. |
|
For more information, see the section called “EC2 instance type finder”. |
|
If you already have running EC2 instances, you can use AWS Compute Optimizer to get |
|
recommendations about the instance types that you should use to improve performance, |
|
save money, or both. For more information, see the section called “Compute Optimizer |
|
recommendations”. |
|
Tasks |
|
• Find an instance type using the console |
|
• Describe an instance type using the AWS CLI |
|
• Find an instance type using the AWS CLI |
|
• Find an instance type using the Tools for PowerShell |
|
|
|
Find an instance type using the console |
|
You can find an instance type that meets your needs using the Amazon EC2 console. |
|
To find an instance type using the console |
|
1. |
|
|
|
Open the Amazon EC2 console at https://console.aws.amazon.com/ec2/. |
|
|
|
2. |
|
|
|
From the navigation bar, select the Region in which to launch your instances. You can select |
|
any Region that's available to you, regardless of your location. |
|
|
|
Find an instance type |
|
|
|
274 |
|
|
|
Amazon Elastic Compute Cloud |
|
|
|
User Guide |
|
|
|
3. |
|
|
|
In the navigation pane, choose Instance Types. |
|
|
|
4. |
|
|
|
(Optional) Choose the preferences (gear) icon to select which instance type attributes to |
|
display, such as On-Demand Linux pricing, and then choose Confirm. Alternatively, select the |
|
name of an instance type to open its details page and view all attributes available through |
|
the console. The console does not display all the attributes available through the API or the |
|
command line. |
|
|
|
5. |
|
|
|
Use the instance type attributes to filter the list of displayed instance types to only the |
|
instance types that meet your needs. For example, you can filter on the following attributes: |
|
• Availability zones – The name of the Availability Zone, Local Zone, or Wavelength Zone. For |
|
more information, see the section called “Regions and Zones”. |
|
• vCPUs or Cores – The number of vCPUs or cores. |
|
• Memory (GiB) – The memory size, in GiB. |
|
• Network performance – The network performance, in Gigabits. |
|
• Local instance storage – Indicates whether the instance type has local instance storage |
|
(true | false). |
|
|
|
6. |
|
|
|
(Optional) To see a side-by-side comparison, select the checkbox for multiple instance types. |
|
The comparison is displayed at the bottom of the screen. |
|
|
|
7. |
|
|
|
(Optional) To save the list of instance types to a comma-separated values (.csv) file for further |
|
review, choose Actions, Download list CSV. The file includes all instance types that match the |
|
filters you set. |
|
|
|
8. |
|
|
|
(Optional) To launch instances using an instance type that meet your needs, select the |
|
checkbox for the instance type and choose Actions, Launch instance. For more information, |
|
see Launch an EC2 instance using the launch instance wizard in the console. |
|
|
|
Describe an instance type using the AWS CLI |
|
You can use the describe-instance-types command to describe a specific instance type. |
|
To fully describe an instance type |
|
The following command displays all available details for the specified instance type. The output is |
|
lengthy, so it is omitted here. |
|
aws ec2 describe-instance-types \ |
|
--instance-types t2.micro \ |
|
Find an instance type |
|
|
|
275 |
|
|
|
Amazon Elastic Compute Cloud |
|
|
|
User Guide |
|
|
|
EC2 Fleet and Spot Fleet |
|
EC2 Fleet and Spot Fleet are designed to be a useful way to launch a fleet of tens, hundreds, |
|
or thousands of Amazon EC2 instances in a single operation. Each instance in a fleet is either |
|
configured by a launch template or a set of launch parameters that you configure manually at |
|
launch. |
|
Topics |
|
• Features and benefits |
|
• Which is the best fleet method to use? |
|
• Configuration options for your EC2 Fleet or Spot Fleet |
|
• Work with EC2 Fleet |
|
• Work with Spot Fleet |
|
• Monitor your EC2 Fleet or Spot Fleet |
|
• Tutorials for EC2 Fleet |
|
• Example CLI configurations for EC2 Fleet |
|
• Example CLI configurations Spot Fleet |
|
• Quotas for EC2 Fleet and Spot Fleet |
|
|
|
Features and benefits |
|
Fleets provide the following features and benefits, enabling you to maximize cost savings and |
|
optimize availability and performance when running applications on multiple EC2 instances. |
|
Multiple instance types |
|
A fleet can launch multiple instance types, ensuring it isn't dependent on the availability of any |
|
single instance type. This increases the overall availability of instances in your fleet. |
|
Distributing instances across Availability Zones |
|
A fleet automatically attempts to distribute instances evenly across multiple Availability Zones |
|
for high availability. This provides resiliency in case an Availability Zone becomes unavailable. |
|
|
|
Features and benefits |
|
|
|
1933 |
|
|
|
Amazon Elastic Compute Cloud |
|
|
|
User Guide |
|
|
|
Multiple purchasing options |
|
A fleet can launch multiple purchase options (Spot and On-Demand Instances), allowing you to |
|
optimize costs through Spot Instance usage. You can also take advantage of Reserved Instance |
|
and Savings Plans discounts by using them in conjunction with On-Demand Instances in the |
|
fleet. |
|
Automated replacement of Spot Instances |
|
If your fleet includes Spot Instances, it can automatically request replacement Spot capacity if |
|
your Spot Instances are interrupted. Through Capacity Rebalancing, a fleet can also monitor and |
|
proactively replace your Spot Instances that are at an elevated risk of interruption. |
|
Reserve On-Demand capacity |
|
A fleet can use an On-Demand Capacity Reservation to reserve On-Demand capacity. A fleet can |
|
also include Capacity Blocks for ML, allowing you to reserve GPU instances on a future date to |
|
support short duration machine learning (ML) workloads. |
|
|
|
Which is the best fleet method to use? |
|
As a general best practice, we recommend launching fleets of Spot and On-Demand Instances with |
|
Amazon EC2 Auto Scaling because it provides additional features you can use to manage your fleet. |
|
The list of additional features includes automatic health check replacements for both Spot and OnDemand Instances, application-based health checks, and an integration with Elastic Load Balancing |
|
to ensure an even distribution of application traffic to your healthy instances. You can also use |
|
Auto Scaling groups when you use AWS services such as Amazon ECS, Amazon EKS (self-managed |
|
node groups), and Amazon VPC Lattice. For more information, see the Amazon EC2 Auto Scaling |
|
User Guide. |
|
If you can't use Amazon EC2 Auto Scaling, then you might consider using EC2 Fleet or Spot Fleet. |
|
EC2 Fleet and Spot Fleet offer the same core functionality. However, EC2 Fleet is only available |
|
using a command line and does not provide console support. Spot Fleet provides console support, |
|
but is based on a legacy API with no planned investment. |
|
Use the following table to determine which fleet method to use. |
|
|
|
Which fleet method to use? |
|
|
|
1934 |
|
|
|
Amazon Elastic Compute Cloud |
|
|
|
User Guide |
|
|
|
Fleet method |
|
|
|
When to use? |
|
|
|
Use case |
|
|
|
Amazon EC2 Auto Scaling |
|
|
|
• You need multiple |
|
instances with either a |
|
single configuration or a |
|
mixed configuration. |
|
|
|
Create an Auto Scaling group |
|
that manages the lifecycle of |
|
your instances while maintaini |
|
ng the desired number of |
|
instances. Supports horizontal |
|
scaling (adding more instances |
|
) between specified minimum |
|
|
|
• You want to automate the |
|
lifecycle management of |
|
your instances. |
|
EC2 Fleet |
|
|
|
• You need multiple |
|
instances with either a |
|
single configuration or a |
|
mixed configuration. |
|
• You want to self-manage |
|
your instance lifecycle. |
|
• If you don’t need auto |
|
scaling, we recommend |
|
that you use an instant |
|
type EC2 Fleet. |
|
|
|
and maximum limits. |
|
Create an instant fleet of |
|
both On-Demand Instances |
|
and Spot Instances in a single |
|
operation, with multiple |
|
launch specifications that |
|
vary by instance type, AMI, |
|
Availability Zone, or subnet. |
|
The Spot Instance allocation |
|
strategy defaults to lowestprice per unit, but we |
|
recommend changing it to |
|
price-capacity-opt |
|
imized . |
|
|
|
Spot Fleet |
|
|
|
• We strongly discourage |
|
using Spot Fleet because |
|
it is based on a legacy API |
|
with no planned investmen |
|
t. |
|
|
|
Use Spot Fleet only if you |
|
need console support for a |
|
use case for when you would |
|
use EC2 Fleet. |
|
|
|
• If you want to manage |
|
your instance lifecycle, |
|
rather use EC2 Fleet. |
|
• If you don't want to |
|
manage your instance |
|
|
|
Which fleet method to use? |
|
|
|
1935 |
|
|
|
Amazon Elastic Compute Cloud |
|
|
|
Fleet method |
|
|
|
User Guide |
|
|
|
When to use? |
|
|
|
Use case |
|
|
|
lifecycle, rather use an |
|
Auto Scaling group. |
|
|
|
Configuration options for your EC2 Fleet or Spot Fleet |
|
When planning your EC2 Fleet or Spot Fleet, we recommend that you consider the following |
|
options when deciding how to configure your fleet. |
|
|
|
Configura |
|
tion |
|
option |
|
|
|
Question |
|
|
|
Documentation |
|
|
|
Fleet |
|
request |
|
type |
|
|
|
Do you want a fleet that submits a one-time |
|
request for the desired target capacity, or a fleet |
|
that maintains target capacity over time? |
|
|
|
EC2 Fleet and Spot Fleet |
|
request types |
|
|
|
Spot |
|
Instances |
|
|
|
Do you plan to include Spot Instances in your |
|
fleet? Review the Spot best practices and use |
|
them when you plan your fleet so that you can |
|
provision the instances at the lowest possible |
|
price. |
|
|
|
Best practices for Amazon |
|
EC2 Spot |
|
|
|
Spending |
|
limit for |
|
your fleet |
|
|
|
Do you want to limit how much you'll pay for |
|
your fleet per hour? |
|
|
|
Set a spending limit for your |
|
EC2 Fleet or Spot Fleet |
|
|
|
Instance |
|
types and |
|
attribute |
|
-based |
|
instance |
|
type |
|
selection |
|
|
|
Do you want to specify the instance types in |
|
your fleet, or let Amazon EC2 select the instance |
|
types that meet your application requirements? |
|
|
|
Specify attributes for instance |
|
type selection for EC2 Fleet |
|
or Spot Fleet |
|
|
|
Configuration options |
|
|
|
1936 |
|
|
|
Amazon Elastic Compute Cloud |
|
|
|
User Guide |
|
|
|
Configura |
|
tion |
|
option |
|
|
|
Question |
|
|
|
Documentation |
|
|
|
Instance |
|
weighting |
|
|
|
Do you want to assign weights to each instance |
|
type to represent their compute capacity and |
|
performance, so that Amazon EC2 can select any |
|
combination of available instance types to fulfil |
|
your desired target capacity? |
|
|
|
Use instance weighting to |
|
manage cost and performanc |
|
e of your EC2 Fleet or Spot |
|
Fleet |
|
|
|
Allocation |
|
strategies |
|
|
|
Do you want to decide whether to optimize for |
|
available capacity, price, or instance types to use |
|
for the Spot Instances and On-Demand Instances |
|
in your fleet? |
|
|
|
Use allocation strategies to |
|
determine how EC2 Fleet or |
|
Spot Fleet fulfills Spot and |
|
On-Demand capacity |
|
|
|
Capacity |
|
Rebalanci |
|
ng |
|
|
|
Do you want your fleet to automatically replace |
|
at-risk Spot Instances? |
|
|
|
Use Capacity Rebalancing in |
|
EC2 Fleet and Spot Fleet to |
|
replace at-risk Spot Instances |
|
|
|
OnDemand |
|
Capacity |
|
Reservati |
|
on |
|
|
|
Do you want to reserve capacity for the OnDemand Instances in your fleet? |
|
|
|
Use Capacity Reservations to |
|
reserve On-Demand capacity |
|
in EC2 Fleet |
|
|
|
EC2 Fleet and Spot Fleet request types |
|
The request type for an EC2 Fleet or Spot Fleet determines whether the request is synchronous or |
|
asynchronous, and whether it is a one-time request for the desired target capacity or an ongoing |
|
effort to maintain the capacity over time. When configuring your fleet, you must specify the |
|
request type. |
|
Both EC2 Fleet and Spot Fleet offer two request types: request and maintain. In addition, EC2 |
|
Fleet offers a third request type called instant. |
|
|
|
Request types |
|
|
|
1937 |
|
|
|
Amazon Elastic Compute Cloud |
|
|
|
User Guide |
|
|
|
Fleet request types |
|
instant (EC2 Fleet only) |
|
If you configure the request type as instant, EC2 Fleet places a synchronous one-time request |
|
for your desired capacity. In the API response, it returns the instances that launched and |
|
provides errors for those instances that could not be launched. For more information, see |
|
Configure an EC2 Fleet of type instant. |
|
request |
|
If you configure the request type as request, the fleet places an asynchronous one-time |
|
request for your desired capacity. If capacity diminishes due to Spot interruptions, the fleet does |
|
not attempt to replenish Spot Instances, nor does it submit requests in alternative Spot capacity |
|
pools if capacity is unavailable. When creating a Spot Fleet of type request using the console, |
|
clear the Maintain target capacity checkbox. |
|
maintain (default) |
|
If you configure the request type as maintain, the fleet places an asynchronous request for |
|
your desired capacity, and maintains it by automatically replenishing any interrupted Spot |
|
Instances. When creating a Spot Fleet of type maintain using the console, select the Maintain |
|
target capacity checkbox |
|
|
|
Configure an EC2 Fleet of type instant |
|
The EC2 Fleet of type instant is a synchronous one-time request that makes only one attempt to |
|
launch your desired capacity. The API response lists the instances that launched, along with errors |
|
for those instances that could not be launched. There are several benefits to using an EC2 Fleet of |
|
type instant, which are described in this article. Example configurations are provided at the end of |
|
the article. |
|
For workloads that need a launch-only API to launch EC2 instances, you can use the RunInstances |
|
API. However, with RunInstances, you can only launch On-Demand Instances or Spot Instances, but |
|
not both in the same request. Furthermore, when you use RunInstances to launch Spot Instances, |
|
your Spot Instance request is limited to one instance type and one Availability Zone. This targets |
|
a single Spot capacity pool (a set of unused instances with the same instance type and Availability |
|
Zone). If the Spot capacity pool does not have sufficient Spot Instance capacity for your request, |
|
the RunInstances call fails. |
|
Request types |
|
|
|
1938 |
|
|
|
Amazon Elastic Compute Cloud |
|
|
|
User Guide |
|
|
|
Instead of using RunInstances to launch Spot Instances, we recommend that you rather use the |
|
CreateFleet API with the type parameter set to instant for the following benefits: |
|
• Launch On-Demand Instances and Spot Instances in one request. An EC2 Fleet can launch OnDemand Instances, Spot Instances, or both. The request for Spot Instances is fulfilled if there is |
|
available capacity and the maximum price per hour for your request exceeds the Spot price. |
|
• Increase the availability of Spot Instances. By using an EC2 Fleet of type instant, you can |
|
launch Spot Instances following Spot best practices with the resulting benefits: |
|
• Spot best practice: Be flexible about instance types and Availability Zones. |
|
Benefit: By specifying several instance types and Availability Zones, you increase the number |
|
of Spot capacity pools. This gives the Spot service a better chance of finding and allocating |
|
your desired Spot compute capacity. A good rule of thumb is to be flexible across at least 10 |
|
instance types for each workload and make sure that all Availability Zones are configured for |
|
use in your VPC. |
|
• Spot best practice: Use the price-capacity-optimized allocation strategy. |
|
Benefit: The price-capacity-optimized allocation strategy identifies instances from the |
|
most-available Spot capacity pools, and then automatically provisions instances from the |
|
lowest priced of these pools. Because your Spot Instance capacity is sourced from pools with |
|
optimal capacity, this decreases the possibility that your Spot Instances will be interrupted |
|
when Amazon EC2 needs the capacity back. |
|
• Get access to a wider set of capabilities. For workloads that need a launch-only API, and where |
|
you prefer to manage the lifecycle of your instance rather than let EC2 Fleet manage it for |
|
you, use the EC2 Fleet of type instant instead of the RunInstances API. EC2 Fleet provides |
|
a wider set of capabilities than RunInstances, as demonstrated in the following examples. |
|
For all other workloads, you should use Amazon EC2 Auto Scaling because it supplies a more |
|
comprehensive feature set for a wide variety of workloads, like ELB-backed applications, |
|
containerized workloads, and queue processing jobs. |
|
You can use EC2 Fleet of type instant to launch instances into Capacity Blocks. For more |
|
information, see Tutorial: Configure your EC2 Fleet to launch instances into Capacity Blocks. |
|
AWS services like Amazon EC2 Auto Scaling and Amazon EMR use EC2 Fleet of type instant to |
|
launch EC2 instances. |
|
|
|
Request types |
|
|
|
1939 |
|
|
|
Amazon Elastic Compute Cloud |
|
|
|
User Guide |
|
|
|
Prerequisites for EC2 Fleet of type instant |
|
For the prerequisites for creating an EC2 Fleet, see EC2 Fleet prerequisites. |
|
How instant EC2 Fleet works |
|
When working with an EC2 Fleet of type instant, the sequence of events is as follows: |
|
1. Configure: Configure the CreateFleet request type as instant. For more information, see |
|
Create an EC2 Fleet. Note that after you make the API call, you can't modify it. |
|
2. Request: When you make the API call, Amazon EC2 places a synchronous one-time request for |
|
your desired capacity. |
|
3. Response: The API response lists the instances that launched, along with errors for those |
|
instances that could not be launched. |
|
4. Describe: You can describe your EC2 Fleet, list the instances associated with your EC2 Fleet, and |
|
view the history of your EC2 Fleet. |
|
5. Terminate instances: You can terminate the instances at any time. |
|
6. Delete fleet request: The fleet request can be deleted either manually or automatically: |
|
• Manual: You can delete the fleet request after your instances launch. |
|
Note that a deleted instant fleet with running instances is not supported. When you delete |
|
an instant fleet, Amazon EC2 automatically terminates all its instances. For fleets with |
|
more than 1000 instances, the deletion request might fail. If your fleet has more than 1000 |
|
instances, first terminate most of the instances manually, leaving 1000 or fewer. Then delete |
|
the fleet, and the remaining instances will be terminated automatically. |
|
• Automatic: Amazon EC2 deletes the fleet request some time after either: |
|
• All the instances are terminated. |
|
• The fleet fails to launch any instances. |
|
Examples |
|
The following examples show how to use EC2 Fleet of type instant for different use cases. For |
|
more information about using the EC2 CreateFleet API parameters, see CreateFleet in the Amazon |
|
EC2 API Reference. |
|
Examples |
|
• Example 1: Launch Spot Instances with the capacity-optimized allocation strategy |
|
Request types |
|
|
|
1940 |
|
|
|
Amazon Elastic Compute Cloud |
|
|
|
User Guide |
|
|
|
Networking in Amazon EC2 |
|
Amazon VPC enables you to launch AWS resources, such as Amazon EC2 instances, into a virtual |
|
network dedicated to your AWS account, known as a virtual private cloud (VPC). When you launch |
|
an instance, you can select a subnet from the VPC. The instance is configured with a primary |
|
network interface, which is a logical virtual network card. The instance receives a primary private IP |
|
address from the IPv4 address of the subnet, and it is assigned to the primary network interface. |
|
You can control whether the instance receives a public IP address from Amazon's pool of public |
|
IP addresses. The public IP address of an instance is associated with your instance only until it is |
|
stopped or terminated. If you require a persistent public IP address, you can allocate an Elastic IP |
|
address for your AWS account and associate it with an instance or a network interface. An Elastic IP |
|
address remains associated with your AWS account until you release it, and you can move it from |
|
one instance to another as needed. You can bring your own IP address range to your AWS account, |
|
where it appears as an address pool, and then allocate Elastic IP addresses from your address pool. |
|
To increase network performance and reduce latency, you can launch instances in a placement |
|
group. You can get significantly higher packet per second (PPS) performance using enhanced |
|
networking. You can accelerate high performance computing and machine learning applications |
|
using an Elastic Fabric Adapter (EFA), which is a network device that you can attach to a supported |
|
instance type. |
|
Features |
|
• Regions and Zones |
|
• Amazon EC2 instance IP addressing |
|
• EC2 instance hostnames and domains |
|
• Bring your own IP addresses (BYOIP) to Amazon EC2 |
|
• Elastic IP addresses |
|
• Elastic network interfaces |
|
• Amazon EC2 instance network bandwidth |
|
• Enhanced networking on Amazon EC2 instances |
|
• Elastic Fabric Adapter for AI/ML and HPC workloads on Amazon EC2 |
|
• Amazon EC2 instance topology |
|
• Placement groups for your Amazon EC2 instances |
|
2176 |
|
|
|
Amazon Elastic Compute Cloud |
|
|
|
User Guide |
|
|
|
• Network maximum transmission unit (MTU) for your EC2 instance |
|
• Virtual private clouds for your EC2 instances |
|
|
|
Regions and Zones |
|
Amazon EC2 is hosted in multiple locations world-wide. These locations are composed of AWS |
|
Regions, Availability Zones, Local Zones, AWS Outposts, and Wavelength Zones. |
|
• Regions are separate geographic areas. |
|
• Availability Zones are multiple, isolated locations within each Region. |
|
• Local Zones provide you with the ability to place resources, such as compute and storage, in |
|
multiple locations closer to your end users. |
|
• Wavelength Zones provide you with the ability to build applications that deliver ultra-low |
|
latencies to 5G devices and end users. Wavelength deploys standard AWS compute and storage |
|
services to the edge of telecommunication carriers' 5G networks. |
|
• AWS Outposts brings native AWS services, infrastructure, and operating models to virtually any |
|
data center, colocation space, or on-premises facility. |
|
AWS operates state-of-the-art, highly available data centers. Although rare, failures can occur that |
|
affect the availability of instances that are in the same location. If you host all of your instances in a |
|
single location that is affected by a failure, none of your instances would be available. |
|
For more information, see AWS Global Infrastructure. |
|
Contents |
|
• Regions |
|
• Availability Zones |
|
• Local Zones |
|
• Wavelength Zones |
|
• AWS Outposts |
|
|
|
Regions |
|
Each Region is designed to be isolated from the other Regions. This achieves the greatest possible |
|
fault tolerance and stability. |
|
Regions and Zones |
|
|
|
2177 |
|
|
|
Amazon Elastic Compute Cloud |
|
|
|
User Guide |
|
|
|
When you launch an instance, select a Region that puts your instances close to specific customers, |
|
or that meets the legal or other requirements that you have. You can launch instances in multiple |
|
Regions. |
|
When you view your resources, you see only the resources that are tied to the Region that you |
|
specified. This is because Regions are isolated from each other, and we don't automatically |
|
replicate resources across Regions. |
|
|
|
Available Regions |
|
For the list of available Regions, see AWS Regions. |
|
|
|
Regional endpoints for Amazon EC2 |
|
When you work with an instance using the command line interface or API actions, you must specify |
|
its Regional endpoint. For more information about the Regions and endpoints for Amazon EC2, see |
|
Amazon EC2 service endpoints in the Amazon EC2 Developer Guide. |
|
For more information, see AWS Regions in the AWS Regions and Availability Zones User Guide. |
|
|
|
Availability Zones |
|
Each Region has multiple, isolated locations known as Availability Zones. The code for an |
|
Availability Zone is its Region code followed by a letter identifier. For example, us-east-1a. |
|
By launching EC2 instances in multiple Availability Zones, you can protect your applications from |
|
the failure of a single location in the Region. |
|
The following diagram illustrates multiple Availability Zones in an AWS Region. Availability Zone A |
|
and Availability Zone B each have one subnet, and each subnet has EC2 instances. Availability Zone |
|
C has no subnets, therefore you can't launch instances into this Availability Zone. |
|
|
|
Availability Zones |
|
|
|
2178 |
|
|
|
Amazon Elastic Compute Cloud |
|
|
|
User Guide |
|
|
|
For more information, see Virtual private clouds for your EC2 instances. |
|
|
|
Availability Zones by Region |
|
For the list of Availability Zones by Region, see AWS Availability Zones. |
|
|
|
Instances in Availability Zones |
|
When you launch an instance, you select a Region and a virtual private cloud (VPC). Then, you |
|
can either select a subnet from one of the Availability Zones or let us choose a subnet for you. |
|
When you launch your initial instances, we recommend that you let us select an Availability Zone |
|
for you based on system health and available capacity. If you launch additional instances, specify |
|
an Availability Zone only if your new instances must be close to, or separated from, your existing |
|
instances. |
|
If you distribute instances across multiple Availability Zones and an instance fails, you can design |
|
your application so that an instance in another Availability Zone handles requests instead. |
|
For more information, see AWS Availability Zones in the AWS Regions and Availability Zones User |
|
Guide. |
|
Availability Zones |
|
|
|
2179 |
|
|
|
|