EC2 映像生成器 的工作原理
在使用 EC2 映像生成器 控制台创建黄金映像时,向导将指导您完成以下步骤。
-
选择源映像。 您选择一个源操作系统映像,例如,现有的 AMI。
-
创建映像配方。 您添加组件以创建映像管道的映像配方。组件是映像配方使用的构建块,例如,安装软件包、安全强化步骤和测试。选定的操作系统和组件组成了映像配方。组件是按指定顺序安装的,在选择后,无法重新排序。
-
输出。镜像生成器 使用选定的输出格式创建操作系统映像。
-
分发。 在映像管道中的映像通过测试后,您可以将其分发到选定的 AWS 区域。
您从黄金映像生成的映像位于您的 AWS 账户中。您可以输入生成计划,以便配置映像管道以生成更新和修补的 AMI 版本。在生成完成后,您可以通过 Amazon Simple Notification Service (SNS) 接收通知。除了生成最终映像以外,镜像生成器 还会生成一个映像配方,可以将其与现有版本控制系统和持续集成/持续部署 (CI/CD) 管道一起使用以实现可重复的自动化。您可以共享映像配方和创建新的映像配方版本。
AMI 组件
Amazon 系统映像 (AMI) 是 Amazon EC2 中的基本部署单元。它是预配置的虚拟机 (VM) 映像,其中包含用于部署 EC2 实例的操作系统和软件。
AMI 包括以下组件:
-
虚拟机根卷的模板。在启动 EC2 虚拟机时,根设备卷包含用于引导实例的映像。在使用实例存储时,根设备是通过 Amazon S3 中的模板创建的实例存储卷。有关更多信息,请参阅 Amazon EC2 根设备卷。
-
在使用 Amazon EBS 时,根设备是通过 EBS 快照创建的 EBS 卷。
-
启动权限,用于确定可以使用 AMI 启动虚拟机的 AWS 账户。
-
块储存设备映射数据,用于指定在启动后附加到实例的卷。
-
每个账户的每个区域的唯一资源标识符。
-
元数据负载(例如标签)和属性(例如区域、操作系统、架构、根设备类型、提供程序、启动权限、根设备存储以及签名状态)。
-
AMI 签名,用于防止未经授权的篡改。有关更多信息,请参阅实例身份文档。
默认配额
要查看 EC2 映像生成器 的默认配额,请参阅 EC2 Image Builder 终端节点和配额。
AWS 区域和终端节点
要查看 EC2 映像生成器 的服务终端节点,请参阅 EC2 Image Builder 终端节点和配额。
日志
EC2 映像生成器 与 AWS 服务集成可提供监控功能,帮助您排查映像生成过程中的问题。镜像生成器 可以跟踪显示映像生成过程中每个步骤的进度。您可以将映像生成应用程序配置为将日志发送到 CloudWatch 以及您提供的 S3 位置。有关 CloudWatch Logs 的更多信息,请参阅什么是 Amazon CloudWatch Logs?。
默认情况下,系统会启用 CloudWatch 日志记录支持。日志会保留在实例上并流式传输到 CloudWatch。在创建 AMI 的过程中,系统会从实例中删除日志。这些日志会流式传输到以下 LogStream:
-
LogGroup:
"/aws/imagebuilder/
<ImageName>
-
LogStream:
<ImageVersion>
/<ImageBuildVersion>
["x.x.x/x"]
可以通过删除与实例配置文件关联的以下权限,选择不执行 CloudWatch 流式传输。
"Statement": [ { "Effect": "Allow", "Action": [ "logs:CreateLogStream", "logs:CreateLogGroup", "logs:PutLogEvents" ], "Resource": "arn:aws:logs:*:*:log-group:/aws/imagebuilder/*" } ]
对于高级故障排除,您可以使用 AWS Systems Manager (SSM) Run Command 运行预定义的命令和脚本。有关更多信息,请参阅 EC2 映像生成器 故障排除。
组件管理器
镜像生成器 使用组件管理应用程序,以帮助您编排复杂的工作流程,修改系统配置以及测试系统,而无需编写代码。该应用程序使用声明性的文档架构。由于它是一个单独的应用程序,因此,它不需要进行额外的服务器设置。它可以在任何云基础设施和本地运行。
EC2 映像生成器 使用该应用程序执行所有实例上的活动,例如生成、验证和测试。您定义一个文档以描述如何生成、验证和测试映像。EC2 映像生成器 将组件发送到实例,该应用程序执行定义的阶段、步骤和操作以解释组件并将其应用于实例。在完成后,该应用程序向 EC2 映像生成器 发送摘要。如果在管道配置中指定了 S3 存储桶,它还会将详细的执行输出发送到 Amazon S3。然后,EC2 映像生成器 使用 AWS 强化和清理映像的最佳实践。
-
生成阶段。修改映像。例如,您可以配置映像以安装应用程序或修改操作系统防火墙设置。在创建映像之前,将执行验证阶段以作为生成阶段的一部分。
-
测试阶段。在创建新的映像后,将对该映像执行测试。
EC2 映像生成器 按如下方式使用组件管理应用程序。
-
您定义一个 EC2 映像生成器 组件,它是一个描述如何生成、验证和测试映像的文档。
-
EC2 映像生成器 将文档和该应用程序复制到实例以分派要执行的工作。
-
该应用程序执行文档中定义的阶段、步骤和操作。
有关 镜像生成器 在编排工作流程时使用的组件管理器的更多信息(包括有关文档、支持的操作模块和 STIG 的信息),请参阅 EC2 映像生成器 组件管理器。
创建的资源
在创建管道时,不会创建 镜像生成器 外部的资源。只有在通过管道计划、镜像生成器 控制台中的 Run Pipeline (运行管道) 操作、StartImagePipelineExecution
API 或 CreateImage
API 创建映像时,才会创建 镜像生成器 外部的资源。在映像创建期间,将创建以下资源。
-
Amazon EC2 实例
-
SSM Inventory 关联(通过 SSM State Manager)(如果启用了
EnhancedImageMetadata
) -
Amazon EC2 AMI
-
EBS 快照(与 Amazon EC2 AMI 关联)
在创建 AMI 后,将删除 Amazon EBS 快照和 Amazon EC2 AMI 以外的所有资源。