教學:使用 EC2 Fleet 與執行個體權重 - Amazon Elastic Compute Cloud

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

教學:使用 EC2 Fleet 與執行個體權重

本教學課程使用一間稱為 Example Corp 的虛構公司,說明使用執行個體權重來請求 EC2 Fleet 的程序。

目標

Example Corp 是一間製藥公司,希望利用 Amazon EC2 的計算能力篩選可能用於抗癌的化合物。

規劃

Example Corp 首先檢視了 Spot 最佳實務。接下來,Example Corp 決定他們的 EC2 Fleet 需求。

執行個體類型

Example Corp 擁有運算和記憶體密集型應用程式,該應用程式在至少 60 GB 記憶體和八個虛擬 CPU (vCPU) 情況下效能最佳。他們希望以最低的價格為應用程式最大限度利用這些資源。Example Corp 認為以下任一個 EC2 執行個體類型都能滿足他們的需求:

執行個體類型 記憶體 (GiB) vCPU

r3.2xlarge

61

8

r3.4xlarge

122

16

r3.8xlarge

244

32

目標容量 (單位)

使用執行個體加權時,目標容量可以等於執行個體數目 (預設值) 或核心 (vCPUs)、記憶體 () 和儲存體 (GBGiBs) 等因素的組合。Example Corp 將其應用程式基礎 (60 GB RAM 和 8 個 vCPU) 做為一個單位考慮,Example Corp 決定此數量的 20 倍將可滿足他們的需求。因此,該公司將其 EC2 Fleet 請求的目標容量設定為 20。

執行個體權重

Example Corp 決定目標容量後,即計算執行個體權重。為了計算每個執行個體類型的執行個體權重,將決定達成目標容量所需的每個執行個體類型單位,如下所示:

  • r3.2xlarge (61.0 GB, 8 vCPUs) = 1 單位 (共 20 單位)

  • r3.4xlarge (122.0 GB, 16 vCPUs) = 2 單位 (共 20 單位)

  • r3.8xlarge (244.0 GB, 32 vCPUs) = 4 單位 (共 20 單位)

因此,Example Corp 會針對其 EC2 Fleet 請求中的各個啟動組態,指派 1、2 和 4 的執行個體權重。

每個單位小時的價格

Example Corp 會使用每執行個體小時的隨需價格,來做為其價格的起點。他們也可以使用最近的 Spot 價格,或兩者的組合。為計算每單位小時價格,他們將每個執行個體小時的起始價格除以權重。例如:

執行個體類型 隨需價格 執行個體權重 每個單位小時的價格

r3.2xLarge

0.7 USD

1

0.7 USD

r3.4xLarge

1.4 USD

2

0.7 USD

r3.8xLarge

$2.8

4

0.7 USD

Example Corp 可以使用每單位小時 0.7 USD 的全球價格,並且對於所有三種執行個體類型都具有競爭力。在 r3.8xlarge 啟動規格中,他們也可以使用每單位小時 0.7 USD 全局價格和 0.9 USD 每單位小時特定價格。

驗證許可

Example Corp 在建立 EC2 Fleet 之前,驗證其具有所需許可的 IAM 角色。如需詳細資訊,請參閱 EC2 Fleet 先決條件

建立啟動範本

接下來,範例公司會建立一個啟動範本。啟動範本 ID 會在下列步驟中使用。如需詳細資訊,請參閱 建立啟動範本

建立 EC2 Fleet

Example Corp 會建立一個檔案 config.json,且其 EC2 Fleet 組態如下。在下列範例中,以您自己的資源識別符取代資源識別符。

{ "LaunchTemplateConfigs": [ { "LaunchTemplateSpecification": { "LaunchTemplateId": "lt-07b3bc7625cdab851", "Version": "1" }, "Overrides": [ { "InstanceType": "r3.2xlarge", "SubnetId": "subnet-482e4972", "WeightedCapacity": 1 }, { "InstanceType": "r3.4xlarge", "SubnetId": "subnet-482e4972", "WeightedCapacity": 2 }, { "InstanceType": "r3.8xlarge", "MaxPrice": "0.90", "SubnetId": "subnet-482e4972", "WeightedCapacity": 4 } ] } ], "TargetCapacitySpecification": { "TotalTargetCapacity": 20, "DefaultTargetCapacityType": "spot" } }

Example Corp 使用以下 create-fleet 命令來建立 EC2 Fleet。

aws ec2 create-fleet \ --cli-input-json file://config.json

如需詳細資訊,請參閱 建立 EC2 Fleet

實現

分配策略決定您的 競價型執行個體 來自哪個 Spot 容量集區。

採用 lowest-price 策略 (預設的策略),競價型執行個體 來自實現時每單位價格最低的集區。為提供 20 個單位的容量,EC2 Fleet 將啟動 20 個 r3.2xlarge 執行個體 (20 除以 1)、10 個 r3.4xlarge 執行個體 (20 除以 2) 或 5 個 r3.8xlarge 執行個體 (20 除以 4)。

如果 Example Corp 使用 diversified 策略,競價型執行個體 將來自所有三個集區。EC2 Fleet 將啟動 6 個 r3.2xlarge 執行個體 (提供 6 個單位)、3 個 r3.4xlarge 執行個體 (提供 6 個單位) 和 2 個 r3.8xlarge 執行個體 (提供 8 個單位),共計 20 個單位。