Find Ubuntu images on AWS¶
On AWS, cloud images are referred to as Amazon Machine Images (AMIs). Canonical produces a wide variety of images to support numerous features found on AWS:
Generally, all images use Elastic Block Storage (EBS) and hardware virtual machine (HVM) virtualization types. Older releases may also support paravirtual (PV) and instance-store, but users benefit from the newer storage and virtualization technologies.
Standard and minimal server images are available for both AMD64 and ARM64.
Daily (untested) and release versions of the images are published regularly.
All images mentioned below are also available in AWS Outposts.
Finding images for EC2 and EKS¶
To find images on AWS, you can use the SSM Parameter Store, the describe-images API or the AWS Web Console. All three methods are explained below.
The SSM Parameter Store is a hierarchical data service provided by AWS for configuration management. It can be used to store passwords, license codes, configuration strings, Amazon Machine Image (AMI) IDs, and more. Canonical provides a set of publicly available parameters in the parameter store under the hierarchy /aws/service/canonical
. One useful set of parameters available under that hierarchy is the set of latest AMI IDs for Ubuntu images. These IDs can be found programmatically using the AWS CLI.
For EC2, find the latest AMI ID using:
aws ssm get-parameters --names \
/aws/service/canonical/ubuntu/server/24.04/stable/current/amd64/hvm/ebs-gp3/ami-id
The format for the parameter is:
ubuntu/$PRODUCT/$RELEASE/stable/current/$ARCH/$VIRT_TYPE/$VOL_TYPE/ami-id
PRODUCT: server, server-minimal, pro-server or pro-minimal
RELEASE: noble, 24.04, jammy, 22.04, focal, 20.04, bionic, 18.04, xenial, or 16.04
ARCH: amd64 or arm64
VIRT_TYPE: hvm or pv (only for legacy releases ≤ 16.04)
VOL_TYPE: ebs-gp3 (for >=23.10), ebs-gp2 (for <=23.04), ebs-io1, ebs-standard, or instance-store
In place of current, the serial number given to an image can also be used (e.g., 20250804):
ubuntu/$PRODUCT/$RELEASE/stable/$SERIAL/$ARCH/$VIRT_TYPE/$VOL_TYPE/ami-id
For EKS, the latest EKS AMI ID for each supported EKS version can be found in the SSM parameter store using:
aws ssm get-parameters --names /aws/service/canonical/ubuntu/eks/24.04/1.31/stable/current/amd64/hvm/ebs-gp3/ami-id
The format for the parameter is:
ubuntu/$EKS_PRODUCT/$RELEASE/$K8S_VERSION/stable/current/$ARCH/hvm/$VOL_TYPE/ami-id
EKS_PRODUCT: eks or eks-pro
RELEASE: noble, 24.04 (for EKS 1.31 or greater, or EKS Pro); jammy, 22.04 (for EKS 1.29 or greater, or EKS Pro); focal, 20.04 (for EKS <= 1.29)
K8S_VERSION: one of the supported EKS versions (e.g. 1.31)
ARCH: amd64 or arm64
VOL_TYPE: ebs-gp2 (for <= 22.04) and ebs-gp3 (for >= 24.04)
In the generated output, the “Value” field will have the required AMI ID. It can be used to instantiate the corresponding image using the ec2 run-instances
command as explained here.
If you don’t want to save the AMI ID before instantiating the image, you can use the resolve:ssm
option and directly pass the required parameter to it in your ec2 run-instances
call:
aws ec2 run-instances \
--image-id resolve:ssm:/aws/service/canonical/ubuntu/server/24.04/stable/current/amd64/hvm/ebs-gp3/ami-id \
--key-name TestKeyPair \
--instance-type t3.medium
The EC2 describe-images
API is the native AWS discovery mechanism for public AMIs. Instead of looking up a stored parameter, you query the EC2 catalog directly. By filtering on Canonical’s owner ID and a name pattern, you can programmatically locate the latest Ubuntu AMI with a single AWS CLI call.
For EC2, find the latest AMI ID using:
aws ec2 describe-images \
--owners 099720109477 \
--filters \
"Name=name,Values=ubuntu/images/hvm-ssd-gp3/ubuntu-noble-24.04-amd64-server-*" \
--query "Images | sort_by(@, &CreationDate) | [-1].ImageId" \
--output text
In the filter expression, Name=name
specifies that the filter should apply to the AMI’s
Name attribute (the human-readable AMI name string) and the Values=...
part provides
a pattern to match against this field.
The filter pattern is:
ubuntu/images/$VIRT_TYPE-$VOL_TYPE/ubuntu-$RELEASE-$ARCH-$PRODUCT-*
VIRT_TYPE: hvm or pv (only for legacy releases ≤ 16.04)
VOL_TYPE: ssd-gp3 (for >=23.10), ssd (for <=23.04), or instance-store
RELEASE: noble-24.04, jammy-22.04, focal-20.04, bionic-18.04, or xenial-16.04
ARCH: amd64 or arm64
PRODUCT: server, server-minimal, pro-server or pro-minimal
The query sorts by CreationDate
and selects the most recent image. In place of a wildcard(*), the serial number given to an image can also be used (e.g., 20250804):
ubuntu/images/$VIRT_TYPE-$VOL_TYPE/ubuntu-$RELEASE-$ARCH-$PRODUCT-$SERIAL
For EKS, find the latest EKS AMI ID using:
aws ec2 describe-images \
--owners 099720109477 \
--filters \
"Name=name,Values=ubuntu-eks/k8s_1.31/images/hvm-ssd-gp3/ubuntu-noble-24.04-amd64-server-*" \
--query "Images | sort_by(@, &CreationDate) | [-1].ImageId" \
--output text
In the filter expression, Name=name
specifies that the filter should apply to the AMI’s
Name attribute (the human-readable AMI name string) and the Values=...
part provides
a pattern to match against this field.
The filter pattern is:
ubuntu-$EKS_PRODUCT/k8s_$K8S_VERSION/images/hvm-$VOL_TYPE/ubuntu-$RELEASE-$ARCH-server-*
EKS_PRODUCT: eks or eks-pro
K8S_VERSION: one of the supported EKS versions (e.g. 1.31)
VOL_TYPE: ssd (for <= 22.04) and ssd-gp3 (for >= 24.04)
RELEASE: noble-24.04 (for EKS 1.31 or greater, or EKS Pro); jammy-22.04 (for EKS 1.29 or greater, or EKS Pro); focal-20.04 (for EKS <= 1.29)
ARCH: amd64 or arm64
The query sorts by CreationDate
and selects the most recent image. In place of a wildcard(*), the serial number given to an image can also be used (e.g., 20250804):
ubuntu-eks/k8s_$K8S_VERSION/images/hvm-$VOL_TYPE/ubuntu-$RELEASE-$ARCH-server-$SERIAL
The generated output will be the required AMI ID if found. It can be used to instantiate the corresponding image using the ec2 run-instances
command as explained here.
If you don’t want to save the AMI ID before instantiating the image, you can embed the
describe-images
query directly in your ec2 run-instances
call:
aws ec2 run-instances \
--image-id "$(aws ec2 describe-images \
--owners 099720109477 \
--filters \
'Name=name,Values=ubuntu/images/hvm-ssd-gp3/ubuntu-noble-24.04-amd64-server-*' \
--query 'Images | sort_by(@, &CreationDate) | [-1].ImageId' \
--output text)" \
--instance-type t3.medium \
--key-name TestKeyPair
The AWS Management Console offers a graphical workflow to locate official Ubuntu AMIs.
Sign in to the EC2 console.
In the navigation pane on the left, choose Images > AMIs.
From the drop-down next to the search bar, choose Public images.
Apply the following two search filters:
Restrict the results to Ubuntu images that Canonical publishes:
Owner = 099720109477
Restrict the results to images with a specific pattern in their AMI name (described later):
AMI name: ubuntu/images/hvm-ssd-gp3/ubuntu-noble-24.04-amd64-server
Select the most recent image based on Creation date.
Choose Launch instance from image (or copy the AMI ID for CLI use).
AMI name filter syntax
ubuntu/images/$VIRT_TYPE-$VOL_TYPE/ubuntu-$RELEASE-$ARCH-$PRODUCT
VIRT_TYPE: hvm or pv (only for legacy releases ≤ 16.04)
VOL_TYPE: ssd-gp3 (for >=23.10), ssd (for <=23.04), or instance-store
RELEASE: noble-24.04, jammy-22.04, focal-20.04, bionic-18.04, or xenial-16.04
ARCH: amd64 or arm64
PRODUCT: server, server-minimal, pro-server or pro-minimal
Sign in to the EC2 console.
In the left navigation pane, choose Images > AMIs.
From the drop‑down next to the search bar, choose Public images.
Apply the following two search filters:
Restrict the results to Ubuntu images that Canonical publishes:
Owner = 099720109477
Restrict the results to images with a specific pattern in their AMI name (described later):
AMI name: ubuntu-eks/k8s_1.33/images/hvm-ssd-gp3/ubuntu-noble-24.04-amd64
Select the most recent image based on Creation date
Choose Launch instance from image (or copy the AMI ID for CLI use).
AMI name filter syntax
ubuntu-$EKS_PRODUCT/k8s_$K8S_VERSION/images/hvm-$VOL_TYPE/ubuntu-$RELEASE-$ARCH-server
EKS_PRODUCT: eks or eks-pro
K8S_VERSION: one of the supported EKS versions (e.g. 1.31)
VOL_TYPE: ssd (for <= 22.04) and ssd-gp3 (for >= 24.04)
RELEASE: noble-24.04 (for EKS 1.31 or greater, or EKS Pro); jammy-22.04 (for EKS 1.29 or greater, or EKS Pro); focal-20.04 (for EKS <= 1.29)
ARCH: amd64 or arm64
Ownership verification¶
By checking the OwnerId field of an image, you can verify that an AMI was published by Canonical. To do this, use the describe-images command against an AMI ID and check the returned OwnerId field:
aws ec2 describe-images --image-ids $AMI_ID
The expected value of OwnerId for Canonical is one of the following:
099720109477 (in the default partition)
513442679011 (in the GovCloud partition)
837727238323 (in the China partition)
Note that listings on the AWS Marketplace will always show the OwnerId as Amazon (e.g. 679593333241). In these cases, users can verify the Amazon ID and look for aws-marketplace/ubuntu in the ImageLocation field.
You can also add Canonical’s OwnerId to allow list:
aws ec2 modify-allowed-images --image-owner $OWNER_ID
By running the command above, you only allow Canonical Ubuntu images and ensure that instances can only be launched with verified, official images.
See the AWS announcement for more details on the Allowed AMIs feature.
Images in the AWS Marketplace¶
AWS Marketplace is a digital catalog with thousands of software listings from independent software vendors that make it easy to find, test, buy, and deploy software that runs on AWS. Canonical maintains image listings for recent Ubuntu releases and special flavors (e.g. Anbox, Pro, Pro FIPS, EKS) on this marketplace.
Customers can also use the AWS Marketplace to launch and subscribe to official Ubuntu Pro images that allow users to pay for additional support.
All the above mentioned Marketplace images can also be found in the SSM parameter store:
aws ssm get-parameter --name /aws/service/marketplace/$IDENTIFIER/latest
IDENTIFIER: use one of the following identifiers (starting with prod-)
AWS Marketplace identifiers
Name |
Architecture |
Identifier |
GovCloud |
---|---|---|---|
Ubuntu Pro Minimal 22.04 LTS with CIS hardening |
AMD64 |
|
✓ |
Ubuntu Pro Minimal 22.04 LTS with CIS hardening |
ARM64 |
|
✓ |
Minimal Ubuntu Pro 20.04 LTS |
AMD64 |
|
✓ |
Minimal Ubuntu Pro 20.04 LTS |
ARM64 |
|
✓ |
Ubuntu 22.04 LTS |
AMD64 |
|
✓ |
Ubuntu 22.04 LTS |
ARM64 |
|
✓ |
Minimal Ubuntu 22.04 LTS |
AMD64 |
|
✓ |
Minimal Ubuntu 22.04 LTS |
ARM64 |
|
✓ |
Minimal Ubuntu Pro 22.04 LTS |
AMD64 |
|
✓ |
Minimal Ubuntu Pro 22.04 LTS |
ARM64 |
|
✓ |
Ubuntu 24.04 LTS |
AMD64 |
|
✓ |
Ubuntu 24.04 LTS |
ARM64 |
|
✓ |
Minimal Ubuntu 24.04 LTS |
AMD64 |
|
✓ |
Minimal Ubuntu 24.04 LTS |
ARM64 |
|
✓ |
Ubuntu 25.04 |
AMD64 |
|
✓ |
Ubuntu 25.04 |
ARM64 |
|
✓ |
Minimal Ubuntu 25.04 |
AMD64 |
|
✓ |
Minimal Ubuntu 25.04 |
ARM64 |
|
✓ |
Ubuntu Pro FIPS 16.04 LTS |
AMD64 |
|
✓ |
Ubuntu Pro FIPS 18.04 LTS |
AMD64 |
|
✓ |
Ubuntu Pro FIPS 20.04 LTS |
AMD64 |
|
✓ |
Ubuntu Pro FIPS 20.04 LTS (FIPS with updates) |
AMD64 |
|
✓ |
Ubuntu Pro FIPS 22.04 LTS (FIPS with updates) |
AMD64 |
|
✓ |
Ubuntu Pro FIPS 22.04 LTS (FIPS with updates) |
ARM64 |
|
✓ |
Ubuntu Pro 22.04 LTS with Real-time Kernel |
ARM64 |
|
✓ |
Ubuntu 22.04 LTS for EKS 1.29 |
AMD64 |
|
✓ |
Ubuntu 22.04 LTS for EKS 1.29 |
ARM64 |
|
✓ |
Ubuntu 22.04 LTS for EKS 1.30 |
AMD64 |
|
✓ |
Ubuntu 22.04 LTS for EKS 1.30 |
ARM64 |
|
✓ |
Ubuntu 22.04 LTS for EKS 1.31 |
AMD64 |
|
✓ |
Ubuntu 22.04 LTS for EKS 1.31 |
ARM64 |
|
✓ |
Ubuntu 22.04 LTS for EKS 1.32 |
AMD64 |
|
✓ |
Ubuntu 22.04 LTS for EKS 1.32 |
ARM64 |
|
✓ |
Ubuntu 24.04 LTS for EKS 1.31 |
AMD64 |
|
✓ |
Ubuntu 24.04 LTS for EKS 1.31 |
ARM64 |
|
✓ |
Ubuntu 24.04 LTS for EKS 1.32 |
AMD64 |
|
✓ |
Ubuntu 24.04 LTS for EKS 1.32 |
ARM64 |
|
✓ |
Ubuntu 24.04 LTS for EKS 1.33 |
AMD64 |
|
✓ |
Ubuntu 24.04 LTS for EKS 1.33 |
ARM64 |
|
✓ |
Ubuntu Pro 20.04 LTS for EKS 1.28 |
AMD64 |
|
✓ |
Ubuntu Pro 20.04 LTS for EKS 1.28 |
ARM64 |
|
✓ |
Ubuntu Pro 20.04 LTS for EKS 1.29 |
AMD64 |
|
✓ |
Ubuntu Pro 20.04 LTS for EKS 1.29 |
ARM64 |
|
✓ |
Ubuntu Pro 22.04 LTS for EKS 1.29 |
AMD64 |
|
✓ |
Ubuntu Pro 22.04 LTS for EKS 1.29 |
ARM64 |
|
✓ |
Ubuntu Pro 22.04 LTS for EKS 1.30 |
AMD64 |
|
✓ |
Ubuntu Pro 22.04 LTS for EKS 1.30 |
ARM64 |
|
✓ |
Ubuntu Pro 22.04 LTS for EKS 1.31 |
AMD64 |
|
✓ |
Ubuntu Pro 22.04 LTS for EKS 1.31 |
ARM64 |
|
✓ |
Ubuntu Pro 22.04 LTS for EKS 1.32 |
AMD64 |
|
✓ |
Ubuntu Pro 22.04 LTS for EKS 1.32 |
ARM64 |
|
✓ |
Ubuntu Pro 24.04 LTS for EKS 1.31 |
AMD64 |
|
✓ |
Ubuntu Pro 24.04 LTS for EKS 1.31 |
ARM64 |
|
✓ |
Ubuntu Pro 24.04 LTS for EKS 1.32 |
AMD64 |
|
✓ |
Ubuntu Pro 24.04 LTS for EKS 1.32 |
ARM64 |
|
✓ |
Ubuntu Pro 24.04 LTS for EKS 1.33 |
AMD64 |
|
✓ |
Ubuntu Pro 24.04 LTS for EKS 1.33 |
ARM64 |
|
✓ |