View a markdown version of this page

教學課程:使用 Amazon ECS 受管執行個體建立受管運算環境 - AWS Batch

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

教學課程:使用 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 受管執行個體運算環境 (主控台)

  1. 在 https://https://console.aws.amazon.com/batch/ 開啟 AWS Batch 主控台。

  2. 從導覽列中,選擇要 AWS 區域 使用的 。

  3. 在左側導覽窗格中,選擇環境。

  4. 選擇建立環境,然後選擇建立運算環境。

  5. 針對運算環境類型,選擇 ECS 受管執行個體。

  6. 針對運算環境名稱,輸入唯一的名稱。名稱長度上限為 128 個字元,可包含大小寫字母、數字、連字號 (-) 和底線 (_)。

  7. 針對最大 vCPUs,輸入運算環境可擴展的 vCPUs 數量上限。

  8. 針對基礎設施角色,選擇您建立做為先決條件的 Amazon ECS 基礎設施角色。

  9. 針對執行個體描述檔,選擇您建立做為先決條件的 Amazon EC2 執行個體描述檔。

  10. 在聯網區段中:

    1. 對於 VPC,請選擇要啟動執行個體的 VPC。

    2. 針對子網路,選擇一或多個子網路。子網路必須具有傳出網際網路存取。

    3. 針對安全群組,選擇要與執行個體建立關聯的一或多個安全群組。

  11. (選用) 針對容量類型,選擇 Spot 以使用 Spot 執行個體來節省容錯工作負載的成本。預設值為隨需。

  12. (選用) 針對允許的執行個體類型,指定 Amazon ECS 可以啟動的執行個體類型。如果您未指定任何 ,則所有可用的執行個體類型都符合資格。

  13. 選擇建立運算環境。

建立 Amazon ECS 受管執行個體運算環境 (AWS CLI)

使用 create-compute-environment命令來建立 Amazon ECS 受管執行個體運算環境。

基本範例

下列範例會建立具有最低必要組態的運算環境。Amazon ECS 可以使用任何可用的執行個體類型。

$ aws batch create-compute-environment \ --compute-environment-name my-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-name my-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-name my-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" } } } }'

後續步驟

建立運算環境後,請完成下列步驟以執行任務:

  1. 建立任務佇列,並將 Amazon ECS 受管執行個體運算環境與其建立關聯。如需詳細資訊,請參閱建立任務佇列。

  2. 建立任務定義,並將 platformCapabilities 設定為 MANAGED_INSTANCES並使用 ecsProperties。如需詳細資訊,請參閱Amazon ECS 受管執行個體上的任務定義。

  3. 將任務提交至任務佇列。如需詳細資訊,請參閱教學課程:提交任務。