创建基础设施配置 - EC2Image Builder
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

创建基础设施配置

本节介绍如何使用 Image Builder 控制台或中的imagebuilder命令 Amazon CLI 来创建基础架构配置,

Console

要从 Image Builder 控制台创建基础设施配置资源,请执行以下步骤:

  1. 打开 EC2 Image Builder 控制台,网址为https://console.aws.amazon.com/imagebuilder/

  2. 从导航窗格中选择基础设施配置

  3. 选择创建基础设施配置

  4. 概述 部分中,输入以下必要信息:

    • 输入基础设施配置资源的名称

    • 选择要与实例配置文件关联的IAM角色,以获得构建和测试实例的组件权限。Image Builder 使用这些权限来下载和运行您的组件 CloudWatch、向其上传日志,以及执行配方中组件指定的任何其他操作。

  5. Amazon 基础设施面板中,您可以配置其余可用的基础设施设置。输入以下必要信息:

    • 实例类型:您可以为此构建指定一个或多个实例类型。该服务将根据可用性选择其中一种实例类型。

      注意

      Mac 实例运行于专属主机上的 .metal 实例类型。您的实例类型必须与为运行它的主机定义的类型之一相匹配。有关 Mac 实例的更多信息以及原生支持 macOS 操作系统的实例类型列表,请参阅亚马逊用户指南中的EC2亚马逊 Mac 实例。EC2

    • SNS主题(可选)-选择一个SNS主题以接收来自 EC2 Image Builder 的通知和警报。

    如果您没有为以下设置提供值,则这些设置将使用特定于服务的默认值(如适用)。

    • VPC、子网和安全组 — Image Builder 使用您的默认子网VPC和子网。有关配置VPC接口端点的更多信息,请参阅Image Builder 和 Amazon PrivateLink 接口VPC端点

    • 故障排除设置部分,配置以下值:

      • 默认情况下,失败时终止实例复选框为选中状态。但是,当构建失败时,您可以登录EC2实例进行故障排除。如果您希望实例在构建失败后继续运行,请清除该复选框。

      • 密钥对 — 如果您的EC2实例在构建失败后继续运行,您可以创建密钥对或使用现有密钥对登录实例并进行故障排除。

      • 日志:您可以指定一个 S3 存储桶,Image Builder 可以在其中写入应用程序日志,以帮助构建和测试排查问题。如果您未指定 S3 存储桶,Image Builder 会将应用程序日志写入实例。

    • 实例元数据设置部分,您可以配置以下值以应用于 Image Builder 用于构建和测试映像的EC2实例:

      • 选择元数据版本以确定例如元数据检索请求是否EC2需要签名的令牌标头。

        • V1 和 V2(令牌可选):如果您未选择任何内容,则为默认值。

        • V2(令牌必填)

        注意

        我们建议您将 Image Builder 从管道版本启动的所有EC2实例配置为使用,IMDSv2以便实例元数据检索请求需要签名的令牌标头。

      • 元数据标记响应跃点限制 – 元数据令牌可以传输的网络跃点数。最小跃点数:1,最大跃点数:64,默认为一跃点。

    • 实例放置设置部分,您可以配置以下值以应用于 Image Builder 用来构建和测试您的映像的EC2实例:

      • 您可以选择 Image Builder 在创建映像期间启动实例的可用区

      • (可选)为运行您启动的实例的服务器选择租赁。默认情况下,EC2实例在共享租赁硬件上运行。这表示多个 Amazon Web Services 账户 可能会共享相同物理硬件。具有 dedicated 租期的实例在单租户硬件上运行。具有 host 租期的实例在专属主机上运行。

        在构建自定义映像之前,Mac 实例需要一台作为先决条件创建的专属主机。为您的 macOS 映像选择 host。然后,您可以选择目标主机或主机资源组来启动实例,但如果您的专属主机启用了自动置放功能,则不需要这样做。有关更多信息,请参阅 Amazon EC2 用户指南中的自动投放

        • 租赁主机 ID - 运行实例的专属主机的 ID。

        • 租赁主机资源组 — 启动实例的主机资源组的 Amazon 资源名称 (ARN)。

  6. 基础设施标签部分(可选)中,您可以为 Image Builder 在构建过程中启动的 Amazon EC2 实例分配元数据标签。输入标签作为键值对。

  7. 标签部分(可选)中,您可以将元数据标签分配给 Image Builder 作为输出创建的基础设施配置资源。输入标签作为键值对。

Amazon CLI

以下步骤说明如何使用 Amazon CLI中的 Image Builder create-infrastructure-configuration 命令为您的映像配置基础设施。步骤 2 中的命令采用您在步骤 1 中创建的文件。对于这些示例,步骤 1 中的文件称为 create-infrastructure-configuration.json

  1. 创建CLI输入JSON文件

    以下示例显示了您可能为基础架构配置创建的JSON文件的变体。使用文件编辑工具创建自己的JSON文件。

    示例 1:用于保留编译失败后的实例的配置

    此示例指定了两种实例类型,即 m5.largem5.xlarge。我们建议指定多种实例类型,因为这允许 Image Builder 从具有足够容量的池中启动实例。这可以减少临时的生成失败次数。

    instanceProfileName 规定了实例配置文件,该文件用于为实例提供执行自定义活动所需的权限。例如,如果您具有一个从 Amazon S3 中检索资源的组件,则实例配置文件需要具有访问这些文件的权限。实例配置文件还需要一组最低权限才能让 EC2 Image Builder 成功与实例通信。有关更多信息,请参阅 准备好使用 Image Builder 构建自定义映像

    { "name": "ExampleInfraConfigDontTerminate", "description": "An example that will retain instances of failed builds", "instanceTypes": [ "m5.large", "m5.xlarge" ], "instanceProfileName": "myIAMInstanceProfileName", "securityGroupIds": [ "sg-12345678" ], "subnetId": "sub-12345678", "logging": { "s3Logs": { "s3BucketName": "my-logging-bucket", "s3KeyPrefix": "my-path" } }, "keyPair": "myKeyPairName", "terminateInstanceOnFailure": false, "snsTopicArn": "arn:aws:sns:us-west-2:123456789012:MyTopic" }
    示例 2:具有自动置放功能的 macOS 配置

    此示例为专属主机启用了自动置放功能的 Mac 实例指定实例类型和置放位置。

    { "name": "macOSInfraConfigAutoPlacement", "description": "An example infrastructure configuration for macOS.", "instanceProfileName": "EC2InstanceProfileForImageBuilder", "instanceTypes": ["mac1.metal, mac2.metal"], "terminateInstanceOnFailure": false, "placement": { "tenancy": "host" } }
    示例 3:指定了主机 ID 的 macOS 配置

    此示例为以特定专属主机为目标的 Mac 实例指定实例类型和置放位置。

    { "name": "macOSInfraConfigHostPlacement", "description": "An example infrastructure configuration for macOS.", "instanceProfileName": "EC2InstanceProfileForImageBuilder", "instanceTypes": ["mac2-m1ultra.metal"], "terminateInstanceOnFailure": false, "placement": { "tenancy": "host", "hostId" : "h-1234567890abcdef0" } }
  2. 当您运行以下命令时,使用您作为输入而创建的文件。
    aws imagebuilder create-infrastructure-configuration --cli-input-json file://create-infrastructure-configuration.json