

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

# 亚马逊 EC2 上的 AL2
<a name="ec2"></a>

**注意**  
 AL2 不再是亚马逊 Linux 的当前版本。 AL2023 是。的继任者 AL2。有关更多信息，请参阅《[AL2023 用户指南](https://docs.aws.amazon.com/linux/al2023/ug/)》[ AL2023中的 “[比较 AL2 AL2023和](https://docs.aws.amazon.com/linux/al2023/ug/compare-with-al2.html)” 和 “Package 变更](https://docs.aws.amazon.com/linux/al2023/release-notes/compare-packages.html)列表”。

 

**Topics**
+ [使用 AM AL2 I 启动亚马逊 EC2 实例](#launch-ec2-instance)
+ [使用 Systems Manager 查找最新的 AL2 AMI](#find-latest-al2-using-systems-manager)
+ [连接亚马逊 EC2 实例](#connect-to-amazon-linux-limits-ec2)
+ [AL2 AMI 启动模式](#default-boot-mode-al2)
+ [程序包存储库](#package-repository)
+ [在 on 上使用云初始化 AL2](amazon-linux-cloud-init.md)
+ [配置 AL2 实例](configure-ec2-instance.md)
+ [用户提供的内核](UserProvidedKernels.md)
+ [AL2 AMI 发布通知](linux-ami-notifications.md)
+ [配置 M AL2 ATE 桌面连接](amazon-linux-ami-mate.md)
+ [AL2 教程](al2-tutorials.md)

## 使用 AM AL2 I 启动亚马逊 EC2 实例
<a name="launch-ec2-instance"></a>

您可以使用 AMI 启动亚马逊 EC2 实例。 AL2 有关更多信息，请参阅[步骤 1：启动实例](https://docs.aws.amazon.com//AWSEC2/latest/UserGuide/EC2_GetStarted.html#ec2-launch-instance)。

## 使用 Systems Manager 查找最新的 AL2 AMI
<a name="find-latest-al2-using-systems-manager"></a>

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

要使用查找最新 AL2023 AMI AWS Systems Manager，请参阅[入门 AL2023](https://docs.aws.amazon.com/linux/al2023/ug/get-started.html)。

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

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

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

```
aws ssm get-parameters-by-path --path /aws/service/ami-amazon-linux-latest --query "Parameters[].Name"
```

**使用公有参数启动实例**  
以下示例使用 EC2 提供的公共参数使用最新 AM AL2 I 启动`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
```

有关更多信息，请参阅*AWS Systems Manager 用户指南*中的[使用公共参数](https://docs.aws.amazon.com/systems-manager/latest/userguide/parameter-store-public-parameters.html)。

**了解亚马逊 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\$164/aarch64 决定运行** AMI 的 CPU 平台。对于基于英特尔和 AMD 的 EC2 实例，请选择 x86\$164。为 EC2 Graviton 实例选择 aarch64。
+ **ebs/gp2** 确定用于为相应的 AMI 提供服务的 EBS 卷类型。请参阅 [EBS 卷类型](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-volume-types.html)以供参考。*始终选择 gp2。*

## 连接亚马逊 EC2 实例
<a name="connect-to-amazon-linux-limits-ec2"></a>

您可以通过多种方式连接您的 Amazon Linux 实例，包括 SSH 和 EC2 In AWS Systems Manager Session Manager stance Connect。有关更多信息，请参阅《Amazon EC2 用户指南》中的[连接到 Linux 实例](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/connect-to-linux-instance.html)**。

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

## AL2 AMI 启动模式
<a name="default-boot-mode-al2"></a>

AL2 AMIs 没有设置启动模式参数。从启动的实例 AL2 AMIs 遵循实例类型的默认启动模式值。有关更多信息，请参阅 *Amazon EC2 用户指南*中的[启动模式](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ami-boot.html)。

## 程序包存储库
<a name="package-repository"></a>

此信息适用于 AL2。有关信息 AL2023，请参阅 *Amazon Linux 2023 用户指南 AL2023*[中的管理软件包和操作系统更新](https://docs.aws.amazon.com/linux/al2023/ug/managing-repos-os-updates.html)。

AL2 和 AL1 旨在与每个 Amazon EC AWS 2 区域托管的在线软件包存储库一起使用。这些存储库在所有区域中提供，可使用 **yum** 更新工具进行访问。通过在每个区域托管存储库，我们可以快速部署更新，不会产生任何数据传输费。

**重要**  
的最新版本 AL1 已于 2023 年 12 月 31 日发布，自 2024 年 1 月 1 日起将不会收到任何安全更新或错误修复。有关更多信息，请参阅 [Amazon Linux AMI end-of-life](https://aws.amazon.com//blogs/aws/update-on-amazon-linux-ami-end-of-life/)。

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

**注意**  
要在 Amazon EC2 实例上更新和安装无需访问互联网的软件包，请参阅[如何在运行的 Amazon EC2 实例上更新 yum 或在没有互联网访问的情况下安装软件包 AL1 AL2，或 AL2023？](https://repost.aws/knowledge-center/ec2-al1-al2-update-yum-without-internet)

要安装程序包，请使用以下命令：

```
[ec2-user ~]$ sudo yum install package
```

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

要将应用程序上传到正在运行的 Amazon Linux 实例，请使用 **scp** 或 **sftp**，然后通过登录实例来配置应用程序。您还可以使用内置 cloud-init 程序包中的 **PACKAGE\$1SETUP** 操作，在实例启动时，上传应用程序。有关更多信息，请参阅[在 on 上使用云初始化 AL2](amazon-linux-cloud-init.md)。

### 安全更新
<a name="security-updates"></a>

安全更新是使用软件包存储库提供的。安全更新和更新后的 AMI 安全警报均在 [Amazon Linux 安全中心](https://alas.aws.amazon.com)发布。有关 AWS 安全策略的更多信息，或要报告安全问题，请访问 [AWS 云安全](https://aws.amazon.com/security/)。

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

在中 AL2023，与 AL1 和相比，此配置发生了变化 AL2。有关安全更新的更多信息 AL2023，请参阅 *Amazon Linux 2023 用户指南*中的[安全更新和功能](https://docs.aws.amazon.com/linux/al2023/ug/security-features.html)。

我们建议您在启动后针对您的用例进行必要的更新。例如，您可能希望在启动时应用所有更新（而不仅仅是安全更新），或者评估每个更新并仅应用适用于您的系统的更新。这将使用以下 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**。

### 存储库配置
<a name="repository-config"></a>

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

**故障排除技巧**  
如果您在 nano 实例类型上运行 **yum update** 时遇到 `cannot allocate memory` 错误（例如 `t3.nano`），则可能需要分配交换空间才能启用更新。

对于 AL2023，与 AL1 和相比，存储库配置发生了变化 AL2。有关 AL2023 存储库的更多信息，请参阅[管理软件包和操作系统更新](https://docs.aws.amazon.com/linux/al2023/ug/managing-repos-os-updates.html)。

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

不支持在 Amazon Linux 主要 Linux 版本之间进行就地升级，例如从 AL1 到 AL2 或从 AL2 到 AL2023。有关更多信息，请参阅 [Amazon Linux 可用性](what-is-amazon-linux.md#amazon-linux-availability)。