本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Amazon ECS 受管執行個體上的運算環境
AWS Batch Amazon ECS 受管執行個體上的運算環境會使用 內的managedInstancesProvider組態區塊computeResources。此結構符合 Amazon ECS 容量提供者模型,並且是獨立的。所有聯網、執行個體描述檔和執行個體選取組態都存在於此區塊中。
下列清單說明 Amazon ECS 受管執行個體運算環境的運算環境參數。
type(頂層)-
必須為
MANAGED。"type": "MANAGED" computeResources.type-
必須為
ECS_MANAGED_INSTANCES。與 Fargate 和 Amazon EC2 運算環境不同,Spot 容量不會以個別類型表示 (沒有ECS_MANAGED_INSTANCES_SPOT類型)。反之,capacityOptionType請在內部使用managedInstancesProvider.instanceLaunchTemplate來指定隨需或 Spot 容量。"type": "ECS_MANAGED_INSTANCES" computeResources.maxvCpus-
運算環境可擴展的 vCPUs 數量上限。運作方式與
maxvCpusFargate 運算環境相同,其限制了所有執行中任務使用的總 vCPU。重要
目前,
maxvCpus會根據執行中任務請求的總 vCPUs來 AWS Batch 評估,而不是基礎 Amazon EC2 執行個體的總 vCPUs。Amazon ECS 受管執行個體使用多租用戶執行個體配置。因此,實際佈建的執行個體 vCPU 容量可能會超過任務 vCPU 總計。運算環境可能佈建的執行個體容量超過maxvCpus值所隱含的容量。在未來的更新中,可能會改善此行為。 computeResources.managedInstancesProvider-
Amazon ECS 受管執行個體運算環境的必要項目。包含所有 Amazon ECS 受管執行個體特定的組態。如需詳細資訊,請參閱《Amazon Elastic Container Service API 參考》中的 ManagedInstancesProvider。下列欄位可供使用:
infrastructureRoleArn-
必要. Amazon ECS 擔任以代表您管理 Amazon EC2 執行個體之 IAM 角色的 ARN。此角色必須具有 的信任政策
ecs.amazonaws.com。您的 IAM 主體必須具有條件 的此角色iam:PassRole許可iam:PassedToService: ecs.amazonaws.com。 propagateTags-
選用。控制容量提供者上的標籤是否傳播到其啟動的 Amazon EC2 執行個體。有效值為
CAPACITY_PROVIDER和NONE。 instanceLaunchTemplate-
必要. 包含執行個體啟動組態:
ec2InstanceProfileArn-
必要. 受管執行個體的 Amazon EC2 執行個體描述檔 ARN。此執行個體描述檔必須使用
AmazonECSInstanceRolePolicyForManagedInstances受管政策搭配 的信任政策ec2.amazonaws.com。 networkConfiguration-
必要. 指定受管執行個體的 VPC 組態。
-
subnets– 必要。啟動執行個體的 VPC 子網路。執行個體需要外部網路存取權,才能與 Amazon ECS 服務端點通訊。如果您的子網路不提供公有 IP 地址,則它們必須具有用於傳出網際網路存取的 NAT 閘道。 -
securityGroups– 必要。要與執行個體建立關聯的 VPC 安全群組。
-
instanceRequirements-
選用。指定 Amazon ECS 可以啟動哪些 Amazon EC2 執行個體類型的限制條件。如果未提供,則所有可用的執行個體類型都符合資格。
-
allowedInstanceTypes— 特定執行個體類型或執行個體系列清單 (例如m5.large或g5)。指定時,只會使用這些執行個體類型。
-
capacityOptionType-
選用。容量定價模型。有效值為
ON_DEMAND(預設) 和SPOT。透過SPOT,Amazon ECS 會啟動 Spot 執行個體,可大幅節省容錯工作負載的成本。 storageConfiguration-
選用。設定執行個體的根 EBS 磁碟區。
-
storageSizeGiB— 根磁碟區的大小,以 GiB 為單位。
-
monitoring-
選用。執行個體的 CloudWatch 監控層級。有效值為
BASIC和DETAILED。 fipsEnabled-
選用。設定為 時
true, 會在受管執行個體上啟用 FIPS 140-2 合規。不適用於所有 AWS 區域。 capacityReservations-
選用。針對可預測容量可用性的隨需容量保留 ODCRs)。
-
reservationGroupArn— 要鎖定的容量保留群組 ARN。 -
reservationPreference— 控制容量保留的使用方式。有效值為RESERVATIONS_ONLY(僅啟動至保留)、RESERVATIONS_FIRST(偏好保留、返回隨需) 和RESERVATIONS_EXCLUDED(請勿使用保留)。
-
instanceMetadataTagsPropagation-
選用。控制是否可以從受管執行個體上的執行個體中繼資料服務 (IMDS) 存取標籤。
localStorageConfiguration-
選用。設定受管執行個體的本機執行個體存放區磁碟區 (本機 NVMe SSDs)。
-
useLocalStorage— 執行個體存放區磁碟區是否可供在受管執行個體上執行的容器使用。
-
infrastructureOptimization-
選用。控制 Amazon ECS 如何管理閒置執行個體。
-
scaleInAfter— Amazon ECS 終止執行個體之前,執行個體必須閒置的秒數。有效值為-1(停用縮減) 或0–3600(終止前閒置時間的秒數)。
-
computeResources.capacityTags-
選用。要套用至運算環境所管理的 Amazon ECS 容量提供者和 Amazon EC2 執行個體的標籤。僅適用於
ECS_MANAGED_INSTANCES運算環境。您的 IAM 主體必須擁有運算環境資源的batch:SetCapacityTags許可,才能指定此欄位。如需詳細資訊,請參閱使用 控制對容量標籤的存取 batch:SetCapacityTags。這些標籤與運算環境資源本身
tags的頂層不同。capacityTags用於基礎基礎設施資源的成本分配和組織。 - 參數不適用於 Amazon ECS 受管執行個體
-
下列
computeResources參數不適用於 Amazon ECS 受管執行個體運算環境,且不得指定:-
allocationStrategy -
bidPercentage -
desiredvCpus -
minvCpus -
imageId -
instanceTypes -
instanceRole -
ec2Configuration -
ec2KeyPair -
launchTemplate -
placementGroup -
spotIamFleetRole -
subnets(managedInstancesProvider.instanceLaunchTemplate.networkConfiguration.subnets請改用 ) -
securityGroupIds(managedInstancesProvider.instanceLaunchTemplate.networkConfiguration.securityGroups請改用 )
-
更新 Amazon ECS 受管執行個體運算環境
所有 Amazon ECS 受管執行個體運算環境屬性都可以更新,但運算環境類型capacityOptionType、 和 除外fipsEnabled。更新流程到基礎 Amazon ECS 容量提供者。新的執行個體使用更新的組態。現有執行個體會繼續執行,直到其任務完成,然後自然耗盡。
建立後無法變更下列項目:
-
運算環境類型 (
ECS_MANAGED_INSTANCES無法變更為FARGATE、EC2或其他類型) -
capacityOptionType— 建立後,您無法在隨需和 Spot 之間切換 -
fipsEnabled— 建立後無法變更 FIPS 模式
範例
最低組態
下列範例顯示建立 Amazon ECS 受管執行個體運算環境所需的最低組態。Amazon ECS 會自動從所有可用的類型中選取執行個體類型。
{ "computeEnvironmentName": "my-managed-instances-ce", "type": "MANAGED", "state": "ENABLED", "computeResources": { "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"] } } } } }
具有特定執行個體類型的 GPU 工作負載
下列範例會為機器學習工作負載建立僅限於 NVIDIA GPU 執行個體類型的運算環境。
{ "computeEnvironmentName": "my-gpu-managed-instances-ce", "type": "MANAGED", "state": "ENABLED", "computeResources": { "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": ["g5.xlarge", "g5.2xlarge", "g5.4xlarge"] }, "capacityOptionType": "ON_DEMAND" } } } }
成本敏感工作負載的 Spot 容量
下列範例會為容錯批次工作負載建立 Spot 支援的運算環境。
{ "computeEnvironmentName": "my-spot-managed-instances-ce", "type": "MANAGED", "state": "ENABLED", "computeResources": { "type": "ECS_MANAGED_INSTANCES", "maxvCpus": 5000, "managedInstancesProvider": { "infrastructureRoleArn": "arn:aws:iam::123456789012:role/ecsInfrastructureRole", "instanceLaunchTemplate": { "ec2InstanceProfileArn": "arn:aws:iam::123456789012:instance-profile/ecsInstanceProfile", "networkConfiguration": { "subnets": ["subnet-abcde012", "subnet-bcde012a", "subnet-cde012ab"], "securityGroups": ["sg-abcde012"] }, "instanceRequirements": { "allowedInstanceTypes": ["m5.large", "m5.xlarge", "m6i.large", "m6i.xlarge"] }, "capacityOptionType": "SPOT", "storageConfiguration": { "storageSizeGiB": 100 } } } } }