教學:使用 Spot Fleet 與執行個體權重
本教學課程使用一間稱為 Example Corp 的虛構公司,來說明使用執行個體權重來請求 Spot Fleet 的程序。
目標
Example Corp 是一間製藥公司,希望利用 Amazon EC2 的運算能力,來篩選可能用於抗癌的化合物。
規劃
Example Corp 首先檢視了 Spot 最佳實務
執行個體類型
Example Corp 擁有運算和記憶體密集型應用程式,該應用程式在至少 60 GB 記憶體和八個虛擬 CPU (vCPU) 情況下效能最佳。他們希望以最低的價格為應用程式最大限度利用這些資源。Example Corp 認為以下任一個 EC2 執行個體類型都能滿足他們的需求:
執行個體類型 | 記憶體 (GiB) | vCPU |
---|---|---|
r3.2xlarge |
61 |
8 |
r3.4xlarge |
122 |
16 |
r3.8xlarge |
244 |
32 |
目標容量 (單位)
透過執行個體權重,目標容量可以等於多個執行個體 (預設) 或多個因素如核心 (vCPU)、記憶體 (GiB) 和儲存空間 (GB) 的組合。Example Corp 將其應用程式的基本需求 (60 GB 的 RAM 和 8 個 vCPU),視為 1 個單位來考量,然後決定此數量的 20 倍可滿足其需求。因此,該公司將其 Spot 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 會針對其 Spot Fleet 請求中的各個啟動組態,指派 1、2 和 4 的執行個體權重。
每個單位小時的價格
Example Corp 會使用每執行個體小時的隨需價格
執行個體類型 | 隨需價格 | 執行個體權重 | 每個單位小時的價格 |
---|---|---|---|
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 每單位小時特定價格。
驗證許可
在建立 Spot Fleet 請求之前,Example Corp 會確認自己擁有 IAM 角色,而且此角色具備所需的許可。如需更多詳細資訊,請參閱 Spot Fleet 許可。
建立請求
Example Corp 會建立一個檔案,config.json
,並針對其 Spot Fleet 請求使用下列組態:
{ "SpotPrice": "0.70", "TargetCapacity": 20, "IamFleetRole": "arn:aws:iam::123456789012:role/aws-ec2-spot-fleet-tagging-role", "LaunchSpecifications": [ { "ImageId": "ami-1a2b3c4d", "InstanceType": "r3.2xlarge", "SubnetId": "subnet-482e4972", "WeightedCapacity": 1 }, { "ImageId": "ami-1a2b3c4d", "InstanceType": "r3.4xlarge", "SubnetId": "subnet-482e4972", "WeightedCapacity": 2 }, { "ImageId": "ami-1a2b3c4d", "InstanceType": "r3.8xlarge", "SubnetId": "subnet-482e4972", "SpotPrice": "0.90", "WeightedCapacity": 4 } ] }
Example Corp 會使用 request-spot-fleet 命令來建立 Spot Fleet 請求。
aws ec2 request-spot-fleet --spot-fleet-request-config file://config.json
如需更多詳細資訊,請參閱 Spot Fleet 請求類型。
實現
分配策略決定您的 競價型執行個體 來自哪個 Spot 容量集區。
採用 lowestPrice
策略 (預設的策略),競價型執行個體 來自實現時每單位價格最低的集區。為提供 20 個單位的容量,Spot Fleet 將啟動 20 個 r3.2xlarge
執行個體 (20 除以 1)、10 個 r3.4xlarge
執行個體 (20 除以 2) 或 5 個 r3.8xlarge
執行個體 (20 除以 4)。
如果 Example Corp 使用 diversified
策略,競價型執行個體 將來自所有三個集區。Spot Fleet 將啟動 6 個 r3.2xlarge
執行個體 (提供 6 個單位)、3 個 r3.4xlarge
執行個體 (提供 6 個單位) 和 2 個 r3.8xlarge
執行個體 (提供 8 個單位),共計 20 個單位。