AL2 在亚马逊上 EC2 - Amazon Linux 2
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

AL2 在亚马逊上 EC2

注意

AL2 不再是亚马逊 Linux 的当前版本。 AL2023 是的继任者。 AL2有关更多信息,请参阅《 AL2023 用户指南》中的 “比较 AL2 和 023” 以及 AL2023 中的 Package 更改列表。AL2

使用 AM AL2 I 启动亚马逊 EC2 实例

您可以使用 AMI 启动亚马逊 EC2 实 AL2 例。有关更多信息,请参阅步骤 1:启动实例

使用 Systems Manager 查找最新的 AL2 AMI

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

要使用查找最新的 AL2 023 AMI Amazon Systems Manager,请参阅开始使用 AL2 0 23。

Amazon EC2 AMI 公共参数可从以下路径获得:

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

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

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

以下示例使用 EC2提供的 public 参数使用最新 AL2 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-kernel-default-hvm-x86_64-gp2 --instance-type m5.xlarge --key-name MyKeyPair

有关更多信息,请参阅Amazon Systems Manager 用户指南中的使用公共参数

了解亚马逊 Linux 2 AMI 的名称

亚马逊 Linux 2 AMI 名称使用以下命名方案:

amzn2-ami-[minimal-][kernel-{5.10,default,4.14}]-hvm-{x86_64,aarch64}-{ebs,gp2}

  • M@@ in im AMIs alim 附带一组最小化的预装软件包,以减小图像大小。

  • 内核版本决定了相应的 AMI 上预安装的内核版本:

    • kernel-5.10选择 Linux 内核版本 5.10。这是推荐的内核版本 AL2。

    • kernel-default为选择推荐的默认内核 AL2。它是内核 5.10 的别名。

    • kernel-4.14选择 Linux 内核版本 4.14。这只是为了兼容较早的 AMI 版本而提供的。请勿使用此版本启动新实例。预计此 AMI 将不再受支持。

    • 存在一组特殊的 AMI 名称,但不引用特定的内核。这些 AMIs 是内核 4.14 的别名。 提供这些 AMIs 只是为了与较早的 AMI 版本兼容。请勿使用此 AMI 名称启动新实例。预计这些内核 AMIs 会更新。

  • x86_64/aarch64 决定运行 AMI 的 CPU 平台。对于基于英特尔和 AMD 的实例,请选择 x86_64。 EC2 为 EC2 Graviton 实例选择 aarch64。

  • ebs/gp2 确定用于为相应的 AMI 提供服务的 EBS 卷类型。请参阅 EBS 卷类型以供参考。请务必选择 gp2。

连接到 Amazon EC2 实例

您可以通过多种方式连接您的 Amazon Linux 实例,包括 SSH 和 EC2 Instan Amazon Systems Manager Session Manager ce Connect。有关更多信息,请参阅《亚马逊 EC2 用户指南》中的 “连接到您的 Linux 实例”。

SSH 用户和 sudo

默认情况下,亚马逊 Linux 不允许root使用远程安全外壳 (SSH)。此外,禁用密码身份验证以防止暴力攻击。要在 Amazon Linux 实例上启用 SSH 登录,您必须在实例启动时为其提供密钥对。您还必须设置用于启动实例的安全组以允许 SSH 访问。默认情况下,唯一可以使用 SSH 远程登录的账户是ec2-user。此账户也有sudo权限。如果您启用远程root登录,请注意它不如依赖密钥对和辅助用户安全。

AL2 AMI 启动模式

AL2 AMIs 没有设置启动模式参数。从启动的实例 AL2 AMIs 遵循实例类型的默认启动模式值。有关更多信息,请参阅 Amazon EC2 用户指南中的启动模式

程序包存储库

此信息适用于 AL2。有关 AL2 023 的信息,请参阅《亚马逊 Linux 2023 用户指南》中的 “在 AL2 023 中管理软件包和操作系统更新”。

AL2 AL1 并且专为与每个亚马逊 EC2 Amazon 地区托管的在线包存储库配合使用而设计。这些存储库在所有区域中提供,可使用 yum 更新工具进行访问。通过在每个区域托管存储库,我们可以快速部署更新,不会产生任何数据传输费。

重要

的最新版本 AL1 已于 2023 年 12 月 31 日发布,自 2024 年 1 月 1 日起将不会收到任何安全更新或错误修复。有关更多信息,请参阅 Amazon Linux AMI end-of-life

如果您不需要为实例保留数据或自定义设置,则可以使用当前 AL2 AMI 启动新实例。如果您确实需要保留实例的数据或自定义设置,则可以通过 Amazon Linux 软件包存储库维护这些实例。这些存储库包含所有更新后的程序包。您可以选择将这些更新应用到正在运行的实例中。即使发布了新版本,AMI 和更新包的早期版本仍可继续使用。

注意

要在无法访问互联网的亚马逊 EC2 实例上更新和安装软件包,请参阅如何在运行 AL1、或 AL2 023 的亚马逊 EC2 实例上更新 yum 或在没有互联网访问的情况下安装软件包? AL2

要安装程序包,请使用以下命令:

[ec2-user ~]$ sudo yum install package

如果您发现 Amazon Linux 不包含您需要的应用程序,您可以直接在 Amazon Linux 实例上安装该应用程序。Amazon Linux 使用 RPMs 和yum进行软件包管理,这可能是安装新应用程序的最直接方法。您应该首先查看我们的中央 Amazon Linux 存储库,确定其中是否有您需要应用程序,因为许多应用程序在那里都可以找到。然后,您可以将这些应用程序添加到您的 Amazon Linux 实例中。

要将应用程序上传到正在运行的 Amazon Linux 实例,请使用 scpsftp,然后通过登录实例来配置应用程序。您还可以使用内置 cloud-init 程序包中的 PACKAGE_SETUP 操作,在实例启动时,上传应用程序。有关更多信息,请参阅在 on 上使用云初始化 AL2

安全更新

安全更新是使用软件包存储库提供的。安全更新和更新后的 AMI 安全警报均在 Amazon Linux 安全中心发布。有关 Amazon 安全策略的更多信息,或要报告安全问题,请访问 Amazon 云安全

AL1 并配置 AL2 为在启动时下载和安装关键或重要的安全更新。此配置中不包括内核更新。

在 AL2 023 中,与 AL1 和 AL2相比,此配置发生了变化。有关 AL2 023 安全更新的更多信息,请参阅 Amazon Linux 2023 用户指南中的安全更新和功能

我们建议您在启动后针对您的用例进行必要的更新。例如,您可能希望在启动时应用所有更新(而不仅仅是安全更新),或者评估每个更新并仅应用适用于您的系统的更新。这将使用以下 cloud-init 设置来进行控制:repo_upgrade。下方 cloud-init 配置片段显示了如何修改传递到实例初始化用户数据文本中的设置:

#cloud-config repo_upgrade: security

repo_upgrade 的可能值如下所示:

critical

应用未完成的关键安全更新。

important

应用未完成的关键和重要安全更新。

medium

应用未完成的关键、重要和中等安全更新。

low

应用所有未完成的安全更新,包括具有低严重性的安全更新。

security

应用 Amazon 标记为安全更新的明显关键或重要更新。

bugfix

应用 Amazon 标记为缺陷修正的更新。缺陷修正是一组较大的更新,其中包括安全更新和针对各种其他小漏洞的修正更新。

all

应用全部适用更新 (不论类别)。

none

实例启动时不应用任何更新。

备注

亚马逊 Linux 不会将任何更新标记为bugfix。要应用来自亚马逊 Linux 的与安全无关的更新,请使用repo_upgrade: all

repo_upgrade 的默认设置是安全的。也就是说,如果您未在用户数据中指定其他值,在默认情况下,Amazon Linux 会在启动时执行针对所有已安装程序包的安全升级。Amazon Linux 还会使用 /etc/motd 文件列出登录时可用更新的数量,通知您已安装程序包的任何更新。要安装这些更新,您需要在实例上运行 sudo yum upgrade

存储库配置

AL1 和 AL2, AMIs 是创建 AMI 时可用的软件包的快照,但安全更新除外。任何不在原始 AMI 上但在运行时安装的软件包都将是可用的最新版本。要获取可用的最新软件包 AL2,请运行yum update -y

故障排除技巧

如果您在 nano 实例类型上运行 yum update 时遇到 cannot allocate memory 错误(例如 t3.nano),则可能需要分配交换空间才能启用更新。

对于 AL2 023,与 AL1 和 AL2相比,存储库配置发生了变化。有关 AL2 023 存储库的更多信息,请参阅管理软件包和操作系统更新

AL2023 之前的版本配置为提供持续的更新流,从 Amazon Linux 的一个次要版本滚动到下一个版本(也称为滚动发布)。作为最佳实践,我们建议您将您的 AMI 更新为最新的可用的 AMI,而不是启动旧的更新 AMIs并应用更新。

不支持在主要 Amazon Linux 版本之间进行就地升级,例如从 AL1 到 023 AL2 或从 AL2 AL2 023 升级。有关更多信息,请参阅 Amazon Linux 可用性