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

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

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

目標

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

規劃

Example Corp 首先檢視了 Spot 最佳實務。接者,Example Corp 針對其 Spot Fleet 決定了下列需求。

執行個體類型

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 會使用每執行個體小時的隨需價格,來做為其價格的起點。他們也可以使用最近的 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 每單位小時特定價格。

驗證許可

在建立 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 個單位。