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

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

EC2 是如何工作的

当您使用 EC2 Image Builder 管道控制台向导创建自定义映像时,向导会指导您完成以下步骤。

  1. 指定管道详细信息-输入有关您的管道的信息,例如名称、描述、标签和运行自动构建的时间表。如果愿意,您可以选择手动构建。

  2. 选择配方-在构建 AMI 或构建容器映像之间进行选择。对于这两种类型的输出图像,您可以输入配方的名称和版本,选择基础映像,然后选择要添加的组件以进行构建和测试。您也可以选择自动版本控制,以确保您的基础映像始终使用最新的可用操作系统 (OS) 版本。容器配方还为您的输出 Docker 容器映像定义 Dockerfiles 和目标 Amazon ECR 存储库。

    注意

    组件是映像配方或容器配方使用的构建块。例如,用于安装、安全强化步骤和测试的软件包。选定的基础映像和组件构成映像配方。

  3. 定义基础设施配置 — Image Builder 在您的账户中启动 EC2 实例,以自定义映像和运行验证测试。基础架构配置设置指定了将在构建Amazon Web Services 账户过程中在您中运行的实例的基础架构详细信息。

  4. 定义分发设置-在构建完成并通过所有测试后,选择要将映像分发到的Amazon区域。管道会自动将您的映像分发到运行构建的区域,您可以为其他区域添加映像分发。

您使用自定义基础映像构建的映像位于您的Amazon Web Services 账户。您可以通过输入构建计划来配置映像管道以生成映像的更新和补丁版本。构建完成后,您可以通过 Amazon Simple Notification Service (SNS) 接收通知。除了生成最终映像外,Image Builder 控制台向导还会生成可用于现有版本控制系统和持续集成/持续部署 (CI/CD) 流水线的配方,以实现可重复的自动化。您可以共享和创建食谱的新版本。

AMI 元素

Amazon Machine Image (AMI),包含用于部署 EC2 实例的预配置。

AMI 包含以下元素:

  • 虚拟机根卷的模板。当您启动 Amazon EC2 时,根设备卷包含用于启动实例的映像。当使用实例存储时,根设备是从 Amazon S3 中的模板创建的实例存储卷。有关更多信息,请参阅 Amazon EC2 根设备卷

  • 使用 Amazon EBS 时,根设备是从 EBS 创建的 EBS 卷

  • 启动权限决定了哪些Amazon Web Services 账户人可以使用 AMI 启动虚拟机。

  • 块储存设备映射数据,用于指定在启动后附加到实例的卷。

  • 每个区域、每个账户的唯一资源标识符

  • 元数据负载(例如标签)和属性,例如区域、操作系统、架构、根设备类型、提供商、启动权限、根设备的存储和签名状态。

  • Windows 映像的 AMI 签名,用于防止未经授权的篡改。有关更多信息,请参阅实例身份文档

默认配额

要查看Image Builder 器的默认配额,请参阅镜I mage Builder 终端节点和配额

Amazon 区域和终端节点

要查看Image Builder 器的服务终端节点,请参阅 Image Builder 终端节点和配额

组件管理

EC2 Image Builder 使用组件管理应用程序EC2 Task Orchestrator and Executor (EC2 TOE) 来帮助您协调复杂的工作流程、修改系统配置以及使用基于 YAML 的脚本组件测试您的系统。因为它EC2 TOE是一个独立的应用程序,所以不需要任何额外的设置。它可以在任何云基础设施和本地运行。要开始EC2 TOE将其用作独立应用程序,请参阅开始使用 EC2 TOE

Image Builder 用于EC2 TOE执行所有实例内活动。其中包括在拍摄快照之前构建和验证映像,以及在创建最终映像之前测试快照以确保其按预期运行。有关 Image BuilderEC2 TOE 如何管理其组件的更多信息,请参阅使用以下命令管理组件EC2 TOE。有关使用创建组件的更多信息EC2 TOE,请参阅EC2 Task Orchestrator and Executor组件管理器

图像测试

在创建最终映像之前,您可以使用EC2 TOE测试组件来验证您的映像,并确保其按预期运行。

通常,每个测试组件都包含一个 YAML 文档,其中包含测试脚本、测试二进制文件和测试元数据。测试脚本包含用于启动测试二进制文件的编排命令,可以使用操作系统支持的任何语言编写该测试二进制文件。退出状态代码指示测试结果。测试元数据描述了测试及其行为;例如,名称、描述、测试二进制文件的路径和预期持续时间。

创建的资源

创建管道时,除非满足以下条件,否则不会创建 Image Builder 外部的资源:

  • 通过流水线计划创建映像时

  • 当您从 Image Builder 控制台的 “操作” 菜单中选择 “运行流水线” 时

  • 当您从 API 运行以下任一命令时,或StartImagePipelineExecution者Amazon CLI:CreateImage

以下资源是在映像构建过程中创建的:

AMI 映像管道
  • EC2 实例(临时

  • EC2 实例上的Systems Manager 库存关联(如果已启用,则通过EnhancedImageMetadata Systems Manager 管理器状态管理器)

  • Amazon EC2

  • 与Amazon EC2 AMI 关联的亚马逊 EBS 快照

容器映像管道
  • 在 EC2 实例上运行的 Docker 容器(临时

  • EC2 实例上的Systems Manager 器库存关联(通过SystEnhancedImageMetadata ems Manager 器状态管理器)已启用)

  • Docker 容器映像

  • Dockerfile

创建映像后,所有临时资源都将被删除。

分配

EC2 Image Builder 可以将 AMI 或容器映像分发到任何Amazon区域。映像将复制到您在用于生成映像的账户中指定的每个区域。

对于 AMI 输出映像,您可以定义 AMI 启动权限以控制允许Amazon Web Services 账户哪些实例使用创建的 AMI 启动 EC2 实例。例如,您可以将镜像设置为私有、公有或与特定账户共享。如果您既将 AMI 分发到其他区域,又为其他账户定义启动权限,则启动权限将传播到分发 AMI 的所有区域的 AMI。

要使用 Image Builder 控制台更新您的分发设置,请按照以下步骤操作创建新的映像食谱版本(控制台)、或使用控制台创建新的容器食谱版本

共享资源

要与其他帐户或内部共享组件、食谱或图像Amazon Organizations,请参阅共享 EC2 Image Builder

Compliance

对于 CIS,EC2 Image Builder 使用 Amazon Inspector 对风险、漏洞以及与最佳实践和合规标准的偏差进行评估。例如,Image Builder 会评估意外的网络可访问性、未打补丁的 CVE、公共互联网连接和远程根登录激活。Amazon Inspector 是作为测试组件提供的,您可以选择将其添加到您的图片配方中。。为了进行强化,EC2 Image Builder 使用 STIG 进行验证。有关 Image 的完整列表,请参阅EC2 Task Orchestrator and ExecutorSTIG 组件