Image Builder 是什么? - EC2Image Builder
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

Image Builder 是什么?

EC2Image Builder 是一款完全托管 Amazon Web Services 服务 的软件,可帮助您自动创建、管理和部署自定义、安全的 up-to-date服务器映像。您可以使用 Amazon Web Services Management Console Amazon Command Line Interface、或APIs在中创建自定义映像 Amazon Web Services 账户。

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

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

  • 为您的管道命名并添加标签。

  • 定义元数据和漏洞扫描设置。

  • 设置管道计划。

您可以选择现有配方或创建新配方。

  • 为自定义选择基础映像。

  • 在基础映像中添加软件或从中移除软件。

  • 使用构建组件自定义设置和脚本。

  • 选择要运行的测试组件。

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

  • 选择一个IAM角色以与 Image Builder 在映像创建过程中启动的实例的实例配置文件相关联。

  • 选择一个或多个可在启动时应用的实例类型。

  • 选择亚马逊简单通知服务 (SNS) 主题以接收来自 Image Builder 的通知。

  • 指定VPC适用于映像创建过程的子网和安全组。

  • 选择故障排除设置,例如 Image Builder 写入日志的位置,以及在出现故障时是终止构建实例(默认)还是保持其正常运行来进行进一步的故障排除。

  • 选择 Imag Amazon Web Services 区域 e Builder 分发您的亚马逊系统映像 (AMI) 或容器映像的位置。

  • 如果您的 Image Builder 管道创建了AMI,Image Builder 还支持以下配置:

    • 选择KMS用于加密的密钥。

    • 配置跨组织AMI共享 Amazon Web Services 账户 和 Organizations

    • 将 License Manager 自管理许可证与分配的映像相关联。

    • 为您的映像配置启动模板。

Image Builder 的特征

EC2Image 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 B STIG uilder 的强化组件

集中的实施和跟踪管理

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

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

EC2Image Builder 与 Amazon Resource Access Manager (Amazon RAM) 集成,允许您与任何人 Amazon Web Services 账户 或通过共享某些资源 Amazon Organizations。 EC2可以共享的 Image Builder 资源有:

  • 组件

  • 映像

  • 映像配方

  • 容器配方数

有关更多信息,请参阅 与共享 Image Builder 资源 Amazon RAM

支持的操作系统

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

操作系统/发行 支持的版本

Amazon Linux

2 和 2023

CentOS

7 和 8

CentOS Stream

8

macOS

12.x (Monterey)、13.x (Ventura)、14.x (Sonoma)

红帽企业 Linux (RHEL)

7、8 和 9

SUSELinux 企业服务器 (SUSE)

12 和 15

Ubuntu

18.04 LTS、20.04 LTS、22.04 和 24.04 LTS LTS

Windows Server

2012 R2、2016、2019 和 2022

支持的映像格式

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

概念

以下术语和概念对您理解和使用 EC2 Image Builder 至关重要。

AMI

亚马逊系统映像 (AMI) 是亚马逊的基本部署单元EC2,也是您可以使用 Image Builder 创建的映像类型之一。AMI是预先配置的虚拟机映像,其中包含用于部署EC2实例的操作系统 (OS) 和预安装的软件。有关更多信息,请参阅 Amazon 系统映像 (AMI)

映像管道

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

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

托管映像

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

映像配方

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

容器配方

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

基础映像

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

组件

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

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

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

组件文档

描述可应用于图像的自定义配置的声明性、纯文本YAML或JSON文档。该文档用于创建构建或测试组件。

运行时阶段

EC2Image Builder 有两个运行阶段:构建测试。每个运行时阶段都有一个或多个阶段,其配置由组件文档定义。

配置阶段

以下列表显示了在构建测试阶段运行的阶段:

构建阶段:
构建阶段

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

验证阶段

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

测试阶段:
测试时段

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

容器主机测试阶段

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

工作流

工作流程定义了 Image Builder 在创建新映像时执行的步骤顺序。所有映像都有构建和测试工作流程。容器还有一个额外的分配工作流程。

工作流程类型
BUILD

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

TEST

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

DISTRIBUTION

涵盖容器映像的分配工作流程。

定价

使用 EC2 Image Builder 创建自定义镜像AMI或容器镜像不收取任何费用。但是,标准定价仍适用于该过程中使用的其他服务。以下列表包括在创建、构建、存储和分发自定义镜像AMI或容器映像时可能产生费用的某些 Amazon Web Services 服务 镜像的使用情况,具体取决于您的配置。

  • 启动 EC2 实例

  • 在 Amazon S3 上存储日志

  • 使用 Amazon Inspector 验证映像

  • 为您存储 Amazon EBS 快照 AMIs

  • 在 Amazon 中存储容器图片 ECR

  • 将容器镜像推送和拉出亚马逊 ECR

  • 如果 Systems Manager 高级套餐已开启,并且亚马逊EC2实例在本地激活的情况下运行,则可能会通过 Systems Manager 向你收取资源费用

EC2根据您的 Image Builder 配方配置,Image Builder 使用其他 Amazon Web Services 服务 来构建映像。有关自定义映像的产品和服务集成的更多信息,请参阅将产品和服务集成到 Image Builder 中