创建 Amazon EBS-backed AMI - Amazon Elastic Compute Cloud

创建 Amazon EBS-backed AMI

可以从 Amazon EC2 实例或从 Amazon EC2 实例的根设备快照创建自己的 Amazon EBS-backed AMI。

要从实例创建 Amazon EBS-backed AMI,请先使用现有的 Amazon EBS-backed AMI 启动一个实例。此 AMI 可以是从 AWS Marketplace 获得的 AMI,可以是使用 VM Import/Export 创建的 AMI,也可以是能够访问的任何其他 AMI。自定义满足特定要求的实例后,创建新的 AMI 并加以注册。然后,即可使用新的 AMI 启动具有自定义项的新实例。

下述过程适用于由加密的 Amazon Elastic Block Store (Amazon EBS) 卷(包括根卷)支持的 Amazon EC2 实例,也适用于未加密卷。

用于由实例存储支持的 AMIs 的 AMI 创建过程有些不同。有关更多信息,请参阅 创建实例存储支持的 AMI

关于从实例创建 AMI 的概述

以下图表概述了从运行中的 EC2 实例创建 Amazon EBS-backed AMI 的流程:从现有 AMI 开始,启动实例,自定义该实例,从该实例创建新 AMI,并最终启动新 AMI 的实例。图中的数字与以下描述中的数字匹配。

从实例创建 AMI 的工作流程
1 – AMI #1:从现有的 AMI 开始

查找类似于您要创建的 AMI 的现有 AMI。这可以是您从 AWS Marketplace 获得的 AMI、您使用 VM Import/Export 创建的 AMI 或您可以访问的任何其他 AMI。您将根据自己的需求自定义此 AMI。

在图中,EBS 根卷快照 #1 表示 AMI 为 Amazon EBS-backed AMI,并且有关根卷的信息存储在此快照中。

2 – 从现有 AMI 启动实例

配置 AMI 的方法是从您希望作为新 AMI 基础的 AMI 启动实例,然后自定义该实例(在图中以 3 表示)。然后,您将创建一个包含自定义项的新 AMI(在图中以 4 表示)。

3 – EC2 实例 #1:自定义实例

连接到您的实例并根据您的需求对其进行自定义。您的新 AMI 将包含这些自定义项。

您可以对您的实例执行以下任何操作,以便自定义该实例:

  • 安装软件和应用程序

  • 复制数据

  • 通过删除临时文件和对您的硬盘进行碎片整理来缩短启动时间

  • 附加其他 EBS 卷

4 – 创建映像

当您从实例中创建 AMI 时,Amazon EC2 先切断实例的电源再创建 AMI,以确保创建过程中实例上的所有内容均停止并保持一致状态。如果您确信您的实例处于适合 AMI 创建的一致状态,则可以告知 Amazon EC2 不断电和重启实例。一些文件系统 (例如 XFS) 可以冻结和解冻活动,因此能在不重启实例的情况下安全创建映像。

在 AMI 创建过程中,Amazon EC2 会创建您实例的根卷和附加到您实例的任何其他 EBS 卷的快照。在注销 AMI 并删除快照之前,您需要支付快照的费用。如果有任何附加到实例的卷进行了加密,则新 AMI 只会在支持 Amazon EBS 加密的实例上成功启动。

根据卷的大小,可能需要几分钟才能完成 AMI 创建过程 (有时长达 24 小时)。您可能会发现先创建卷的快照,然后再创建 AMI 后会更高效。这样,创建 AMI 时就只需创建小的增量快照,且创建过程完成得更快 (快照创建的总时间保持不变)。

5 – AMI #2:新 AMI

该过程完成之后,您便具有从实例的根卷创建的新 AMI 和快照(快照 #2)。如果除了根设备卷之外,您还向实例添加了实例存储卷或 EBS 卷,则新 AMI 的块储存设备映射包含这些卷的信息。

Amazon EC2 自动为您注册 AMI。

6 – 从新 AMI 启动实例

您可以使用新 AMI 启动实例。

7 – EC2 实例 #2:新实例

当您使用新 AMI 启动实例时,Amazon EC2 会使用快照为实例的根卷创建新 EBS 卷。如果您在自定义实例时添加了实例存储卷或 EBS 卷,则新 AMI 的块储存设备映射包含这些卷的信息,并且您从新 AMI 启动的实例的块储存设备映射自动包含这些卷的信息。新实例的块储存设备映射中指定的实例存储卷是新的,不包含用于创建 AMI 的实例的实例存储卷中的任何数据。EBS 卷上的数据会持久保留。有关更多信息,请参阅Amazon EC2 实例上卷的块设备映射

当您从由 EBS 支持的 AMI 创建新实例时,应该先初始化其根卷及任何额外的 EBS 存储,然后再将其投入生产。有关更多信息,请参阅《Amazon EBS 用户指南》中的初始化 Amazon EBS 卷

从实例创建 AMI

如果您有现有实例,则可以通过该实例创建 AMI。

Console
创建 AMI
  1. 通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

  2. 在导航窗格中,选择实例

  3. 选择要从中创建 AMI 的实例,然后选择 Actions(操作)、Image and templates(映像和模板)、Create image(创建映像)。

    提示

    如果该选项处于禁用状态,则表明您的实例不是由 Amazon EBS 支持的实例。

  4. Create image(创建映像)页面上,请指定以下信息:

    1. 对于 Image name(映像名称),请输入映像的唯一名称,最多 127 个字符。

    2. 对于 Image description(映像描述),输入映像的可选描述,最多 255 个字符。

    3. 对于重启实例,请保持选中该复选框(默认),或将其清除。

      • 如果选择重启实例,则 Amazon EC2 创建新 AMI 时,会重启该实例,以便其可以在数据处于静态状态时拍摄附加卷的快照,以确保一致的状态。

      • 如果清除重启实例,则 Amazon EC2 创建新 AMI 时,不会关闭和重启实例。

      警告

      如果您清除重启实例,则我们无法保证所创建映像的文件系统完整性。

    4. Instance volumes(实例卷)– 您可以修改根卷,并添加其他 Amazon EBS 和实例存储卷,如下所示:

      1. 根卷在第一行中定义。

        • 要更改根卷的大小,请在 Size (尺寸) 中输入所需的值。

        • 如果选择 Delete on Termination (终止时删除),则当您终止从此 AMI 创建的实例时,将删除 EBS 卷。如果取消选择 Delete on Termination (终止时删除),则当您终止实例时,不会删除 EBS 卷。有关更多信息,请参阅实例终止时保留数据

      2. 要添加 EBS 卷,请选择 Add New Volume(添加新卷)(这将添加一个新行)。对于存储类型,选择 EBS,并填写行中的字段。当您从新的 AMI 启动实例时,额外的卷会自动附加到该实例。您必须格式化并挂载空卷。您必须挂载基于快照的卷。

      3. 要添加实例存储卷,请参阅 将实例存储卷添加到 Amazon EC2 AMI。当您从新的 AMI 启动实例时,这些额外的卷会自动初始化并挂载。这些卷不包含您的 AMI 所基于的运行实例的实例存储卷上的数据。

    5. 标签 – 您可以使用相同的标签来标记 AMI 和快照,也可以使用不同的标签来标记它们。

      • 要使用相同标签标记的 AMI 和快照,请选择 Tag image and snapshots together (将映像和快照一起标记)。相同的标签将应用于 AMI 和创建的每个快照。

      • 要使用不同的标签标记 AMI 和快照,请选择 Tag image and snapshots separately (分别标记映像和快照)。对 AMI 和创建的快照应用了不同的标签。但是,所有快照都获得相同的标签;您不能使用不同的标签来标记每个快照。

      要添加标签,请选择 Add tag (添加标签),然后输入该标签的键和值。对每个标签重复此操作。

    6. 准备好创建 AMI 时,选择 Create image(创建映像)。

  5. 若要在创建 AMI 时查看其状态,请执行以下操作:

    1. 在导航窗格中,选择 AMI

    2. 将筛选条件设置为 Owned by me(我拥有的),然后在列表中查找您的 AMI。

      最初,状态是 pending,但过几分钟就会变成 available

  6. (可选)若要查看为新 AMI 创建的快照,请执行以下操作:

    1. 记下您在上一步骤中找到的 AMI ID。

    2. 在导航窗格中,选择快照

    3. 将筛选条件设置为 Owned by me(我拥有的),然后在 Description(描述)列中查找具有新 AMI ID 的快照。

      您从此 AMI 启动实例时,Amazon EC2 使用此快照创建其根设备卷。

AWS CLI

您可以使用以下任一命令。有关这些命令行界面的更多信息,请参阅 访问 Amazon EC2

从快照创建 AMI

如果您有实例根设备卷的快照,则可以通过此快照创建 AMI。

注意

在大多数情况下,适用于 Windows、RedHat、SUSE 和 SQL Server 的 AMI 需要在 AMI 上提供正确的许可信息。有关更多信息,请参阅 了解 AMI 账单信息。从快照创建 AMI 时,RegisterImage 操作会从快照的元数据获取正确的账单信息,但这需要存在相应的元数据。要验证是否应用了正确的账单信息,请检查新 AMI 上的平台详细信息字段。如果该字段为空或不匹配预期的操作系统代码(例如 Windows、RedHat、SUSE 或 SQL),则 AMI 创建失败,您应丢弃 AMI 并按照从实例创建 AMI中的说明进行操作。

Console
从快照创建 AMI
  1. 通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

  2. 在导航窗格中,选择快照

  3. 选择从中创建 AMI 的快照并选择 Actions(操作)、Create image from snapshot(从快照创建映像)。

  4. 从快照创建映像页面上,请指定以下信息:

    1. 对于 Image name(镜像名称),请输入镜像的描述性名称。

    2. 对于 Description(描述),请输入镜像的简短描述。

    3. 对于 Architecture(架构),请选择镜像架构。对于 32 位选择 i386,对于 64 位选择 x86_64,对于 64 位 ARM 选择 arm64,或者对于 64 位 macOS 选择 x86_64

    4. 对于 Root device name(根设备名称),请输入要用于根设备卷的设备名称。有关更多信息,请参阅 Amazon EC2 实例上卷的设备名称

    5. 对于 Virtualization type(虚拟化类型),请选择从此 AMI 启动的实例要使用的虚拟化类型。有关更多信息,请参阅 虚拟化类型

    6. (仅适用于半虚拟化)对于 Kernel ID(内核 ID),选择镜像的操作系统内核。如果您使用的是实例的根设备卷快照,请选择与原始实例相同的内核 ID。如果您不确定,请使用默认内核。

    7. (仅适用于半虚拟化)对于 RAM disk ID(RAM 磁盘 ID),请选择镜像的 RAM 磁盘。如果您选择了一个特定内核,则您可能需要选择带有可支持该内核的驱动程序的某个特定 RAM 磁盘。

    8. 对于启动模式,选择映像的启动模式,或者选择使用默认值,以便在使用此 AMI 启动实例时,它会以该实例类型支持的启动模式启动。有关更多信息,请参阅 设置 Amazon EC2 AMI 的启动模式

    9. (可选)在块设备映射部分中,自定义根卷并添加其它数据卷。

      对于每个卷,您可以指定大小、类型、性能特征、终止时删除的行为以及加密状态。对于根卷,其大小不能小于快照的大小。对于卷类型,默认选择为通用型 SSD gp3

    10. (可选)在标签下,您可以向新的 AMI 添加一个或多个标签。要添加标签,请选择 Add tag (添加标签),然后输入该标签的键和值。对每个标签重复此操作。

    11. 准备好创建 AMI 时,选择 Create image(创建映像)。

  5. (仅适用于 Windows、RedHat、SUSE 和 SQL Server)要验证是否应用了正确的账单信息,请检查新 AMI 上的平台详细信息字段。如果该字段为空或不匹配预期的操作系统代码(例如 WindowsRedHat),则 AMI 创建失败,您应丢弃 AMI 并按照从实例创建 AMI中的说明进行操作。

AWS CLI
使用命令行从快照创建 AMI

您可以使用以下任一命令。有关这些命令行界面的更多信息,请参阅 访问 Amazon EC2