查找 Linux AMI - Amazon Elastic Compute Cloud
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

查找 Linux AMI

启动实例之前,必须选择要从中启动实例的 AMI,然后才能启动实例。选择 AMI 时,对于要启动的实例,可能需要考虑以下要求:

  • 区域 - AMI ID 在每个 Amazon 区域中都是唯一的。

  • 操作系统

  • 架构:32 位 (i386)、64 位 (x86_64) 或 64 位 ARM (arm64)

  • 根设备类型:Amazon EBS 或实例存储

  • 提供商 (例如,Amazon Web Services)

  • 其他软件(例如,SQL Server)

如果您要查找 Windows AMI,请参阅 Amazon EC2 用户指南(适用于 Windows 实例)中的查找 Windows AMI

如果您想查找 AL2023 AMI,请参阅《AL2023 User Guide》中的 Get started with AL2023

如果您要查找 Ubuntu AMI,请参阅他们的 EC2 AMI 定位器

如果您要查找 RedHat AMI,请参阅 RHEL 知识库文章

使用 Amazon EC2 控制台查找 Linux AMI

您可以使用 Amazon EC2 控制台查找 Linux AMI。您可以在使用启动实例向导启动实例时从 AMI 列表中进行选择,也可以使用 Images(映像)页面在所有可用的 AMI 中进行搜索。AMI ID 在每个 Amazon 区域中都是唯一的。

使用启动实例向导查找 Linux AMI
  1. 通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

  2. 从导航栏,选择您在其中启动实例的区域。您可以选择向您提供的任何区域,无需理会您身处的位置。

  3. 从控制台控制面板中,选择启动实例

  4. (新控制台)在 Application and OS Images (Amazon Machine Image)(应用程序和操作系统映像 (Amazon Machine Image))下,选择 Quick Start(快速启动),选择适用于实例的操作系统 (OS),然后在 Amazon Machine Image (AMI) 中,从列表中选择一个常用的 AMI。如果您没有看到想要使用的 AMI,请选择 Browser more AMIs(浏览更多 AMI)以浏览完整的 AMI 目录。有关更多信息,请参阅应用程序和操作系统镜像 (Amazon Machine Image)

    (旧控制台)在 Quick Start(快速启动)选项卡上,从列表中选择一个常用的 AMI。如果您没有看到要使用的 AMI,请选择 My AMIs(我的 AMI)、Amazon Web Services MarketplaceCommunity AMIs(社群 AMI)选项卡来查找其他 AMI。有关更多信息,请参阅步骤 1:选择 Amazon Machine Image (AMI)

使用 AMI 页面查找 Linux AMI
  1. 通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

  2. 从导航栏,选择您在其中启动实例的区域。您可以选择向您提供的任何区域,无需理会您身处的位置。

  3. 在导航窗格中,选择 AMIs

  4. (可选)使用筛选条件和搜索选项,将显示的 AMI 列表范围限定为仅能查看符合您的标准的 AMI。例如,要列出 Amazon 提供的所有 Linux AMI,请选择 Public images(公有映像)。然后使用搜索选项进一步缩小显示的 AMI 列表的范围。

    选择 Search(搜索)栏,然后从菜单中选择 Owner alias(拥有者别名),然后选择 = 运算符,最后选择值 amazon。再次选择 Search(搜索)栏以选择 Platform(平台),然后选择 = 运算符,然后从提供的列表中选择操作系统。

  5. (可选)选择首选项图标,以选择要显示的映像属性,例如根设备类型。或者,可以从列表中选择 AMI,然后在 Details(详细信息)选项卡中查看其属性。

  6. 选择 AMI 之前,请确认它是由实例存储支持还是由 Amazon EBS 支持并了解此差异的影响,这十分重要。有关更多信息,请参阅根设备存储

  7. 要从此 AMI 启动一个实例,请选择此实例,然后选择从映像启动实例。有关使用控制台启动实例的更多信息,请参阅 使用新启动实例向导启动实例。如果您没有准备好立即启动实例,请记下 AMI ID 以供将来使用。

有关查找 AL2023 AMI 的更多信息,请参阅《AL2023 User Guide》中的 Get started with AL2023

使用 Amazon CLI 查找 AMI

您可以使用适用于 Amazon EC2 的 Amazon CLI 命令,以仅列出符合您要求的 Linux AMI。找到符合您要求的 AMI 之后,记录其 ID,以便用它来启动实例。有关更多信息,请参阅 Amazon Command Line Interface 用户指南中的启动实例

describe-images 命令支持筛选参数。例如,使用 --owners 参数显示由 Amazon 拥有的公用 AMI。

aws ec2 describe-images --owners self amazon

您可以将以下筛选条件添加到上一个命令以便仅显示 Amazon EBS 支持的 AMI。

--filters "Name=root-device-type,Values=ebs"
重要

在 describe-images 命令中省略 --owners 标记将返回您拥有启动权限的所有映像,无论所有权如何。

使用 Systems Manager 查找最新的 Amazon Linux AMI

Amazon EC2 为 Amazon 维护的公用 AMI 提供了 Amazon Systems Manager 公用参数,您可以在启动实例时使用这些参数。例如,EC2 提供的参数 /aws/service/ami-amazon-linux-latest/amzn2-ami-hvm-x86_64-gp2 在所有区域中均可用,并且始终指向给定区域中 Amazon Linux 2 AMI 的最新版本。

要使用 Amazon Systems Manager 查找最新的 AL2023 AMI,请参阅开始使用 AL2023

在以下路径中提供 Amazon EC2 AMI 公有参数:

/aws/service/ami-amazon-linux-latest

您可以通过运行以下 Amazon CLI 命令查看当前 Amazon 区域中所有 Linux AMI 的列表。

aws ssm get-parameters-by-path --path /aws/service/ami-amazon-linux-latest --query "Parameters[].Name"
使用公有参数启动实例

以下示例通过 EC2 提供的公有参数,使用最新 Amazon Linux 2 AMI 启动 m5.xlarge 实例。

要在命令中指定参数,请使用以下语法:resolve:ssm:public-parameter,其中 resolve:ssm 是标准前缀,public-parameter 是公有参数的路径和名称。

在本示例中,不包括 --count--security-group 参数。对于 --count,默认为 1。如有默认 VPC 和默认安全组,则将使用它们。

aws ec2 run-instances --image-id resolve:ssm:/aws/service/ami-amazon-linux-latest/amzn2-ami-hvm-x86_64-gp2 --instance-type m5.xlarge --key-name MyKeyPair

有关详细信息,请参阅《Amazon Systems Manager 用户指南》中的使用公有参数,以及使用 Amazon Systems Manager 参数存储查询最新的 Amazon Linux AMI ID

使用 Systems Manager 参数查找 AMI

在控制台中使用 EC2 启动实例向导启动实例时,您可以从列表中选择 AMI,也可以选择指向 AMI ID 的 Amazon Systems Manager 参数。如果您使用自动化代码启动实例,则可以指定 Systems Manager 参数而不是 AMI ID。

Systems Manager 参数是客户定义的键/值对,您可以在 Systems Manager Parameter Store 中创建该键/值对。Parameter Store 提供了一个中央存储来对应用程序配置值进行外部化。有关更多信息,请参阅 Amazon Systems Manager 用户指南中的 Amazon Systems Manager Parameter Store

创建指向 AMI ID 的参数时,请确保将数据类型指定为 aws:ec2:image。指定此数据类型可确保在创建或修改参数时,将参数值作为 AMI ID 进行验证。有关更多信息,请参阅 Amazon Systems Manager 用户指南对 Amazon Machine Image ID 的原生参数支持

用例

当您使用 Systems Manager 参数指向 AMI ID 时,您的用户在启动实例时可以更轻松地选择正确的 AMI。Systems Manager 参数还可以简化自动化代码的维护。

用户使用更简单

如果您需要使用特定 AMI 启动实例并且该 AMI 定期更新,我们建议您要求用户选择 Systems Manager 参数来查找 AMI。要求用户选择 Systems Manager 参数可确保使用最新的 AMI 启动实例。

例如,您的组织中可能会每个月创建一个新版本的 AMI,其中具有最新操作系统和应用程序修补程序。同时,您要求用户使用最新版本的 AMI 启动实例。为确保用户使用最新版本,您可以创建指向正确 AMI ID 的 Systems Manager 参数(例如 golden-ami)。每次创建新版本的 AMI 时,您需要更新参数中的 AMI ID 值,以使其始终指向最新 AMI。您的用户不需要了解对 AMI 的定期更新,因为他们每次都会继续选择相同的 Systems Manager 参数。为您的 AMI 使用 Systems Manager 参数可让他们更轻松地选择正确的 AMI 来启动实例。

简化自动化代码维护

如果您使用自动化代码启动实例,则可以指定 Systems Manager 参数而不是 AMI ID。如果创建了新版本的 AMI,您可以更改参数中的 AMI ID 值,以使其指向最新 AMI。每次创建新版本的 AMI 时,都不需要修改引用该参数的自动化代码。这样做简化了自动化的维护,有助于降低部署成本。

注意

当您更改 Systems Manager 参数指向的 AMI ID 时,正在运行的实例不受影响。

权限

如果在启动实例向导中使用指向 AMI ID 的 Systems Manager 参数,则必须将 ssm:DescribeParametersssm:GetParameters 添加到 IAM policy 中。ssm:DescribeParameters 会授予用户查看和选择 Systems Manager 参数的权限。ssm:GetParameters 则会授予 IAM 用户检索 Systems Manager 参数值的权限。您还可以限制对特定 Systems Manager 参数的访问权限。有关更多信息,请参阅使用 EC2 启动实例向导

限制

AMI 和 Systems Manager 参数特定于区域。要跨区域使用相同的 Systems Manager 参数名称,请在各个区域中创建具有相同名称的 Systems Manager 参数(例如,golden-ami)。在每个区域中,将 Systems Manager 参数指向该区域的 AMI。

使用 Systems Manager 参数启动实例

您可以使用控制台或 Amazon CLI 启动实例。您可以指定指向 AMI ID 的 Amazon Systems Manager 参数,而不是指定 AMI ID。

New console
使用 Systems Manager 参数查找 Linux AMI(控制台)
  1. 通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

  2. 从导航栏,选择您在其中启动实例的区域。您可以选择向您提供的任何区域,无需理会您身处的位置。

  3. 从控制台控制面板中,选择启动实例

  4. Application and OS Images (Amazon Machine Image) [应用程序和操作系统镜像(Amazon 机器映像)] 下,选择 Browse more AMIs(浏览其他 AMI)。

  5. 选择搜索栏右侧的箭头按钮,然后选择 Search by Systems Manager parameter(按 Systems Manager 参数搜索)。

  6. 对于 Systems Manager 参数 (Systems Manager 参数),请选择一个参数。相应的 AMI ID 将显示在 Currently resolves to(当前解析为)下方。

  7. 选择搜索。与 AMI ID 匹配的 AMI 将显示在列表中。

  8. 从列表中选择 AMI,然后选择选择

有关使用启动实例向导启动实例的更多信息,请参阅 使用新启动实例向导启动实例

Old console
使用 Systems Manager 参数查找 Linux AMI(控制台)
  1. 通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

  2. 从导航栏,选择您在其中启动实例的区域。您可以选择向您提供的任何区域,无需理会您身处的位置。

  3. 从控制台控制面板中,选择启动实例

  4. 选择 Search by Systems Manager parameter (按 Systems Manager 参数搜索)(位于右上角)。

  5. 对于 Systems Manager 参数 (Systems Manager 参数),请选择一个参数。相应的 AMI ID 将显示在 Currently resolves to (当前解析为) 的旁边。

  6. 选择搜索。与 AMI ID 匹配的 AMI 将显示在列表中。

  7. 从列表中选择 AMI,然后选择选择

有关使用启动实例向导从 AMI 启动实例的更多信息,请参阅 步骤 1:选择 Amazon Machine Image (AMI)

使用 Amazon Systems Manager 参数而不是 AMI ID 启动实例 (Amazon CLI)

以下示例使用 Systems Manager 参数 golden-ami 启动 m5.xlarge 实例。该参数指向 AMI ID。

要在命令中指定参数,请使用以下语法:resolve:ssm:/parameter-name,其中 resolve:ssm 是标准前缀,parameter-name 是唯一参数名称。请注意,参数名称区分大小写。只有在参数是层次结构的一部分时,参数名称才需要使用反斜杠,例如,/amis/production/golden-ami。如果参数不是层次结构的一部分,您可以省略反斜杠。

在本示例中,不包括 --count--security-group 参数。对于 --count,默认为 1。如有默认 VPC 和默认安全组,则将使用它们。

aws ec2 run-instances --image-id resolve:ssm:/golden-ami --instance-type m5.xlarge ...
使用特定版本的 Amazon Systems Manager 参数启动实例 (Amazon CLI)

Systems Manager 参数具有版本支持。参数的每个迭代将分配一个唯一的版本号。您可以按照 resolve:ssm:parameter-name:version 的格式引用参数的版本,其中 version 是唯一版本号。默认情况下,未指定版本时将使用参数的最新版本。

以下示例使用参数的版本 2。

在本示例中,不包括 --count--security-group 参数。对于 --count,默认值为 1。如果您有默认的 VPC 和默认安全组,则将使用它们。

aws ec2 run-instances --image-id resolve:ssm:/golden-ami:2 --instance-type m5.xlarge ...
使用 Amazon 提供的公有参数启动实例

Amazon EC2 为 Amazon 提供的公用 AMI 提供 Systems Manager 公用参数。例如,公有参数 /aws/service/ami-amazon-linux-latest/amzn2-ami-hvm-x86_64-gp2 在所有区域中都可用,并且始终指向该区域中 Amazon Linux 2 AMI 的最新版本。

aws ec2 run-instances --image-id resolve:ssm:/aws/service/ami-amazon-linux-latest/amzn2-ami-hvm-x86_64-gp2 --instance-type m5.xlarge ...