為 Amazon ECS 受管執行個體建立容量提供者
Amazon ECS 受管執行個體會使用容量提供者來管理工作負載的運算容量。依預設,Amazon ECS 提供的預設容量提供者會自動選取最具成本效益的一般用途執行個體類型。不過,您可以建立自訂容量提供者來指定執行個體屬性,例如執行個體類型、CPU 製造商、加速器類型與其他需求。
自訂容量提供者採用屬性型執行個體類型選擇機制,可讓您將執行個體需求表達為一組屬性。這些需求會自動轉換為所有相符的 Amazon EC2 執行個體類型,由此簡化執行個體類型組態的建立與維護。若要進一步了解執行個體需求與屬性型選擇,請參閱 Amazon EC2 User Guide 中的 Amazon EC2 Fleet attribute-based instance type selection 文件。
先決條件
開始之前,請確保您已完成下列事項:
-
決定要使用的監控類型。如需更多詳細資訊,請參閱 Amazon ECS 受管執行個體的詳細監控。
-
已有現有的叢集,或計劃建立新叢集。如需更多詳細資訊,請參閱 為 Amazon ECS 受管執行個體建立叢集。
-
您有 Amazon ECS 受管執行個體所需的 IAM 角色。其中包含:
-
基礎結構角色 – 允許 Amazon ECS 代為呼叫 AWS 服務,以管理 Amazon ECS 受管執行個體基礎結構。
如需更多詳細資訊,請參閱 Amazon ECS 基礎設施 IAM 角色。
-
執行個體設定檔 – 為在受管執行個體上執行的 Amazon ECS 容器代理程式與 Docker 常駐程式提供許可。
如需更多詳細資訊,請參閱 Amazon ECS 受管執行個體執行個體設定檔。
-
了解如何選擇執行個體。如需更多詳細資訊,請參閱 Amazon ECS 受管執行個體的執行個體選擇最佳實務。
主控台程序
為 Amazon ECS 受管執行個體建立容量提供者 (Amazon ECS 主控台)
開啟主控台,網址為 https://console.aws.amazon.com/ecs/v2
。 -
從導覽列中選取要使用的「區域」。
-
在導覽窗格中,選擇叢集。
-
在叢集頁面上,選擇叢集的名稱。
-
在叢集頁面上,選擇基礎結構索引標籤。
-
在容量提供者區段,選擇建立容量提供者。
-
在容量提供者組態區段,設定下列項目:
-
在容量提供者名稱欄位中,輸入容量提供者的唯一名稱。
-
在容量提供者類型欄位中,選擇 Amazon ECS 受管執行個體。
-
-
在執行個體組態區段,設定下列項目:
-
在執行個體設定檔欄位中,選擇為 Amazon ECS 受管執行個體建立的執行個體設定檔角色。
-
在基礎結構角色欄位中,選擇為 Amazon ECS 受管執行個體建立的基礎結構角色。
-
-
在執行個體需求區段下,指定執行個體的屬性。您可以設定下列項目的任意組合:
-
vCPU 計數 – 指定 vCPU 的數量 (例如
4或8-16的範圍)。 -
記憶體 (MiB) – 指定 MiB 中的記憶體數量 (例如
8192或16384-32768的範圍)。 -
執行個體類型 – 指定特定執行個體類型 (例如
m5.large,m5.xlarge,c5.large)。 -
CPU 製造商 – 從
intel、amd或amazon-web-services中選擇。 -
加速器類型 – 指定加速器類型 (例如
gpu、fpga或inference)。 -
加速器計數 – 指定加速器數量 (例如
1或2-4的範圍)。
-
-
在進階組態區段,選擇下列任一監控選項:
-
若要讓 CloudWatch 傳送狀態檢查指標,請選擇基本。
-
若要讓 CloudWatch 傳送所有指標指標,請選擇詳細。
-
-
(選用) 為協助識別容量提供者,請展開標籤區段,然後設定標籤。
若要啟用從容量提供者到受管資源的標籤傳播,例如從容量提供者啟動的執行個體,請在傳播標籤來源欄位中選擇容量提供者。
[新增標籤] 選擇新增標籤,並執行下列動作:
-
在金鑰欄位中,輸入金鑰名稱。
-
在值欄位中,輸入金鑰值。
-
-
選擇建立。
AWS CLI 程序
您可以使用 AWS CLI 為 Amazon ECS 受管執行個體建立容量提供者。使用 AWS CLI 的最新版本。如需有關如何升級至最新版本的詳細資訊,請參閱 Installing or updating to the latest version of the AWS CLI。
為 Amazon ECS 受管執行個體建立容量提供者 (AWS CLI)
-
執行以下命令:
aws ecs create-capacity-provider --cli-input-json file://capacity-provider-definition.json下列
capacity-provider-definition.json可用來指定基本執行個體需求與執行個體儲存體大小,以及啟用標籤傳播:{ "name": "my-managed-instances-provider", "cluster": "my-cluster", "tags": [ { "key": "version", "value": "test" } ], "managedInstancesProvider": { "infrastructureRoleArn": "arn:aws:iam::123456789012:role/ecsInfrastructureRole", "instanceLaunchTemplate": { "ec2InstanceProfileArn": "arn:aws:iam::123456789012:instance-profile/ecsInstanceProfile", "instanceRequirements": { "memoryMiB": { "max": 8, "min": 2 }, "vCpuCount": { "max": 16384, "min": 4096 } } }, "networkConfiguration": { "subnets": [ "subnet-abcdef01234567", "subnet-bcdefa98765432" ], "securityGroups": [ "sg-0123456789abcdef" ] }, "storageConfiguration": { "storageSizeGiB": 100 }, "propagateTags": "CAPACITY_PROVIDER" } } -
驗證容量提供者是否建立成功:
aws ecs describe-capacity-providers \ --capacity-providersmy-managed-instances-provider輸出:
{ "capacityProviders": [ { "capacityProviderArn": "arn:aws:ecs:region:aws_account_id:capacity-provider/my-managed-instances-provider", "cluster": "my-cluster" "name": "my-managed-capacity-provider", "status": "ACTIVE", "type": "MANAGED_INSTANCES", "tags": [ { "key": "version", "value": "test" } ], "managedInstancesProvider": { "infrastructureRoleArn": "arn:aws:iam::123456789012:role/ecsInfrastructureRole", "instanceLaunchTemplate": { "ec2InstanceProfileArn": "arn:aws:iam::123456789012:instance-profile/ecsInstanceProfile", "instanceRequirements": { "memoryMiB": { "max": 8, "min": 2 }, "vCpuCount": { "max": 16384, "min": 4096 } } }, "networkConfiguration": { "subnets": [ "subnet-abcdef01234567", "subnet-bcdefa98765432" ], "securityGroups": [ "sg-0123456789abcdef" ] }, "storageConfiguration": { "storageSizeGiB": 100 }, "propagateTags": "CAPACITY_PROVIDER" } } ] }
範例組態
下列範例展示了不同使用案例的常見容量提供者組態:
範例 一般用途工作負載
此組態會選取具有 2-8 個 vCPU 與 4-16 GiB 記憶體的成本最佳化執行個體:
{ "name": "my-managed-capacity-provider", "cluster": "my-cluster", "managedInstancesProvider": { "infrastructureRoleArn": "arn:aws:iam::123456789012:role/ecsInfrastructureRole", "instanceLaunchTemplate": { "ec2InstanceProfileArn": "arn:aws:iam::123456789012:instance-profile/ecsInstanceProfile", "instanceRequirements": { "memoryMiB": { "max": 8, "min": 2 }, "vCpuCount": { "max": 16384, "min": 4096 }, "cpuManufacturers": ["intel", "amd"] } }, "networkConfiguration": { "subnets": [ "subnet-abcdef01234567", "subnet-bcdefa98765432" ], "securityGroups": [ "sg-0123456789abcdef" ] }, } }
範例 GPU 加速工作負載
此組態會選取機器學習工作負載的 GPU 執行個體:
{ "name": "ml-gpu-provider", "cluster": "my-cluster", "managedInstancesProvider": { "infrastructureRoleArn": "arn:aws:iam::123456789012:role/ecsInfrastructureRole", "instanceLaunchTemplate": { "ec2InstanceProfileArn": "arn:aws:iam::123456789012:instance-profile/ecsInstanceProfile", "instanceRequirements": { "allowedInstanceTypes": [ "p3.2xlarge", "p3.8xlarge", "g4dn.xlarge", "g4dn.2xlarge" ], "acceleratorTypes": ["gpu"], "acceleratorCount": { "max": 4, "min": 1 } } }, "networkConfiguration": { "subnets": [ "subnet-abcdef01234567", "subnet-bcdefa98765432" ], "securityGroups": [ "sg-0123456789abcdef" ] } } }
範例 高記憶體工作負載
此組態會選取記憶體最佳化的執行個體進行資料處理:
{ "name": "high-memory-provider", "cluster": "my-cluster", "managedInstancesProvider": { "infrastructureRoleArn": "arn:aws:iam::123456789012:role/ecsInfrastructureRole", "instanceLaunchTemplate": { "ec2InstanceProfileArn": "arn:aws:iam::123456789012:instance-profile/ecsInstanceProfile", "instanceRequirements": { "allowedInstanceTypes": [ "r5.2xlarge", "r5.4xlarge", "r5.8xlarge", "x1e.xlarge" ], "memoryMiB": { "max": 131072, "min": 32768 } } }, "networkConfiguration": { "subnets": [ "subnet-abcdef01234567", "subnet-bcdefa98765432" ], "securityGroups": [ "sg-0123456789abcdef" ] } } }
後續步驟
建立容量提供者之後,即可在建立服務或執行任務時使用:
-
若要將容量提供者用於服務,請參閱建立 Amazon ECS 滾動更新部署。
-
若要將容量提供者用於獨立任務,請參閱將應用程式作為 Amazon ECS 任務執行。