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

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

EC2 Image Builder 是什么?

EC2 Image Builder 是一款完全托管式Amazon Web Service的,可帮助您自动创建、管理和部署自定义、安全映像和 up-to-date 服务器映像。您可以使用Amazon Web Services Management ConsoleAmazon 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,可提供详细的事件指标、日志记录和监控。这些信息可帮助您跟踪活动、解决映像生成问题以及根据事件通知创建自动化。

  • Amazon CloudWatch Logs — 监控、存储和访问您的Image Builder 日志文件。或者,您可以将日志保存到 S3 存储桶。有关 CloudWatch 日志的更多信息,请参阅什么是亚马逊 CloudWatch 日志? 亚马逊 CloudWatch 日志用户指南中。

  • 亚马逊 EventBridge — Connect 来自您账户中 Image Builder 活动的实时事件数据流。有关的更多信息 EventBridge,请参阅什么是亚马逊 EventBridge? 亚马逊 EventBridge 用户指南中。

  • Amazon CloudTrail— 监控发送到的Image Builder 事件 CloudTrail。有关的更多信息 CloudTrail,请参阅什么是Amazon CloudTrail? Amazon CloudTrail用户指南中。

  • 亚马逊Simple Notification Service (Amazon SNS) — 如果已配置,请将有关您的图像状态的详细消息发布到您订阅的 SNS 主题。有关 Amazon SNS 的更多信息,请参阅什么是 Amazon SNS? Amazon Simple Notification Servic

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 组件的完整列表,请参阅EC2 Image Builduce

集中的实施和跟踪管理

使用与的内置集成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

  • Windows Server 2022/2019/2016/2012 R2

  • Windows Server 版本 2004 和 20H2

  • Red Hat Enterprise Linux (RHEL) 8 和 7

  • CentOS 8 和 7

  • Ubuntu 20、18 和 16

  • SUSE Linux Enterprise Server (SUSE) 15

支持的镜像格式

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

概念

以下术语和概念是您了解和使用 EC2 Image Builder 的核心内容。

AMI

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

镜像管道

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

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

托管镜像

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

镜像配方

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

容器配方数

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

基础映像

基础映像是您的镜像或容器配方文档中使用的选定映像和操作系统以及组件。基础图像和组件定义相结合,为输出图像生成所需的配置。

组件

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

组件是根据声明式纯文本 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 将为容器工作流运行此阶段。容器主机测试阶段可以运行其他测试,以验证容器管理和自定义运行时配置。

定价

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

  • 启动 EC2 实例

  • 在 Amazon S3 上存储日志

  • 使用Amazon Inspector 验证图片

  • 为您的 AMI 存储亚马逊 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 Systems Manager 自动化

Amazon Systems Manager自动化文档定义了对您的托管实例和Amazon资源Amazon Systems Manager执行的操作。Systems Manager 文档使用 JSON 或 YAML,并包括您指定的步骤和参数。您指定的步骤按顺序运行。自动化文档是自动化类型的Amazon Systems Manager文档,与命令和策略文档相反。有关更多信息,请参阅 Amazon Systems Manager 自动化

亚马逊 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 ECR 用户指南