

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

# Image Builder 是什么？
<a name="what-is-image-builder"></a>

EC2 Image Builder 是一款完全托管 Amazon Web Services 服务 的，可帮助您自动创建、管理和部署自定义、安全的 up-to-date服务器映像。您可以使用 Amazon Web Services 管理控制台 Amazon Command Line Interface、或 APIs 在中创建自定义图像 Amazon Web Services 账户。

您在自己的账户中用 Image Builder 创建的自定义映像归您所有。您可以配置管道以对您拥有的映像进行自动化更新和为系统打补丁。您也可以运行独立命令，使用您定义的配置资源创建映像。

Image Builder 管道向导可以指导您通过以下步骤创建自定义映像，如下所示：

## 步骤 1：指定管道详细信息
<a name="wiz-step1-specify-pipeline-details"></a>
+ 为您的管道命名并添加标签。
+ 定义元数据和漏洞扫描设置。
+ 设置管道计划。

## 步骤 2：自定义映像
<a name="wiz-step2-choose-recipe"></a>

您可以选择现有配方或创建新配方。
+ 为自定义选择基础映像。
+ 在基础映像中添加软件或从中移除软件。
+ 使用构建组件自定义设置和脚本。
+ 选择要运行的测试组件。

## 步骤 3：定义工作流
<a name="wiz-step3-define-workflow"></a>

映像工作流定义了 Image Builder 在映像创建过程的构建和测试阶段执行的步骤顺序。这是整个 Image Builder 工作流框架的一部分。

## 步骤 4：配置构建基础设施
<a name="wiz-step4-define-infra"></a>
+ 选择要与 Image Builder 在映像创建过程中启动的实例的实例配置文件关联的 IAM 角色。
+ 选择一个或多个可在启动时应用的实例类型。
+ 选择 Amazon Simple Notification Service (SNS) 主题用于接收来自 Image Builder 的通知。
+ 指定适用于映像创建过程的 VPC、子网和安全组。
+ 选择故障排除设置，例如 Image Builder 写入日志的位置，以及在出现故障时是终止构建实例（默认）还是保持其正常运行来进行进一步的故障排除。

## 步骤 5：定义映像分配
<a name="wiz-step5-distribution-settings"></a>
+ 选择 Imag Amazon Web Services 区域 e Builder 分发您的亚马逊系统映像 (AMI) 或容器映像的位置。
+ 如果您的 Image Builder 管道创建了 AMI，Image Builder 还支持以下配置：
  + 选择用于加密的 KMS 密钥。
  + 在 Organizations Amazon Web Services 账户 之间配置 AMI 共享。
  + 将 License Manager 自管理许可证与分配的映像相关联。
  + 为您的映像配置启动模板。

## Image Builder 的特征
<a name="image-builder-features"></a>

EC2 Image Builder 提供以下功能：

**提高生产力，减少建筑物合规和 up-to-date图像的操作**

Image Builder 通过自动完成构建管道，减少了大规模创建和管理映像所需的工作量。您可以提供生成执行计划首选项以自动完成生成。自动化降低了使用最新操作系统补丁维护软件的运营成本。

**增加服务正常运行时间**

Image Builder 提供对测试组件的访问权限，您可以在部署之前使用这些组件测试映像。您也可以使用 EC2 Task Orchestrator and Executor (EC2 TOE) 创建自定义测试组件，然后使用这些组件。只有在成功完成所有配置的测试时，Image Builder 才会分配您的映像。

**提高部署安全性**

通过使用 Image Builder，您可以创建映像以消除不必要的组件安全漏洞风险。您可以应用 Amazon 安全设置来创建符合行业和内部安全标准的安全out-of-the-box 映像。Image Builder 还为受监管行业的公司提供设置集合。您可以使用这些设置，以帮助您快速轻松地生成符合 STIG 标准的映像。有关通过 Image Builder 提供的 STIG 组件的完整列表，请参阅 [Image Builder 的 Amazon 托管 STIG 固化组件](ib-stig.md)。

**集中的实施和跟踪管理**

通过使用与的内置集成 Amazon Organizations，Image Builder 使您能够强制执行政策，限制账户只能在获得批准 AMIs后运行实例。

**简化 Amazon Web Services 账户间的资源共享**

EC2 Image Builder 与 Amazon Resource Access Manager (Amazon RAM) 集成，允许您与任何资源 Amazon Web Services 账户 或通过共享某些资源 Amazon Organizations。可以共享的 EC2 Image Builder 资源有：
+ 组件
+ 图片
+ 映像配方
+ 容器配方数

有关更多信息，请参阅 [与共享 Image Builder 资源 Amazon RAM](manage-shared-resources.md)。

## 支持的操作系统
<a name="image-builder-os"></a>

Image Builder 支持以下操作系统版本：


| 操作系统/发行 | 支持的版本 | 
| --- | --- | 
|  Amazon Linux  |  2 和 2023  | 
|  CentOS  |  7 和 8  | 
|  CentOS Stream  |  8  | 
|  macOS  |  12.x（蒙特雷）、13.x（文图拉）、14.x（索诺玛）、15.x（红杉）、26.x（Tahoe）  | 
|  Red Hat Enterprise Linux (RHEL)  |  7、8、9 和 10  | 
|  SUSE Linux Enterprise Server (SUSE)  |  12、15 和 16  | 
|  Ubuntu  |  18.04 LTS、20.04 LTS、22.04 LTS 和 24.04 LTS  | 
|  Windows Server |  2012 R2、2016、2019、2022 和 2025  | 

## 支持的映像格式
<a name="image-builder-image-formats"></a>

对于创建亚马逊机器映像 (AMI) 的自定义映像，您可以选择现有的 AMI 作为起点。对于 Docker 容器镜像，您可以选择托管在上的公共镜像 DockerHub、Amazon ECR 中的现有容器镜像或亚马逊管理的容器镜像作为起点。

## 默认限额
<a name="image-builder-default-limits"></a>

要查看 Image Builder 的默认配额，请参阅 [Image Builder 终端节点和配额](https://docs.amazonaws.cn/general/latest/gr/imagebuilder.html)。

## Amazon 区域和终端节点
<a name="image-builder-regions"></a>

要查看 Image Builder 的服务终端节点，请参阅 [Image Builder 终端节点和配额](https://docs.amazonaws.cn/general/latest/gr/imagebuilder.html)。

## 概念
<a name="image-builder-concepts"></a>

以下术语和概念对您了解和使用 EC2 Image Builder 非常有用。

**AMI**  
亚马逊机器映像（AMI）是 Amazon EC2 中的基本部署单元，也是您可以使用 Image Builder 创建的映像类型之一。AMI 是一个预配置的虚拟机映像，其中包含用于部署 EC2 实例的操作系统 (OS) 和预装软件。有关更多信息，请参阅 [亚马逊机器映像 (AMI)](https://docs.amazonaws.cn/AWSEC2/latest/UserGuide/AMIs.html)。

**映像管道**  
图像管道提供了一个自动化框架，用于在上构建 AMIs 安全的容器映像 Amazon。Image Builder 映像管道与一个映像配方或容器配方相关联，该配方定义映像构建生命周期的构建、验证和测试阶段。

映像管道可与定义映像构建位置的基础设施配置相关联。您可以定义一些属性，例如，实例类型、子网、安全组、日志记录以及其他基础设施相关配置。还可以将映像管道与分发配置相关联，以定义您希望如何部署映像。

**托管映像**  
托管映像是 Image Builder 中的一种资源，由 AMI 或容器映像以及版本和平台等元数据组成。Image Builder 管道使用托管映像来确定构建时使用哪个基础映像。在本指南中，托管映像有时称为“映像”，但是，映像与 AMI 不同。

**映像配方**  
Image Builder 映像配方是一个文档，用于定义基础映像和要应用于基础映像以生成输出 AMI 映像所需配置的组件。您可以使用映像配方复制构建。可以使用控制台向导、或 API 共享、分支和编辑 Image Builder 图像配方。 Amazon CLI您可以将映像配方与版本控制软件一起使用，以维护可共享的版本化映像配方。

**容器配方**  
Image Builder 映像配方是一个文档，用于定义基础映像和要应用于基础映像以生成输出容器映像所需配置的组件。您可以使用容器配方复制构建。可以使用控制台向导、 Amazon CLI或 API 共享、分支和编辑 Image Builder 映像配方。您可以将容器配方与版本控制软件一起使用，以维护可共享的版本化容器配方。

**基础映像**  
基础映像是映像或容器配方文档中与组件一起使用的选定映像和操作系统。基础映像和组件组合在一起，定义了生成输出映像所需的配置。

**组件**  
组件定义在创建映像之前自定义实例（**构建组件**）或测试从创建的映像启动的实例（**测试组件**）所需的步骤及顺序。

组件是根据声明式纯文本 YAML 或 JSON 文档创建的，该文档描述用于构建、验证或测试由管道生成的实例的运行时配置。组件使用组件管理应用程序在实例上执行。组件管理应用程序会解析文档并运行所需的步骤。

创建组件后，使用映像配方或容器配方将它们分成一个或多个一组，用于定义构建和测试虚拟机或容器映像的计划。您可以使用由其拥有和管理的公共组件 Amazon，也可以创建自己的组件。有关组件的更多信息，请参阅 [Image Builder 如何使用 EC2 Task Orchestrator and Executor 应用程序管理组件](toe-component-manager.md)。

**组件文档**  
这是一个声明性的纯文本 YAML 或 JSON 文档，描述可应用于映像的自定义配置。该文档用于创建构建或测试组件。

**运行时阶段**  
EC2 Image Builder 有两个运行时阶段：**构建**和**测试**。每个运行时阶段都有一个或多个阶段，其配置由组件文档定义。

**配置阶段**  
以下列表显示了在**构建**和**测试**阶段运行的阶段：*构建阶段：*

构建阶段  
映像管道在运行时从构建阶段的构建时段开始。下载基础映像，并应用为组件的构建阶段指定的配置,以构建和启动实例。

验证阶段  
在 Image Builder 启动实例并应用所有构建阶段自定义后，验证阶段开始。在此阶段，根据组件为验证阶段指定的配置，Image Builder 确保所有自定义项均按预期运行。如果实例验证成功，Image Builder 将停止实例，创建映像，然后继续测试阶段。*测试阶段：*

测试时段  
在此阶段，Image Builder 会根据验证阶段成功完成后创建的映像启动实例。Image Builder 在此阶段运行测试组件，以验证实例是否正常并按预期运行。

容器主机测试阶段  
在 Image Builder 对您在容器配方中选择的所有组件运行测试阶段后，Image Builder 会针对容器工作流程运行此阶段。容器主机测试阶段可以运行其他测试，以验证容器管理和自定义的运行时配置。

**工作流**  
工作流程定义了 Image Builder 在创建新映像时执行的步骤顺序。所有映像都有构建、测试和分发工作流程。*工作流程类型*

`BUILD`  
涵盖所创建的每个映像的构建阶段配置。

`TEST`  
涵盖所创建的每个映像的测试阶段配置。

`DISTRIBUTION`  
涵盖创建的每个映像的分发阶段配置。

## 定价
<a name="image-builder-pricing"></a>

使用 EC2 Image Builder 创建自定义 AMI 或容器映像，无需任何费用。但是，标准定价仍适用于该过程中使用的其他服务。以下列表包括在创建、构建、存储和分发自定义 AMI 或容器映像时可能会产生费用的某些 Amazon Web Services 服务 镜像的使用情况，具体取决于您的配置。
+ 启动 EC2 实例
+ 在 Amazon S3 上存储日志
+ 使用 Amazon Inspector 验证映像
+ 为您存储 Amazon EBS 快照 AMIs
+ 将容器映像存储在 Amazon ECR 中
+ 将容器映像推入和拉出 Amazon ECR
+ 如果启用 Systems Manager 高级套餐并运行具有本地激活的 Amazon EC2 实例，则可能会通过 Systems Manager 向您收取资源费用

## 相关 Amazon Web Services 服务
<a name="image-builder-related-services"></a>

EC2 Image Builder 使用其他 Amazon Web Services 服务 来构建映像，具体取决于您的映像生成器配方配置。有关自定义映像的产品和服务集成的更多信息，请参阅[将产品和服务集成到 Image Builder 中](integrate-products-services.md)。