本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
教程:使用 Amazon ECS 托管实例创建托管计算环境
本教程引导您创建使用 Amazon ECS 托管实例的 Amazon Batch 计算环境。Amazon ECS 代表您管理 Amazon EC2 实例——您指定最大容量和可选实例限制,Amazon ECS 负责配置、扩展和终止。
先决条件
在创建 Amazon ECS 托管实例计算环境之前,必须具备以下条件:
-
亚马逊 ECS 基础设施角色 ——亚马逊 ECS 代为管理亚马逊 EC2 实例而承担的 IAM 角色。该角色必须具有的信任政策
ecs.amazonaws.com。有关更多信息,请参阅《亚马逊弹性容器服务开发人员指南》中的 A mazon ECS 基础设施 IAM 角色。 -
A mazon EC2 实例配置文件 — 使用
AmazonECSInstanceRolePolicyForManagedInstances托管策略的实例配置文件。信任政策必须ec2.amazonaws.com允许代入该角色。 -
您的 IAM 委托人必须具有基础设施角色的
iam:PassRole权限,条件为iam:PassedToService: ecs.amazonaws.com。 -
一个 VPC,其子网具有出站互联网访问权限(公有 IP 分配或 NAT 网关)。
创建 Amazon ECS 托管实例计算环境(控制台)
-
在处打开 Amazon Batch 控制台https://console.aws.amazon.com/batch/
。 -
在导航栏中,选择 Amazon Web Services 区域 要使用的。
-
在左侧导航窗格中,选择环境。
-
选择创建环境,然后选择创建计算环境。
-
对于计算环境类型,选择 ECS 托管实例。
-
在计算环境名称中,输入一个唯一的名称。名称最长可为 128 个字符,可以包含大写和小写字母、数字、连字符 (-) 和下划线 (_)。
-
对于最大 vCPU,输入计算环境可以扩展到的最大 vCPU 数量。
-
对于基础设施角色,选择您创建的 Amazon ECS 基础设施角色作为先决条件。
-
对于实例配置文件,选择您创建的 Amazon EC2 实例配置文件作为先决条件。
-
在 “网络” 部分:
-
对于 VPC,选择将在其中启动实例的 VPC。
-
对于子网,选择一个或多个子网。子网必须具有出站互联网访问权限。
-
对于安全组,选择一个或多个与实例关联的安全组。
-
-
(可选)对于容量类型,选择竞价型以使用竞价型实例来节省容错工作负载的成本。默认值为 On-Demand。
-
(可选)对于允许的实例类型,指定 Amazon ECS 可以启动的实例类型。如果您未指定,则所有可用实例类型均符合条件。
-
选择创建计算环境。
创建 Amazon ECS 托管实例计算环境 (Amazon CLI)
使用create-compute-environment命令创建 Amazon ECS 托管实例计算环境。
基本示例
以下示例使用最低要求的配置创建计算环境。Amazon ECS 可以使用任何可用的实例类型。
$aws batch create-compute-environment \ --compute-environment-namemy-managed-instances-ce\ --type MANAGED \ --state ENABLED \ --compute-resources '{ "type": "ECS_MANAGED_INSTANCES", "maxvCpus": 256, "managedInstancesProvider": { "infrastructureRoleArn": "arn:aws:iam::123456789012:role/ecsInfrastructureRole", "instanceLaunchTemplate": { "ec2InstanceProfileArn": "arn:aws:iam::123456789012:instance-profile/ecsInstanceProfile", "networkConfiguration": { "subnets": ["subnet-abcde012", "subnet-bcde012a"], "securityGroups": ["sg-abcde012"] } } } }'
具有特定实例类型的 Spot
以下示例创建了受特定实例类型限制的 Spot-backed 计算环境。
$aws batch create-compute-environment \ --compute-environment-namemy-spot-managed-instances-ce\ --type MANAGED \ --state ENABLED \ --compute-resources '{ "type": "ECS_MANAGED_INSTANCES", "maxvCpus": 1000, "managedInstancesProvider": { "infrastructureRoleArn": "arn:aws:iam::123456789012:role/ecsInfrastructureRole", "instanceLaunchTemplate": { "ec2InstanceProfileArn": "arn:aws:iam::123456789012:instance-profile/ecsInstanceProfile", "networkConfiguration": { "subnets": ["subnet-abcde012", "subnet-bcde012a"], "securityGroups": ["sg-abcde012"] }, "instanceRequirements": { "allowedInstanceTypes": ["m5.large", "m5.xlarge", "m6i.large", "m6i.xlarge"] }, "capacityOptionType": "SPOT" } } }'
输出:
{ "computeEnvironmentName": "my-spot-managed-instances-ce", "computeEnvironmentArn": "arn:aws:batch:us-east-1:123456789012:compute-environment/my-spot-managed-instances-ce" }
可预留容量
以下示例创建了一个以 On-Demand 容量预留为目标的计算环境,以实现可预测的容量。
$aws batch create-compute-environment \ --compute-environment-namemy-reserved-managed-instances-ce\ --type MANAGED \ --state ENABLED \ --compute-resources '{ "type": "ECS_MANAGED_INSTANCES", "maxvCpus": 512, "managedInstancesProvider": { "infrastructureRoleArn": "arn:aws:iam::123456789012:role/ecsInfrastructureRole", "instanceLaunchTemplate": { "ec2InstanceProfileArn": "arn:aws:iam::123456789012:instance-profile/ecsInstanceProfile", "networkConfiguration": { "subnets": ["subnet-abcde012", "subnet-bcde012a"], "securityGroups": ["sg-abcde012"] }, "instanceRequirements": { "allowedInstanceTypes": ["m5.xlarge", "m5.2xlarge"] }, "capacityReservations": { "reservationGroupArn": "arn:aws:ec2:us-east-1:123456789012:capacity-reservation-group/my-reservation-group", "reservationPreference": "RESERVATIONS_FIRST" } } } }'
后续步骤
创建计算环境后,完成以下步骤以运行作业:
-
创建任务队列并将您的 Amazon ECS 托管实例计算环境与其关联起来。有关更多信息,请参阅 创建作业队列。
-
使用
platformCapabilities设置为MANAGED_INSTANCES和使用创建作业定义ecsProperties。有关更多信息,请参阅 亚马逊 ECS 托管实例上的任务定义。 -
向任务队列提交任务。有关更多信息,请参阅 教程:提交作业。