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

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

EC2 Image Builder 是什么?

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

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

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

  1. 为自定义选择基础映像。

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

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

  4. 运行选定的测试或创建自定义测试组件。

  5. 将 AMI 分发到 Amazon Web Services 区域 和。 Amazon Web Services 账户

  6. 如果您的 Image Builder 管道创建了用于分发的自定义 Amazon 系统映像 (AMI) Amazon Web Services 账户,则可以授权其他组织和 OU 从您的账户启动该映像。您的账户需要支付与 AMI 相关的费用。

Image Builder 与以下内容 Amazon Web Services 集成,可提供详细的事件指标、日志记录和监控。此信息可帮助您跟踪活动、解决映像构建问题以及根据事件通知创建自动化。

EC2 Image Builder 的功能

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 组件的完整列表,请参阅 Amazon 托管 EC2 Image Builder 的 STIG 强化组件

集中的实施和跟踪管理

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

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

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

  • 组件

  • 映像

  • 映像配方

  • 容器配方数

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

支持的操作系统

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

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

Amazon Linux

2 和 2023

CentOS

7 和 8

CentOS Stream

8

Red Hat Enterprise Linux (RHEL)

7 和 8

SUSE Linux Enterprise Server (SUSE)

12 和 15

Ubuntu

18.04 LTS、20.04 LTS 和 22.04 LTS

Windows Server

2012 R2、2016、2019 和 2022

支持的映像格式

对于自定义 AMI 映像,您可以选择现有的 AMI 以作为起点。对于 Docker 容器镜像,您可以从托管的公共镜像 DockerHub、Amazon ECR 中的现有容器镜像或亚马逊管理的容器镜像中进行选择。

概念

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

AMI

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

映像管道

映像管道是用于在 Amazon上构建安全的 AMI 和容器映像的自动化框架。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,也可以创建自己的组件。有关组件的更多信息,请参阅 EC2 Task Orchestrator and Executor 组件管理器

组件文档

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

运行时阶段

EC2 Image 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 验证映像

  • 为您的 AMI 存储 Amazon EBS 快照

  • 将容器映像存储在 Amazon ECR 中

  • 将容器映像推入和拉出 Amazon ECR

  • 如果启用 Systems Manager 高级套餐并运行具有本地激活的 Amazon EC2 实例,则可能会通过 Systems Manager 向您收取资源费用

EC2 Image Builder 使用其他 Amazon Web Services 来构建映像。根据您的 Image Builder 映像配方或容器配方配置,可能会使用以下服务。

Amazon License Manager

Amazon License Manager 允许您从帐户许可证配置存储中创建和应用许可证配置。对于每个 AMI,您可以使用 Image Builder 附加先前存在的许可配置,您可以 Amazon Web Services 账户 在 Image Builder 工作流程中访问该配置。许可证配置只适用于 AMI。Image Builder 只能使用预先存在的许可配置,不能直接创建或修改许可配置。License Manager 设置不会在您的账户中必须启用的跨 Amazon Web Services 区域 区域复制,例如,在ap-east-1(亚太地区:香港)和me-south-1(中东:巴林)区域之间。

Amazon CloudWatch 日志

您可以使用 Amazon CloudWatch Logs 来监控、存储和访问来自 EC2 实例 Amazon CloudTrail、Amazon Route 53 和其他来源的日志文件。

Amazon Elastic Container Registry (Amazon ECR)

Amazon ECR 是一项安全、可扩展且可靠的托管 Amazon 容器镜像注册服务。使用 Image Builder 创建的容器映像会存储在源区域(构建运行的区域)和分配容器映像的任何区域的 Amazon ECR 中。有关 Amazon ECR 的更多信息,请参阅 Amazon Elastic Container Registry 用户指南