

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

# 教程：使用 Amazon EC2 资源创建托管计算环境
<a name="create-compute-environment-managed-ec2"></a>

完成以下步骤，以使用 Amazon Elastic Compute Cloud（Amazon EC2）资源创建托管式计算环境。

1. 打开 Amazon Batch 控制台，网址为[https://console.aws.amazon.com/batch/](https://console.amazonaws.cn/batch/)。

1. 在导航栏中，选择 Amazon Web Services 区域 要使用的。

1. 在导航窗格中，选择**环境**。

1. 选择**创建环境**，然后选择**计算环境**。

1. 配置环境。

   1. 在**计算环境的配置**中，选择 **Amazon Elastic Compute Cloud (Amazon EC2)**。

   1. 对于**编排类型**，请选择**托管**。

   1. 对于**名称**，为计算环境指定唯一名称。名称最长可以包含 128 个字符。可以包含大小写字母、数字、连字符（-）和下划线（\_）。

   1. 对于**服务角色**，请选择服务相关角色，该角色允许 Amazon Batch 服务代表您调用所需 Amazon 的 API 操作。例如，选择 **AWSServiceRoleForBatch**。有关更多信息，请参阅 [将服务相关角色用于 Amazon Batch](using-service-linked-roles.md)。

   1. 对于 **Instance role (实例角色)**，请选择创建新的实例配置文件或使用附加了所需 IAM 权限的现有实例配置文件。此实例配置文件允许为您的计算环境创建的 Amazon ECS 容器实例代表您调用所需 Amazon 的 API 操作。有关更多信息，请参阅 [Amazon ECS 实例角色](instance_IAM_role.md)。如果您选择创建新实例配置文件，则将为您创建所需的角色 (`ecsInstanceRole`)。

   1. （可选）展开**标签**。

      1. （可选）对于 **EC2 标签**，选择**添加标签**以向在计算环境中启动的资源添加标签。然后，输入一个**键**和可选的**值**。选择 **Add tag（添加标签）**。

      1. （可选）在**标签**中，选择**添加标签**。然后，输入一个**键**和可选的**值**。选择 **Add tag（添加标签）**。

         有关更多信息，请参阅 [标记 Amazon Batch 资源](using-tags.md)。

   1.  选择**下一步**。

1. 在**实例配置**部分：

   1. （可选）对于**使用竞价型实例启用**，请开启 Spot。有关更多信息，请参阅[竞价型实例](https://docs.amazonaws.cn/AWSEC2/latest/UserGuide/using-spot-instances.html)。

   1. （仅**限竞价）对于按需价格**的最大百分比，请选择竞价型实例价格与实例启动前该实例类型的 On-Demand 价格相比的最大百分比。例如，如果您的最高价格为 20%，则竞价价格必须低于该 EC2 实例当前 On-Demand 价格的 20%。您始终支付最低 (市场) 价格，并且绝不会高于您的最大百分比。如果您将此字段留空，则默认值为 On-Demand 价格的 100%。

   1. （仅限 Spot）对于**竞价型实例集角色**，选择一个现有的 Amazon EC2 竞价型实例集 IAM 角色以应用于您的 Spot 计算环境。如果您没有现有的 Amazon EC2 竞价型实例集 IAM 角色，则必须先创建一个。有关更多信息，请参阅 [Amazon EC2 竞价型实例集角色](spot_fleet_IAM_role.md)。
**重要**  
要在创建时标记您的竞价型实例，您的 Amazon EC2 竞价型队列 IAM 角色必须使用更新的**AmazonEC2SpotFleetTaggingRole**托管策略。**AmazonEC2SpotFleetRole**托管策略没有标记竞价型实例所需的权限。有关更多信息，请参阅[创建时未标记的竞价型实例](spot-instance-no-tag.md)和[标记资源](tag-resources.md)。

   1. 对于 **Minimum vCPUs**，选择您的计算环境应保留的 vCPU 的最小数目，而无论作业队列需求如何。

   1. 对于 **Desired vCPUs**，请选择您的计算环境在启动时应使用的 vCPU 数量。当作业队列需求增大时， Amazon Batch 会增加计算环境中所需的 vCPU 数量并添加 EC2 实例 (最高可达最大 vCPU 数)。当需求减少时， Amazon Batch 会减少计算环境中所需的 vCPU 数量并删除实例 (减少至最小 vCPU 数)。

   1. 对于 **Maximum vCPUs**，选择您的计算环境可以横向扩展到的 vCPU 的最大数目，而无论作业队列需求如何。

   1. （可选）对于**缩减延迟（分钟）**，请选择任务完成后实例在计算环境中 Amazon Batch 保持运行的最短时间（以分钟为单位）。

   1. 对于**允许的实例类型**，选择可启动的 Amazon EC2 实例类型。您可以指定实例系列以在这些系列中启动任何实例类型（例如，`c5`、`c5n` 或 `p3`），或者，您可以指定系列中的特定大小（例如 `c5.8xlarge`）。Metal 实例类型不在实例系列中。例如，`c5` 不包括 `c5.metal`。

      Amazon Batch 如果您选择以下选项之一，则可以为您选择实例类型：
      + `optimal`根据区域可用性从现代 m、c 和 r 实例系列中选择实例类型。 Amazon Batch 定期用这些家族中的新一代更新资源池。
      + `default_x86_64` 会选择符合作业队列的资源需求的基于 x86 的实例类型（从 m6i、c6i、r6i 和 c7i 实例系列中选择）。
      + `default_arm64`选择与任务队列的资源需求相匹配的 Arm-based c7g实例类型（从m6gc6gr6g、、和实例系列中）。
**注意**  
实例系列的可用性因 Amazon Web Services 区域而异。例如，有些 Amazon Web Services 区域可能没有任何第四代实例系列，但有第五代和第六代实例系列。
使用 `default_x86_64` 或 `default_arm64` 实例捆绑包时， Amazon Batch 将在综合权衡成本效益和性能的基础上选择实例系列。虽然新一代实例通常具有更好的性价比，但如果较早一代的实例系列为您的工作负载提供了可用性、成本和性能的最佳组合，则 Amazon Batch 可以选择前一代的实例系列。例如，在 c6i 和 c7i 实例均可用的 Amazon Web Services 区域 情况下，如果 c6i 实例可以更好地满足您的特定任务要求，则 Amazon Batch 可以选择 c6i 实例。有关 Amazon Batch 实例类型和 Amazon Web Services 区域 可用性的更多信息，请参阅[实例类型计算表](instance-type-compute-table.md)。
Amazon Batch 定期将默认捆绑包中的实例更新为更新、更具成本效益的选项。这些更新会自动完成，无需您执行任何操作。您的工作负载会在更新期间继续运行，不会出现中断。
**注意**  
在创建一个计算环境时，为该计算环境选择的实例类型必须共享同一架构。例如，您不能在同一个计算环境中混用 x86 和 ARM 实例。
**注意**  
Amazon Batch 将根据任务队列中所需的数量扩展 GPU。要使用 GPU 调度功能，计算环境包含的实例类型必须为 `p6`, `p3`, `p4`, `p5`, `g3`, `g3s`, `g4`、`g5` 或 `g6` 系列。

   1. 对于**分配策略**，选择在从允许的实例类型列表中选择实例类型时要使用的分配策略。**对于 EC2 计算环境，**BEST\_FIT\_PROGR** ESSIVE 通常是更好的选择，SPOT\_CAPACITY\_OPTIMITY\_PRICE\_CAPAC **ITY\_针对EC2 Spot On-Demand 计算环境进行了优化**。**有关更多信息，请参阅 [的实例类型分配策略 Amazon Batch](allocation-strategies.md)。

   1. 展开**其他配置**。

      1. （可选）对于**置放群组**，输入置放群组名称以对计算环境中的资源进行分组。

      1. （可选）对于 **EC2 密钥对**，请在连接到实例时选择公钥和私有密钥对作为安全凭证。有关 Amazon EC2 密钥对的更多信息，请参阅 [Amazon EC2 密钥对和 Linux 实例](https://docs.amazonaws.cn/AWSEC2/latest/UserGuide/ec2-key-pairs.html)。

      1. （可选）对于 **EC2 配置**，请选择**映像类型****和映像 ID 覆盖**值以提供信息， Amazon Batch 以便为计算环境中的实例选择 Amazon 系统映像 (AMI)。如果未为每**种图像类型****指定镜像 ID 替换**，则 Amazon Batch 选择最近经过[亚马逊ECS优化的 AMI](https://docs.amazonaws.cn/AmazonECS/latest/developerguide/ecs-optimized_AMI.html)。如果未指定**图像类型**，则对于非 GPU、非 G Amazon raviton 实例，默认为 **Amazon Linux 2**。
**重要**  
要使用自定义 AMI，请选择映像类型，然后在**映像 ID 覆盖**框中输入自定义 AMI ID。  
[Amazon Linux 2](https://docs.amazonaws.cn/AmazonECS/latest/developerguide/ecs-optimized_AMI.html#al2ami)  
 所有 Amazon Graviton-based 实例系列（例如、`C6g``M6g``R6g`、和`T4g`）均为默认值，可用于所有非 GPU 实例类型。  
[Amazon Linux 2（GPU）](https://docs.amazonaws.cn/AmazonECS/latest/developerguide/ecs-optimized_AMI.html#gpuami)  
所有 GPU 实例系列的默认值（例如`P4`和`G4`），并且可用于所有非 Amazon Graviton-based 实例类型。  
[Amazon Linux 2023](https://docs.amazonaws.cn/AmazonECS/latest/developerguide/ecs-optimized_AMI.html)  
Amazon Batch 支持 Amazon Linux 2023。  
Amazon 2023 不支持 `A1` 实例。  
[亚马逊 Linux 2023 (GPU)](https://docs.amazonaws.cn/AmazonECS/latest/developerguide/ecs-optimized_AMI.html#gpuami)  
所有 GPU 实例系列的默认值（例如`P4`和`G4`），并且可用于所有非 Amazon Graviton-based 实例类型。
**注意**  
您为计算环境选择的 AMI 必须与您打算用于该计算环境的实例类型的架构匹配。例如，如果您的计算环境使用 A1 实例类型，则您选择的计算资源 AMI 必须支持 ARM 实例。Amazon ECS 同时提供 Amazon ECS 优化型 Amazon Linux 2 AMI 的 x86 和 ARM 版本。有关更多信息，请参阅*《Amazon Elastic Container Service 开发人员指南》*中的[经过 Amazon ECS 优化的 Amazon Linux 2 AMI](https://docs.amazonaws.cn/AmazonECS/latest/developerguide/ecs-optimized_AMI.html#ecs-optimized-ami-linux-variants.html)。

   1. （可选）展开**启动模板**

      1. 对于**默认启动模板**，选择一个用来配置计算资源的现有 Amazon EC2 启动模板。模板的默认版本会自动填充。有关更多信息，请参阅 [使用 Amazon EC2 启动模板和 Amazon Batch](launch-templates.md)。
**注意**  
在启动模板中，您可以指定自己创建的自定义 AMI。

      1. （可选）对于**默认版本**，输入 `$Default`、`$Latest` 或要使用的特定版本号。
**注意**  
注意：如果您使用替换变量（$Default 或 $Latest），则会在保存此配置时应用当前的默认或最新版本号。如果未来默认版本或最新版本发生更改，则必须更新相关信息——它不会自动更新。
**重要**  
如果启动模板的版本参数为 `$Default` 或 `$Latest`，则会在基础设施更新期间评估指定启动模板的默认版本或最新版本。如果默认选择了不同的 AMI ID 或选择了最新版本的启动模板，则将在更新中使用该 AMI ID。有关更多信息，请参阅 [基础设施更新期间的 AMI 选择](infrastructure-updates.md#updating-compute-environments-ami)。

      1. （可选）对于**覆盖启动模板**，选择**添加覆盖启动模板**

         1. （可选）对于**启动模板**，选择一个要用于特定实例类型和系列的现有 Amazon EC2 启动模板。

         1. （可选）对于**默认版本**，输入要使用的特定版本号、`$Default` 或 `$Latest`。
**注意**  
如果您使用 `$Default` 或 `$Latest` 变量，则 Amazon Batch 将在创建计算环境时应用当前信息。如果 future 的默认版本或最新版本发生变化，则必须通过[UpdateComputeEnvironment](https://docs.amazonaws.cn/batch/latest/APIReference/API_UpdateComputeEnvironment.html)或通过 Amazon Web Services 管理控制台 -来更新信息 Amazon Batch。

         1. （可选）对于**目标实例类型**，选择要应用该覆盖启动模板的实例类型或系列。
**注意**  
如果您指定了覆盖启动模板，则必须指定**目标实例类型**。有关更多信息，请参阅 [LaunchTemplateSpecificationOverride.targetInstanceTypes](https://docs.amazonaws.cn/batch/latest/APIReference/API_LaunchTemplateSpecificationOverride.html#Batch-Type-LaunchTemplateSpecificationOverride-targetInstanceTypes)。
**注意**  
如果要选择的实例类型或系列未出现在此列表中，请检查您在 `Allowed instance types` 中所做的选择。

   1. 选择**下一步**。

1. 在**网络配置**部分：
**重要**  
计算资源需要访问才能与 Amazon ECS 服务端点通信。这可以通过接口 VPC 端点或具有公共 IP 地址的计算资源实现。  
有关接口 VPC 端点的更多信息，请参阅 *Amazon Elastic Container Service 开发人员指南*中的 [Amazon ECS 接口 VPC 端点(Amazon PrivateLink)](https://docs.amazonaws.cn/AmazonECS/latest/developerguide/vpc-endpoints.html)。  
如果没有配置接口 VPC 端点，并且计算资源没有公共 IP 地址，则必须使用网络地址转换 (NAT) 来提供这种访问。有关更多信息，请参阅*《Amazon VPC 用户指南》*中的。有关更多信息，请参阅 [创建 VPC](create-a-vpc.md)。

   1. 对于**虚拟私有云（VPC）ID**，请选择要在其中启动实例的 VPC。

   1. 对于**子网**，选择要使用的子网。默认情况下，选定的 VPC 中的所有子网都可用。
**注意**  
Amazon Batch 在 Amazon EC2 上支持 Local Zones。有关更多信息，请参阅《Amazon EC2 用户指南》**中的[本地区域](https://docs.amazonaws.cn/AWSEC2/latest/UserGuide/using-regions-availability-zones.html?icmpid=docs_ec2_console#concepts-local-zones)、《Amazon Elastic Container Service 开发人员指南》**中的[本地区域、Wavelength Zones 和 Amazon Outposts中的 Amazon ECS 集群](https://docs.amazonaws.cn/AmazonECS/latest/developerguide/cluster-regions-zones.html#clusters-local-zones)。

   1. （可选）对于**安全组**，选择要附加到实例的安全组。默认情况下，将选择您的 VPC 的默认安全组。
**注意**  
注意：如果您使用替换变量（$Default 或 $Latest），则会在保存此配置时应用当前的默认或最新版本号。如果未来默认版本或最新版本发生更改，则必须更新相关信息——它不会自动更新。

1. 选择**下一页**。

1. 对于**查看**，请查看配置步骤。如果需要进行更改，请选择 **Edit**（编辑）。完成后，选择**创建计算环境**。