EC2 Image Builder 常见问题

一般性问题

EC2 Image Builder 可简化 Linux 或 Windows 映像的创建、维护、验证、共享和部署,以便与 Amazon EC2 一起使用或在本地使用。

提高 IT 生产力

EC2 Image Builder 简化了构建、维护和部署安全合规的映像过程,且无需编写和维护自动化代码。将自动化任务交给 Image Builder 处理可释放资源并节省 IT 时间。

更易于保护

EC2 Image Builder 允许您仅使用基本组件创建映像,从而减少暴露于安全漏洞的风险。您还可以应用 AWS 提供的安全性设置进一步保护映像,以达到内部安全标准。

适用于 AWS 和本地的简单映像管理

EC2 Image Builder 与 AWS VM Import/Export (VMIE) 结合使用,允许您为 Amazon EC2 (AMI) 以及本地 VM 格式(VHDX、VMDK 和 OVF)创建和维护黄金映像。

内置验证支持

EC2 Image Builder 允许您在生产中使用映像之前,通过 AWS 提供的测试和您自己的测试轻松验证映像。这样做可以减少通常由于测试不足而产生的映像错误,这种错误可能导致停机。可以设置策略,仅在映像通过指定测试后,才将他们部署到特定 AWS 区域。

集中实施策略

EC2 Image Builder 支持版本控制,便于进行修订管理。可与 AWS Resource Access Manager 和 AWS Organizations 进行集成,允许在 AWS 账户之间共享自动化脚本、配方和映像。Image Builder 还支持信息安全和 IT 团队能够更好地对映像实施策略和合规。

您可以将 Image Builder 与 AWS 控制台、AWS CLI 或 API 一起使用,在自己的 AWS 账户中创建映像。与 AWS 控制台一起使用时,Image Builder 提供了一个分步向导,包括以下步骤:

  • 第 1 步:提供基本操作系统映像 
  • 第 2 步:选择软件进行安装 
  • 第 3 步:选择并运行测试 
  • 第 4 步:将映像分配到选定区域

您构建的映像位于您的 AWS 账户中,可以配置为持续修补。您可以监控进度并让 CloudWatch 事件通知您进行故障排除和调试。除了生成最终映像之外,Image Builder 还生成一个“配方”文件,该文件可与现有的源代码版本控制系统和 CI/CD 管道一起使用,以实现可重复的自动化。

EC2 Image Builder 与 AWS VM Import/Export (VMIE) 结合使用,允许您为 Amazon EC2 (AMI) 以及本地 VM 格式(VHDX、VMDK 和 OVF)创建和维护黄金镜像。您可以使用现有的 AMI(您自己的自定义 AMI,或从 Image Builder 托管式镜像列表中选择)作为映像构建过程的起点。或者,您可以使用 VMIE 将 VMDK、VHDX 或 OVF 格式的镜像导入 AMI,然后可以将其作为构建镜像的起点。最终生成的镜像为 AMI 格式,可以使用 VMIE 将其导出为 VHDX、VMDK 和 OVF 格式。

Image Builder 支持:

  • Amazon Linux 2
  • Windows Server 2012、2016 和 2019
  • Ubuntu Server 16、18
  • Red Hat Enterprise Linux (RHEL) 7、8
  • Cent OS 7、8
  • SUSE Linux Enterprise Server (SLES) 15

Image Builder 以 AMI 格式输出服务器镜像。您可以使用 VMIE 将这些 AMI 导出到 VHDX、VMDK 或 OVF 以供本地部署使用。

Image Builder 配方是一个文件,它表示由自动化管道生成的映像的最终状态,使您能够确定性的重复构建。可在 Image Builder UI 外部共享、派生和编辑配方。您可以将配方与版本控制软件一起使用,来维护可用于共享和跟踪更改的版本控制配方。

除了用于创建、存储和共享映像的底层 AWS 资源的成本外,Image Builder 免费提供。 

持续修补以保持映像处于最新状态

可将新映像配置为基于触发器生成,例如每当有待处理的更新时(如源 AMI 更新、安全性更新、合规性更新、新测试等),或按规定的时间间隔生成。您可以应用待处理的更改来指定使用最新更改生成新的黄金映像的“构建间隔”。可使用 Image Builder 测试最新映像,在更新的版本上验证您的应用程序。您还可以通过 SNS 队列订阅通知,等待对使用 Image Builder 构建的映像更新。您可以将这些通知用作构建新映像的触发器。

自定义映像

您可以从注册的软件源(如 RPM/Debian 软件包存储库以及 Windows 上的 MSI 和自定义安装程序)自定义软件映像。除了预注册的 AWS 软件源,您还可以注册一个或多个存储库和 Amazon S3 位置(其中包含待安装的软件)。您可以为需要交互式输入的安装工作流提供特定于安装程序的“无人参与”机制(如问答文件)。

旨在满足安全性与合规性要求的预设设置

Image Builder 允许您定义安全性设置的集合,您可以编辑、更新和使用这些设置来强化使用 Image Builder 构建的映像。设置集合旨在满足适用的合规性标准。这些标准可能是由您的组织或您所在行业的监管机构强制执行的。AWS 提供了一系列设置,有助于遵守通用的行业法规。您可以直接或以修改后的格式应用设置集合。 例如,AWS 针对 STIG 提供的设置关闭了非必要的开放端口,并启用了软件防火墙。

不,AWS 的设置集合代表实现合规的建议指南,并不保证合规。您需要与合规团队和审计员合作验证合规性。AWS 提供的设置可以根据您的需要进行修改,并能保存以供在图库中复用。

设置集合可以从头开始创建,也可以从 AWS 提供的模板中获取,并存储在注册的 Amazon S3 位置。您可以构建自己的集合来应用安全设置,例如,确保应用安全补丁、安装防火墙、关闭某些端口、不允许程序之间共享文件、安装反恶意软件、创建强密码、保留备份、尽可能使用加密、禁用弱加密、日志记录/审计控制、删除个人数据等。您可以将自定义设置添加到图库中。

测试

Image Builder 中的测试框架允许您在部署到 AWS 区域之前捕获操作系统更新引起的不兼容性。您可以同时运行 - AWS 提供的测试和您自己的测试,管理测试运行、结果并在测试通过时控制下游操作。AWS 提供的测试示例包括:测试 AMI 是否可以引导至登录提示,测试 AMI 是否可以运行示例应用程序等。您也可以在映像上运行自己的测试。

Image Builder 中的每个测试都包含一个测试脚本、测试二进制文件和测试元数据。 测试脚本包含用于启动测试二进制文件的编排命令,该二进制文件可以用任何语言编写,也可以在操作系统支持的任何测试框架中编写(如 Windows 上的 PowerShell 和 Linux 上的 bash、python、ruby 等),测试结果用退出状态代码表示。测试元数据还包含诸如名称、描述、测试二进制文件路径、预期持续时间等属性。

分配与共享

Image Builder 与 AWS Organizations 相集成,允许使用现有机制跨 AWS 账户共享 AMI。Image Builder 可以修改 AMI 启动权限,以控制除拥有者外,还允许哪些 AWS 账户使用 AMI 启动 EC2 VM(如私有账户、公共账户以及与特定账户的共享账户)。您还可以让 AWS Organization 主账户对成员账户实施约束,仅允许通过批准的和符合要求的 AMI 启动实例。有关与 AWS Organizations 集成的详细信息,请参阅 Image Builder 文档。

Image Builder 使用 Amazon ECR(容器注册表托管服务)作为容器映像的输入和输出。您可以通过配置策略来管理每个存储库的权限并限制对 IAM 用户、角色或 AWS 账户的访问。ECR 与 RAM 和 AWS Organizations 集成,允许跨区域和账户共享、分配和复制容器映像。ECR 使用 IAM 策略控制对资源的访问。

Image Builder 可使用现有的 AMI 共享机制将 AMI 复制到选定的 AWS 区域。测试通过时可使用 Image Builder 来控制分配。

Image Builder 可与代码构建和代码管道等 AWS CI/CD 服务集成,以帮助实现用于构建、测试和部署 AMI 的端到端 CI/CD 管道。

故障排除和调试

Image Builder 会跟踪并显示映像构建过程中每个步骤的进度。此外,还可以使 Image Builder 将日志发送到 CloudWatch。对于高级故障排除,可以使用 SSM runCommand 界面运行任意命令和脚本。