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

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

EC2 Image Builder 是什么?

EC2 Image Builder 是一个完全托管的Amazon该服务可以轻松自动创建、管理和部署自定义、安全且最新的服务器映像,这些映像是预先安装的,并预置了软件和设置以符合特定 IT 标准。

您可以使用Amazon管理控制台,Amazon CLI,或者在你的 API 中创建自定义映像 Amazon Web Services 账户 . 当您使用Amazon管理控制台,Image Builder 向导将指导您完成以下步骤:

  • 提供起始构件

  • 添加和删除软件

  • 自定义设置和脚本

  • 运行选定的测试

  • 将镜像分发到Amazon区域

您生成的镜像是在您的账户中创建的,您可以将其配置为定期安装操作系统补丁。

要对镜像部署进行故障排除和调试,您可以配置生成日志以添加到 Amazon Simple Storage Service (Amazon S3) 存储桶中。您还可以将实例生成应用程序配置为将日志发送到 CloudWatch。要接收映像生成状态通知,并将 Amazon Elastic Compute Cloud (Amazon EC2) key pair 与实例关联以执行手动调试和检查,您可以配置 SNS 主题。

除了最终镜像以外,Image Builder 还会创建镜像配方,这是生成和测试的源镜像和组件组合。您可以将镜像配方与现有的源代码版本控制系统和持续集成/持续部署管道一起使用,以实施可重复的自动化。

EC2 Image Builder 的功能

EC2 Image Builder 提供以下功能:

提高生产效率,并减少生成符合要求的最新镜像的操作

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

增加服务正常运行时间

Image Builder 允许您在部署之前使用两者测试镜像生成器Amazon-提供和定制的测试。Amazon只有在成功完成所有配置的测试时,镜像才会分发镜像。

提高部署安全性

Image Builder 允许您创建镜像以消除不必要的组件安全漏洞风险。你可以申请Amazon安全设置,以创建符合行业和内部安全标准的安全的现成镜像。Image Builder 还为受监管行业的公司提供设置集合。您可以使用这些设置,以帮助您快速轻松地生成符合 STIG 标准的镜像。有关通过 Image Builder 提供的 STIG 组件的完整列表,请参阅EC2 Image Builder STIG 组件.

集中的实施和跟踪管理

将内置集成与Amazon Organizations,通过使用 Image Builder,您可以通过实施策略以仅限账户从批准的 AMI 中运行实例。

简化跨资源共享 Amazon Web Services 账户 s

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 2019/2016/2012 R2

  • Windows 服务器版本 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 中的现有容器映像或亚马逊管理的容器镜像中进行选择。

Concepts

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

AMI

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

镜像管道

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

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

托管映像

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

镜像配方

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

集装箱配方

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

基本映像

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

Components

组件定义在创建映像之前自定义实例所需的步骤(a)生成组件),或者测试从创建的映像启动的实例(a测试组件)。

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

创建组件后,需要根据映像配方或容器配方将它们分成一个或多个组件以定义生成和测试虚拟机或容器镜像的计划。您可以使用拥有和管理的公共组件。Amazon,或者你可以创建自己的。有关组件的更多信息,请参阅EC2 Task Orchestrator and Executor组件管理器.

组件文档

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

运行时阶段

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

配置阶段

下表列出了在build测试阶段:

构建阶段:

构建阶段

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

验证阶段

在启动实例并应用所有构建阶段自定义项后,验证阶段将开始。在验证阶段,Image Builder 会根据为组件的验证阶段指定的配置来验证自定义项是否成功应用。如果实例验证成功,则会关闭实例并创建映像,而镜 Image Builder 将继续执行测试阶段。

测试阶段:

测试阶段

测试阶段只有一个阶段 —— 测试。在此阶段,将从验证阶段成功完成后创建的映像启动实例。Image Builder 在此阶段运行测试组件,以验证实例是否运行正常并按预期运行。

Pricing

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

  • 启动 EC2 实例

  • 将日志存储在 Amazon S3 上

  • 使用 Amazon Inspector 验证图片

  • 为 AMI 存储 Amazon EBS 快照

  • 在亚马逊 ECR 中存储容器映像

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

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

EC2 Image Builder 使用其他Amazon生成镜像的服务。根据 Image Builder 镜像配方或容器配方配置,可能使用以下服务。

Amazon License Manager

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

Amazon Systems Manager Automation

网络 ACL 和安全组都允许 (因此可到达您的实例) 的发起 ping 的Amazon Systems Manager自动化文档定义了以下操作:Amazon Systems Manager在托管实例上执行,Amazon资源的费用。Systems Manager 文档使用 JSON 或 YAML,并包括您指定的步骤和参数。您指定的步骤按顺序运行。自动化文档是Amazon Systems ManagerAutomation 类型的文档,与 “命令和策略文档” 相对。有关更多信息,请参阅 。Amazon Systems Manager自动化.

Amazon CloudWatch Logs

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

Amazon Elastic Container Registry (Amazon ECR)

亚马逊 ECR 是托管Amazon安全、可扩展且可靠的容器镜像注册表服务。您使用映像生成器创建的容器映像存储在默认区域的 Amazon ECR 中,也存储在您分发容器映像的任何区域中。有关 Amazon ECR 的更多信息,请参阅Amazon Elastic Container Reistry 用户指南.