Launch an instance - Amazon Elastic Compute Cloud

Launch an instance

You can launch an instance in UEFI or Legacy BIOS boot mode.

Limitations

UEFI boot is not supported in Local Zones, Wavelength Zones, or with AWS Outposts.

Considerations

Consider the following when launching an instance:

  • The boot mode of the instance is determined by the configuration of the AMI, the operating system contained in it, and the instance type, illustrated by the following image:

    
						When you launch an instance, the boot mode of the AMI plus the boot mode configuration of the operating system within the AMI + 
							the boot mode of the instance type determine the boot mode that the instance launches on.

    The following table shows that the boot mode of an instance (indicated by the Resulting instance boot mode column) is determined by a combination of the boot mode parameter of the AMI (column 1), the boot mode configuration of the operating system contained in the AMI (column 2), and the boot mode support of the instance type (column 3).

    AMI boot mode parameter Operating system boot mode configuration Instance type boot mode support Resulting instance boot mode
    UEFI UEFI UEFI UEFI
    Legacy BIOS Legacy BIOS Legacy BIOS Legacy BIOS
    UEFI Preferred UEFI UEFI UEFI
    UEFI Preferred UEFI UEFI and Legacy BIOS UEFI
    UEFI Preferred Legacy BIOS Legacy BIOS Legacy BIOS
    UEFI Preferred Legacy BIOS UEFI and Legacy BIOS Legacy BIOS
    No boot mode specified - ARM UEFI UEFI UEFI
    No boot mode specified - x86 Legacy BIOS UEFI and Legacy BIOS Legacy BIOS
  • Default boot modes:

    • Graviton instance types: UEFI

    • Intel and AMD instance types: Legacy BIOS

  • Intel and AMD instance types that support UEFI, in addition to Legacy BIOS:

    • All instances built on the AWS Nitro System, except: bare metal instances, DL1, G4ad, P4, u-3tb1, u-6tb1, u-9tb1, u-12tb1, u-18tb1, u-24tb1, and VT1

 

To see the available instance types for Windows that support UEFI in a specific Region

The available instance types vary by AWS Region. To see the available instance types that support UEFI in a Region, use the describe-instance-types command with the --region parameter. If you omit the --region parameter, your default Region is used in the request. Include the --filters parameter to scope the results to the instance types that support UEFI and the --query parameter to scope the output to the value of InstanceType.

AWS CLI
C:\> aws ec2 describe-instance-types --filters Name=supported-boot-mode,Values=uefi Name=processor-info.supported-architecture,Values=x86_64 --query "InstanceTypes[*].[InstanceType]" --output text | sort c5.12xlarge c5.18xlarge c5.24xlarge c5.2xlarge c5.4xlarge c5.9xlarge c5.large ...
PowerShell
PS C:\> Get-EC2InstanceType | ` Where-Object { $_.SupportedBootModes -Contains "uefi" -and ` $_.ProcessorInfo.SupportedArchitectures -eq "x86_64" } | ` Sort-Object InstanceType | ` Format-Table InstanceType -GroupBy CurrentGeneration CurrentGeneration: True InstanceType ------------ c5.12xlarge c5.18xlarge c5.24xlarge c5.2xlarge c5.4xlarge ...

 

To see the available instance types for Windows that support UEFI Secure Boot and persist non-volatile variables in a specific Region

Currently, bare metal instances do not support UEFI Secure Boot and non-volatile variables. Use the describe-instance-types command as described in the preceding example, but filter out the bare metal instances by including the Name=bare-metal,Values=false filter. For information about UEFI Secure Boot, see UEFI Secure Boot.

AWS CLI
C:\> aws ec2 describe-instance-types --filters Name=supported-boot-mode,Values=uefi Name=bare-metal,Values=false Name=processor-info.supported-architecture,Values=x86_64 --query "InstanceTypes[*].[InstanceType]" --output text | sort c5.12xlarge c5.18xlarge c5.24xlarge c5.2xlarge ...
PowerShell
PS C:\> Get-EC2InstanceType | ` Where-Object { ` $_.SupportedBootModes -Contains "uefi" -and ` $_.BareMetal -eq $False -and ` $_.ProcessorInfo.SupportedArchitectures -eq "x86_64" } | ` Sort-Object InstanceType | ` Format-Table InstanceType, SupportedBootModes, BareMetal, @{Name="SupportedArchitectures"; Expression={$_.ProcessorInfo.SupportedArchitectures}} InstanceType SupportedBootModes BareMetal SupportedArchitectures ------------ ------------------ --------- ---------------------- c5.12xlarge {legacy-bios, uefi} False x86_64 c5.18xlarge {legacy-bios, uefi} False x86_64 c5.24xlarge {legacy-bios, uefi} False x86_64 c5.2xlarge {legacy-bios, uefi} False x86_64 c5.4xlarge {legacy-bios, uefi} False x86_64 c5.9xlarge {legacy-bios, uefi} False x86_64

Requirements for launching an instance on UEFI

To launch an instance in UEFI boot mode, you must select an instance type that supports UEFI, and configure the AMI and the operating system for UEFI, as follows:

Instance type

When launching an instance, you must select an instance type that supports UEFI. For more information, see Determine the supported boot modes of an instance type.

AMI

When launching an instance, you must select an AMI that is configured for UEFI. The AMI must be configured as follows:

The following Windows AMIs support UEFI:

  • TPM-Windows_Server-2022-English-Full-Base

  • TPM-Windows_Server-2022-English-Core-Base

  • TPM-Windows_Server-2019-English-Full-Base

  • TPM-Windows_Server-2019-English-Core-Base

  • TPM-Windows_Server-2016-English-Full-Base

  • TPM-Windows_Server-2016-English-Core-Base

For information about Linux AMIs, see Requirements for launching an instance on UEFI in the Amazon EC2 User Guide for Linux Instances.