本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
教學課程:使用 Amazon ECS 受管執行個體建立受管運算環境
本教學課程會逐步引導您建立使用 Amazon ECS 受管執行個體的 AWS Batch 運算環境。Amazon ECS 會代表您管理 Amazon EC2 執行個體,您可以指定最大容量和選用的執行個體限制,Amazon ECS 會處理佈建、擴展和終止。
先決條件
在建立 Amazon ECS 受管執行個體運算環境之前,您必須具有下列項目:
-
Amazon ECS 基礎設施角色 — Amazon ECS 擔任以代表您管理 Amazon EC2 執行個體的 IAM 角色。角色必須具有 的信任政策
ecs.amazonaws.com。如需詳細資訊,請參閱《Amazon Elastic Container Service 開發人員指南》中的 Amazon ECS 基礎設施 IAM 角色。 -
Amazon EC2 執行個體描述檔 — 使用
AmazonECSInstanceRolePolicyForManagedInstances受管政策的執行個體描述檔。信任政策必須允許ec2.amazonaws.com擔任該角色。 -
您的 IAM 主體必須擁有條件為 之基礎設施角色的
iam:PassRole許可iam:PassedToService: ecs.amazonaws.com。 -
子網路具有傳出網際網路存取權的 VPC (公有 IP 指派或 NAT 閘道)。
建立 Amazon ECS 受管執行個體運算環境 (主控台)
-
在 https://https://console.aws.amazon.com/batch/
開啟 AWS Batch 主控台。 -
從導覽列中,選擇要 AWS 區域 使用的 。
-
在左側導覽窗格中,選擇環境。
-
選擇建立環境,然後選擇建立運算環境。
-
針對運算環境類型,選擇 ECS 受管執行個體。
-
針對運算環境名稱,輸入唯一的名稱。名稱長度上限為 128 個字元,可包含大小寫字母、數字、連字號 (-) 和底線 (_)。
-
針對最大 vCPUs,輸入運算環境可擴展的 vCPUs 數量上限。
-
針對基礎設施角色,選擇您建立做為先決條件的 Amazon ECS 基礎設施角色。
-
針對執行個體描述檔,選擇您建立做為先決條件的 Amazon EC2 執行個體描述檔。
-
在聯網區段中:
-
對於 VPC,請選擇要啟動執行個體的 VPC。
-
針對子網路,選擇一或多個子網路。子網路必須具有傳出網際網路存取。
-
針對安全群組,選擇要與執行個體建立關聯的一或多個安全群組。
-
-
(選用) 針對容量類型,選擇 Spot 以使用 Spot 執行個體來節省容錯工作負載的成本。預設值為隨需。
-
(選用) 針對允許的執行個體類型,指定 Amazon ECS 可以啟動的執行個體類型。如果您未指定任何 ,則所有可用的執行個體類型都符合資格。
-
選擇建立運算環境。
建立 Amazon ECS 受管執行個體運算環境 (AWS 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 後端運算環境。
$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" }
使用容量保留
下列範例會建立運算環境,以可預測容量的隨需容量保留為目標。
$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。如需詳細資訊,請參閱Amazon ECS 受管執行個體上的任務定義。 -
將任務提交至任務佇列。如需詳細資訊,請參閱教學課程:提交任務。