本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
亚马逊 EC2 上的 AL2
注意
AL2 不再是亚马逊 Linux 的当前版本。AL2023 是 AL2 的继任者。AL2023 有关更多信息,请参阅 AL2023 用户指南中的比较 AL2 和 AL2023 以及 AL2023 中的 Package 变更列表。AL2023 AL2023 AL2023
主题
使用 AL2 AMI 启动亚马逊 EC2 实例
您可以使用 AL2 AMI 启动亚马逊 EC2 实例。有关更多信息,请参阅步骤 1:启动实例。
使用 Systems Manager 查找最新的 AL2 AMI
Amazon EC2 为由维护的公有 AMI 提供 AWS Systems Manager 公共参数 AWS ,您可以在启动实例时使用这些参数。例如,该 EC2-provided 参数在所有区域/aws/service/ami-amazon-linux-latest/amzn2-ami-kernel-default-hvm-x86_64-gp2都可用,并且始终指向给定区域中最新版本的 AL2 AMI。
要使用最新的 AL2023 AMI AWS Systems Manager,请参阅 AL2023 入门。AL2023 AL2023
在以下路径中提供 Amazon EC2 AMI 公有参数:
/aws/service/ami-amazon-linux-latest
您可以通过运行以下 AWS CLI 命令来查看当前 AWS 区域中所有 Amazon Linux AMI 的列表。
aws ssm get-parameters-by-path --path /aws/service/ami-amazon-linux-latest --query "Parameters[].Name"
使用公有参数启动实例
以下示例使用 EC2-provided 公共参数使用最新的 AL2 AMI 启动m5.xlarge实例。
要在命令中指定参数,请使用以下语法:resolve:ssm:,其中 public-parameterresolve: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
有关更多信息,请参阅AWS Systems Manager 用户指南中的使用公共参数。
了解亚马逊 Linux 2 AMI 的名称
亚马逊 Linux 2 AMI 名称使用以下命名方案:
amzn2-ami-[minimal-][kernel-{5.10,default,4.14}]-hvm-{x86_64,aarch64}-{ebs,gp2}
最小 AMI 附带一组最小化的预装软件包,以减小图像大小。
内核版本决定了相应的 AMI 上预安装的内核版本:
-
kernel-5.10选择 Linux 内核版本 5.10。这是 AL2 的推荐内核版本。 -
kernel-default为 AL2 选择推荐的默认内核。它是内核 5.10 的别名。 -
kernel-4.14选择 Linux 内核版本 4.14。这只是为了兼容较早的 AMI 版本而提供的。请勿使用此版本启动新实例。预计此 AMI 将不再受支持。 -
存在一组特殊的 AMI 名称,但不引用特定的内核。这些 AMI 是内核 4.14 的别名。 提供这些 AMI 只是为了与较早的 AMI 版本兼容。请勿使用此 AMI 名称启动新实例。预计这些 AMI 的内核会更新。
-
x86_64/aarch64决定要在哪个 CPU 平台上运行 AMI。对于基于英特尔和 AMD 的 EC2 实例,请选择 x86_64。为 EC2 Graviton 实例选择 aarch64。
ebs/gp2确定用于为相应 AMI 提供服务的 EBS 卷类型。请参阅 EBS 卷类型以供参考。请务必选择 gp2。
连接亚马逊 EC2 实例
您可以通过多种方式连接您的 Amazon Linux 实例,包括 SSH 和 EC2 In AWS Systems Manager Session Manager stance Connect。有关更多信息,请参阅《Amazon EC2 用户指南》中的连接到 Linux 实例。
SSH 用户和 sudo
默认情况下,亚马逊 Linux 不允许root使用远程安全外壳 (SSH)。此外,禁用密码身份验证以防止暴力攻击。要在 Amazon Linux 实例上启用 SSH 登录,您必须在实例启动时为其提供密钥对。您还必须设置用于启动实例的安全组以允许 SSH 访问。默认情况下,唯一可以使用 SSH 远程登录的账户是ec2-user。此账户也有sudo权限。如果您启用远程root登录,请注意它不如依赖密钥对和辅助用户安全。
AL2 AMI 启动模式
AL2 AMI 没有设置启动模式参数。从 AL2 AMI 启动的实例遵循实例类型的默认启动模式值。有关更多信息,请参阅 Amazon EC2 用户指南中的启动模式。
程序包存储库
此信息适用于 AL2。有关 AL2023 的信息,请参阅亚马逊 Linux 2023 用户指南中的在 AL2023 中管理软件包和操作系统更新。AL2023 AL2023
AL2 和 AL1 旨在与每个 Amazon EC AWS 2 区域托管的在线软件包存储库一起使用。这些存储库在所有区域中提供,可使用 yum 更新工具进行访问。通过在每个区域托管存储库,我们可以快速部署更新,不会产生任何数据传输费。
重要
AL1 的最新版本已于 2023 年 12 月 31 日停产,自 2024 年 1 月 1 日起将不会收到任何安全更新或错误修复。有关更多信息,请参阅 Amazon Linux AMI 生命周期终止
如果您不需要为实例保留数据或自定义设置,则可以使用当前的 AL2 AMI 启动新实例。如果您确实需要保留实例的数据或自定义设置,则可以通过 Amazon Linux 软件包存储库维护这些实例。这些存储库包含所有更新后的程序包。您可以选择将这些更新应用到正在运行的实例中。即使发布了新版本,AMI 和更新包的早期版本仍可继续使用。
注意
要在 Amazon EC2 实例上更新和安装无需访问互联网的软件包,请参阅如何在运行 AL1、AL2 或 AL2023 的 Amazon EC2 实例上更新 yum 或在没有互联网访问的情况下安装软件包?
要安装程序包,请使用以下命令:
[ec2-user ~]$sudo yum installpackage
如果您发现 Amazon Linux 不包含您需要的应用程序,您可以直接在 Amazon Linux 实例上安装该应用程序。Amazon Linux 使用 RPM 和yum软件包管理,这可能是安装新应用程序的最直接方法。您应该首先查看我们的中央 Amazon Linux 存储库,确定其中是否有您需要应用程序,因为许多应用程序在那里都可以找到。然后,您可以将这些应用程序添加到您的 Amazon Linux 实例中。
要将应用程序上传到正在运行的 Amazon Linux 实例,请使用 scp 或 sftp,然后通过登录实例来配置应用程序。您还可以使用内置 cloud-init 程序包中的 PACKAGE_SETUP 操作,在实例启动时,上传应用程序。有关更多信息,请参阅在 AL2 上使用云初始化。
安全更新
安全更新是使用软件包存储库提供的。安全更新和更新后的 AMI 安全警报均在 Amazon Linux 安全中心
AL1 和 AL2 配置为在启动时下载并安装关键或重要的安全更新。此配置中不包括内核更新。
在 AL2023 中,与 AL1 和 AL2 相比,此配置发生了变化。AL2023 有关 AL2023 安全更新的更多信息,请参阅亚马逊 Linux 2023 用户指南中的安全更新和功能。AL2023
我们建议您在启动后针对您的用例进行必要的更新。例如,您可能希望在启动时应用所有更新(而不仅仅是安全更新),或者评估每个更新并仅应用适用于您的系统的更新。这将使用以下 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,AMI 是创建 AMI 时可用包的快照,但安全更新除外。任何不在原始 AMI 上但在运行时安装的软件包都将是可用的最新版本。要获取可用于 AL2 的最新软件包,请运行yum update -y。
故障排除技巧
如果您在 nano 实例类型上运行 yum update 时遇到 cannot allocate memory 错误(例如 t3.nano),则可能需要分配交换空间才能启用更新。
对于 AL2023,与 AL1 和 AL2 相比,存储库配置发生了变化。AL2023 有关 AL2023 存储库的更多信息,请参阅管理程序包和操作系统更新。
AL2023 之前的版本已配置为持续提供更新,以确保 Amazon Linux 次要版本的滚动更新,这也称为滚动发布。作为最佳实践,我们建议您将您的 AMI 更新为最新的可用的 AMI,而不是启动旧的 AMI 并应用更新。
In-place 不支持在主要 Amazon Linux 版本之间进行升级,例如从 AL1 升级到 AL2 或从 AL2 升级到 AL2023。AL2023 有关更多信息,请参阅 Amazon Linux 可用性。