Launch an instance - Amazon Elastic Compute Cloud
Services or capabilities described in Amazon Web Services documentation might vary by Region. To see the differences applicable to the China Regions, see Getting Started with Amazon Web Services in China (PDF).

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 Amazon 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 Amazon 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 Linux that support UEFI in a specific Region

The available instance types vary by Amazon Web Services 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.

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

 

To see the available instance types for Linux 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.

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

Amazon only provides Linux AMIs that are configured to support UEFI for Graviton-based instance types. To use Linux on other UEFI instance types, you must configure the AMI.

For the supported Windows AMIs, see Requirements for launching an instance on UEFI in the Amazon EC2 User Guide for Windows Instances.