本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
設定 instant 類型的 EC2 機群
instant 類型的 EC2 機群是同步的一次性請求,只會嘗試啟動您所需的容量一次。API 回應列出已啟動的執行個體,以及無法啟動的執行個體錯誤。使用 instant 類型的 EC2 機群具有本文描述的多種好處。本文末尾處會提供範例組態。
對於需要僅啟動 API 來啟動 EC2 執行個體的工作負載,您可以使用 RunInstances API。但是,憑藉 RunInstances,您只能在同一請求中啟動隨需執行個體或 Spot 執行個體,但不能同時啟動兩者。此外,當您使用 RunInstances 啟動 Spot 執行個體時,您的 Spot 執行個體請求僅限於一種執行個體類型和一個可用區域。此操作針對單個 Spot 容量集區 (一組具有相同執行個體類型和可用區域的未使用執行個體)。如果 Spot 容量集區沒有足夠的 Spot 執行個體容量來滿足您的請求,則 RunInstances 呼叫將會失敗。
相比使用 RunInstances 啟動 Spot 執行個體,我們建議使用具有設為 instant
的 type
參數的 CreateFleet API,以獲得以下好處:
-
在一個請求中啟動隨需執行個體和 Spot 執行個體。EC2 機群可以啟動隨需執行個體、Spot 執行個體或兩者皆有。如果有可用容量且您的請求中每個小時的價格上限超過 Spot 價格,則會滿足 Spot 執行個體的請求。
-
增加 Spot 執行個體的可用性。透過使用
instant
類型 EC2 機群,您可以按照 Spot 最佳實務啟動 Spot 執行個體,獲得以下好處:-
Spot 最佳實務:對執行個體類型和可用區域具有彈性。
好處:透過指定數個執行個體類型和可用區域,您可以增加 Spot 容量集區的數目。這可讓 Spot 服務更有機會尋找並配置您所需的 Spot 運算容量。一個很好的經驗法則是針對每個工作負載的至少 10 個執行個體類型上具有彈性,並確定所有可用區域均已設定為在 VPC 中使用。
-
Spot 最佳實務:使用 price-capacity-optimized 分配策略。
好處:
price-capacity-optimized
分配策略會自動從最可用的 Spot 容量集區識別執行個體並會自動從最低價格的集區佈建執行個體。由於您的 Spot 執行個體容量來自具有最佳容量的集區,因此可降低 Amazon EC2 需要回收容量時,中斷 Spot 執行個體的可能性。
-
-
取得更廣泛的功能組合。對於需要僅啟動 API 的工作負載,並且您更希望管理您的執行個體的生命週期,而不是讓 EC2 機群為您進行管理,請使用
instant
類型 EC2 機群,而不是 RunInstances API。EC2 機群提供比 RunInstances 更廣泛的功能組合,如以下範例所示。對於所有其他工作負載,您應使用 Amazon EC2 Auto Scaling,因為它為各種工作負載提供更全面的功能組合,例如 ELB 後端應用程式、容器化工作負載和佇列處理任務。
您可以使用即時類型的 EC2 機群,在容量區塊中啟動執行個體。如需詳細資訊,請參閱教學課程:設定您的 EC2 機群以啟動執行個體至容量區塊。
AWS Amazon EC2 Auto Scaling 和 Amazon EMR 等 服務會使用立即類型的 EC2 機群來啟動 EC2 執行個體。
立即類型 EC2 機群的先決條件
如需建立 EC2 機群的先決條件,請參閱 EC2 Fleet 先決條件。
instant 類型的 EC2 機群如何運作
當使用 instant
類型的 EC2 機群時,事件的順序如下所示:
-
設定 CreateFleet 請求類型為
instant
。如需詳細資訊,請參閱 建立 EC2 Fleet。請注意,在您進行 API 呼叫後,將無法修改它。 -
在您進行 API 呼叫時,EC2 機群會針對您所需容量送出同步的一次性請求。
-
API 回應列出已啟動的執行個體,以及無法啟動的執行個體錯誤。
-
您可以描述您的 EC2 機群、列出與 EC2 機群相關的執行個體,並檢視 EC2 機群的歷史記錄。
-
執行個體啟動後,您可以刪除機群請求。刪除機群請求時,您也可以選擇終止相關聯的執行個體,或讓它們繼續執行。
-
您隨時可終止執行個體。
範例
以下範例展示如何為不同的使用案例使用 instant
類型的 EC2 機群。如需使用 EC2 CreateFleet API 參數的詳細資訊,請參閱 Amazon EC2 API 參考中的 CreateFleet (建立機群)。
範例
- 範例 1:使用容量最佳化分配策略啟動 Spot 執行個體
- 範例 2:使用容量最佳化分配策略啟動單一 Spot 執行個體
- 範例 3:使用執行個體權重啟動 Spot 機群
- 範例 4:在單一可用區域內啟動 Spot 執行個體
- 範例 5:在單一可用區域內啟動單一執行個體類型的 Spot 執行個體
- 範例 6:僅在可啟動最小目標容量時才啟動 Spot 執行個體
- 範例 7:僅當可在單個可用區域中啟動相同執行個體類型的最低目標容量時,才能啟動 Spot 執行個體
- 範例 8:使用多個啟動範本來啟動執行個體
- 範例 9:啟動基於隨需執行個體的 Spot 執行個體
- 範例 10:基於使用容量保留和優先順序分配策略的隨需執行個體,使用容量最佳化分配策略啟動 Spot 執行個體
- 範例 11:使用容量最佳化的優先順序分配策略啟動 Spot 執行個體
- 範例 12:指定 Systems Manager 參數而非 AMI ID
範例 1:使用容量最佳化分配策略啟動 Spot 執行個體
下列範例指定 instant
類型 EC2 機群中所需的參數:啟動範本、目標容量、預設購買選項,以及啟動範本覆寫。
-
啟動範本由其啟動範本名稱和版本編號識別。
-
12 個啟動範本覆寫會指定 4 個不同執行個體類型和 3 個不同的子網路,每個都位於不同的可用區域。每個執行個體類型和子網路組合都定義了一個 Spot 容量集區,從而產生 12 個 Spot 容量集區。
-
機群的目標容量為 20 個執行個體。
-
預設購買選項為
spot
,這會導致機群嘗試將 20 個 Spot 執行個體啟動到 Spot 容量集區中,且擁有啟動中執行個體數目之最佳容量。
{ "SpotOptions": { "AllocationStrategy": "capacity-optimized" }, "LaunchTemplateConfigs": [ { "LaunchTemplateSpecification":{ "LaunchTemplateName":"ec2-fleet-lt1", "Version":"$Latest" }, "Overrides":[ { "InstanceType":"c5.large", "SubnetId":"subnet-fae8c380" }, { "InstanceType":"c5.large", "SubnetId":"subnet-e7188bab" }, { "InstanceType":"c5.large", "SubnetId":"subnet-49e41922" }, { "InstanceType":"c5d.large", "SubnetId":"subnet-fae8c380" }, { "InstanceType":"c5d.large", "SubnetId":"subnet-e7188bab" }, { "InstanceType":"c5d.large", "SubnetId":"subnet-49e41922" }, { "InstanceType":"m5.large", "SubnetId":"subnet-fae8c380" }, { "InstanceType":"m5.large", "SubnetId":"subnet-e7188bab" }, { "InstanceType":"m5.large", "SubnetId":"subnet-49e41922" }, { "InstanceType":"m5d.large", "SubnetId":"subnet-fae8c380" }, { "InstanceType":"m5d.large", "SubnetId":"subnet-e7188bab" }, { "InstanceType":"m5d.large", "SubnetId":"subnet-49e41922" } ] } ], "TargetCapacitySpecification": { "TotalTargetCapacity": 20, "DefaultTargetCapacityType": "spot" }, "Type": "instant" }
範例 2:使用容量最佳化分配策略啟動單一 Spot 執行個體
您可以透過進行 instant
類型多個 EC2 機群的 API 呼叫,將 TotalTargetCapacity 設定為 1,以最佳方式一次啟動一個 Spot 執行個體。
下列範例指定 instant 類型 EC2 機群中所需的參數:啟動範本、目標容量、預設購買選項,以及啟動範本覆寫。啟動範本由其啟動範本名稱和版本編號識別。12 個啟動範本覆寫會擁有 4 個不同執行個體類型和 3 個不同的子網路,每個都位於不同的可用區域。機群的目標容量為 1 個執行個體,並且預設購買選項為 Spot,這會導致機群嘗試根據容量最佳化的分配策略從 12 個 Spot 容量集區之一啟動 Spot 執行個體,以從最可用的容量集區啟動 Spot 執行個體。
{ "SpotOptions": { "AllocationStrategy": "capacity-optimized" }, "LaunchTemplateConfigs": [ { "LaunchTemplateSpecification":{ "LaunchTemplateName":"ec2-fleet-lt1", "Version":"$Latest" }, "Overrides":[ { "InstanceType":"c5.large", "SubnetId":"subnet-fae8c380" }, { "InstanceType":"c5.large", "SubnetId":"subnet-e7188bab" }, { "InstanceType":"c5.large", "SubnetId":"subnet-49e41922" }, { "InstanceType":"c5d.large", "SubnetId":"subnet-fae8c380" }, { "InstanceType":"c5d.large", "SubnetId":"subnet-e7188bab" }, { "InstanceType":"c5d.large", "SubnetId":"subnet-49e41922" }, { "InstanceType":"m5.large", "SubnetId":"subnet-fae8c380" }, { "InstanceType":"m5.large", "SubnetId":"subnet-e7188bab" }, { "InstanceType":"m5.large", "SubnetId":"subnet-49e41922" }, { "InstanceType":"m5d.large", "SubnetId":"subnet-fae8c380" }, { "InstanceType":"m5d.large", "SubnetId":"subnet-e7188bab" }, { "InstanceType":"m5d.large", "SubnetId":"subnet-49e41922" } ] } ], "TargetCapacitySpecification": { "TotalTargetCapacity": 1, "DefaultTargetCapacityType": "spot" }, "Type": "instant" }
範例 3:使用執行個體權重啟動 Spot 機群
下列範例使用執行個體權重,這表示價格為每單位小時而非每執行個體小時的價格。假設一個工作負載單位需要 15 GB 的記憶體和 4 個 vCPU,每個啟動組態會列出不同的執行個體類型和不同的權重,具體取決於執行個體上可以執行的工作負載單位數。例如,m5.xlarge (4 個 vCPU 和 16 GB 記憶體) 可以執行一個單位,並且權重為 1,m5.2xlarge (8 個 vCPU 和 32 GB 記憶體) 可以執行 2 個單位,並且權重為 2,依此類推。目標總容量設定為 40 個單位。預設購買選項為 Spot,且分配策略容量最佳化,這會產生 40 個 m5.xlarge (40 除以 1)、20 個 m5.2xlarge (40 除以 2)、10 個 m5.4xlarge (40 除以 4)、5 個 m5.8xlarge (40 除以 8),或基於容量最佳化分配策略,權重相加達到所需容量的執行個體類型的混合。
如需詳細資訊,請參閱 使用執行個體權重來管理 EC2 機群或 Spot 機群的成本和效能。
{ "SpotOptions":{ "AllocationStrategy":"capacity-optimized" }, "LaunchTemplateConfigs":[ { "LaunchTemplateSpecification":{ "LaunchTemplateName":"ec2-fleet-lt1", "Version":"$Latest" }, "Overrides":[ { "InstanceType":"m5.xlarge", "SubnetId":"subnet-fae8c380", "WeightedCapacity":1 }, { "InstanceType":"m5.xlarge", "SubnetId":"subnet-e7188bab", "WeightedCapacity":1 }, { "InstanceType":"m5.xlarge", "SubnetId":"subnet-49e41922", "WeightedCapacity":1 }, { "InstanceType":"m5.2xlarge", "SubnetId":"subnet-fae8c380", "WeightedCapacity":2 }, { "InstanceType":"m5.2xlarge", "SubnetId":"subnet-e7188bab", "WeightedCapacity":2 }, { "InstanceType":"m5.2xlarge", "SubnetId":"subnet-49e41922", "WeightedCapacity":2 }, { "InstanceType":"m5.4xlarge", "SubnetId":"subnet-fae8c380", "WeightedCapacity":4 }, { "InstanceType":"m5.4xlarge", "SubnetId":"subnet-e7188bab", "WeightedCapacity":4 }, { "InstanceType":"m5.4xlarge", "SubnetId":"subnet-49e41922", "WeightedCapacity":4 }, { "InstanceType":"m5.8xlarge", "SubnetId":"subnet-fae8c380", "WeightedCapacity":8 }, { "InstanceType":"m5.8xlarge", "SubnetId":"subnet-e7188bab", "WeightedCapacity":8 }, { "InstanceType":"m5.8xlarge", "SubnetId":"subnet-49e41922", "WeightedCapacity":8 } ] } ], "TargetCapacitySpecification":{ "TotalTargetCapacity":40, "DefaultTargetCapacityType":"spot" }, "Type":"instant" }
範例 4:在單一可用區域內啟動 Spot 執行個體
您可以透過將 Spot 選項 SingleAvailabilityZone 設定為 true,將機群設定為啟動單一可用區域內的所有執行個體。
12 個啟動範本覆寫會擁有不同執行個體類型和子網路 (每個都位於不同的可用區域),但權重容量相同。總目標容量為 20 個執行個體,預設購買選項為 Spot,Spot 分配策略為容量最佳化。EC2 機群使用啟動規格,從具有最佳容量的 Spot 容量集區啟動全部在單一可用區域中的 20 個 Spot 執行個體。
{ "SpotOptions": { "AllocationStrategy": "capacity-optimized", "SingleAvailabilityZone": true }, "LaunchTemplateConfigs": [ { "LaunchTemplateSpecification":{ "LaunchTemplateName":"ec2-fleet-lt1", "Version":"$Latest" }, "Overrides":[ { "InstanceType":"c5.4xlarge", "SubnetId":"subnet-fae8c380" }, { "InstanceType":"c5.4xlarge", "SubnetId":"subnet-e7188bab" }, { "InstanceType":"c5.4xlarge", "SubnetId":"subnet-49e41922" }, { "InstanceType":"c5d.4xlarge", "SubnetId":"subnet-fae8c380" }, { "InstanceType":"c5d.4xlarge", "SubnetId":"subnet-e7188bab" }, { "InstanceType":"c5d.4xlarge", "SubnetId":"subnet-49e41922" }, { "InstanceType":"m5.4xlarge", "SubnetId":"subnet-fae8c380" }, { "InstanceType":"m5.4xlarge", "SubnetId":"subnet-e7188bab" }, { "InstanceType":"m5.4xlarge", "SubnetId":"subnet-49e41922" }, { "InstanceType":"m5d.4xlarge", "SubnetId":"subnet-fae8c380" }, { "InstanceType":"m5d.4xlarge", "SubnetId":"subnet-e7188bab" }, { "InstanceType":"m5d.4xlarge", "SubnetId":"subnet-49e41922" } ] } ], "TargetCapacitySpecification": { "TotalTargetCapacity": 20, "DefaultTargetCapacityType": "spot" }, "Type": "instant" }
範例 5:在單一可用區域內啟動單一執行個體類型的 Spot 執行個體
您可以透過將 SpotOptions SingleInstanceType 和 SingleAvailabilityZone 設定為 true,將機群設定為啟動單一可用區域內,相同執行個體類型的所有執行個體。
12 個啟動範本覆寫會擁有不同執行個體類型和子網路 (每個都位於不同的可用區域),但權重容量相同。總目標容量為 20 個執行個體,預設購買選項為 Spot,Spot 分配策略為容量最佳化。EC2 機群使用啟動規格,從具有最佳容量的 Spot 容量集區啟動全部在單一可用區域中,相同執行個體類型的 20 個 Spot 執行個體。
{ "SpotOptions": { "AllocationStrategy": "capacity-optimized", "SingleInstanceType": true, "SingleAvailabilityZone": true }, "LaunchTemplateConfigs": [ { "LaunchTemplateSpecification":{ "LaunchTemplateName":"ec2-fleet-lt1", "Version":"$Latest" }, "Overrides":[ { "InstanceType":"c5.4xlarge", "SubnetId":"subnet-fae8c380" }, { "InstanceType":"c5.4xlarge", "SubnetId":"subnet-e7188bab" }, { "InstanceType":"c5.4xlarge", "SubnetId":"subnet-49e41922" }, { "InstanceType":"c5d.4xlarge", "SubnetId":"subnet-fae8c380" }, { "InstanceType":"c5d.4xlarge", "SubnetId":"subnet-e7188bab" }, { "InstanceType":"c5d.4xlarge", "SubnetId":"subnet-49e41922" }, { "InstanceType":"m5.4xlarge", "SubnetId":"subnet-fae8c380" }, { "InstanceType":"m5.4xlarge", "SubnetId":"subnet-e7188bab" }, { "InstanceType":"m5.4xlarge", "SubnetId":"subnet-49e41922" }, { "InstanceType":"m5d.4xlarge", "SubnetId":"subnet-fae8c380" }, { "InstanceType":"m5d.4xlarge", "SubnetId":"subnet-e7188bab" }, { "InstanceType":"m5d.4xlarge", "SubnetId":"subnet-49e41922" } ] } ], "TargetCapacitySpecification": { "TotalTargetCapacity": 20, "DefaultTargetCapacityType": "spot" }, "Type": "instant" }
範例 6:僅在可啟動最小目標容量時才啟動 Spot 執行個體
只有透過將 Spot 選項 MinTargetCapacity 設定為要同時啟動的最小目標容量,以啟動最小目標容量,您才可以將機群設定為啟動執行個體。
12 個啟動範本覆寫會擁有不同執行個體類型和子網路 (每個都位於不同的可用區域),但權重容量相同。總目標容量和最小目標容量設定為 20 個執行個體,預設購買選項為 Spot,Spot 分配策略為容量最佳化。只有在能夠同時啟動全部 20 個執行個體時,EC2 機群才能使用啟動範本覆寫,從具有最優容量的 Spot 容量集區啟動 20 個 Spot 執行個體。
{ "SpotOptions": { "AllocationStrategy": "capacity-optimized", "MinTargetCapacity": 20 }, "LaunchTemplateConfigs": [ { "LaunchTemplateSpecification":{ "LaunchTemplateName":"ec2-fleet-lt1", "Version":"$Latest" }, "Overrides":[ { "InstanceType":"c5.4xlarge", "SubnetId":"subnet-fae8c380" }, { "InstanceType":"c5.4xlarge", "SubnetId":"subnet-e7188bab" }, { "InstanceType":"c5.4xlarge", "SubnetId":"subnet-49e41922" }, { "InstanceType":"c5d.4xlarge", "SubnetId":"subnet-fae8c380" }, { "InstanceType":"c5d.4xlarge", "SubnetId":"subnet-e7188bab" }, { "InstanceType":"c5d.4xlarge", "SubnetId":"subnet-49e41922" }, { "InstanceType":"m5.4xlarge", "SubnetId":"subnet-fae8c380" }, { "InstanceType":"m5.4xlarge", "SubnetId":"subnet-e7188bab" }, { "InstanceType":"m5.4xlarge", "SubnetId":"subnet-49e41922" }, { "InstanceType":"m5d.4xlarge", "SubnetId":"subnet-fae8c380" }, { "InstanceType":"m5d.4xlarge", "SubnetId":"subnet-e7188bab" }, { "InstanceType":"m5d.4xlarge", "SubnetId":"subnet-49e41922" } ] } ], "TargetCapacitySpecification": { "TotalTargetCapacity": 20, "DefaultTargetCapacityType": "spot" }, "Type": "instant" }
範例 7:僅當可在單個可用區域中啟動相同執行個體類型的最低目標容量時,才能啟動 Spot 執行個體
只有透過將 Spot 選項 MinTargetCapacity 設定為要與 SingleInstanceType 和 SingleAvailabilityZone 選項同時啟動的最小目標容量,以在單個可用區域中,以單個執行個體類型啟動最小目標容量,您才可以將機群設定為啟動執行個體。
覆寫啟動範本的 12 個啟動規格擁有不同執行個體類型和子網路 (每個都位於不同的可用區域),但權重容量相同。總目標容量和最小目標容量均設定為 20 個執行個體,預設購買選項為 Spot,Spot 分配策略為容量最佳化,SingleInstanceType 和 SingleAvailabilityZone 為 true。只有在能同時啟動全部 20 個執行個體時,EC2 機群才能使用啟動規格,從具有最佳容量的 Spot 容量集區啟動全部在單一可用區域中,相同執行個體類型的 20 個 Spot 執行個體。
{ "SpotOptions": { "AllocationStrategy": "capacity-optimized", "SingleInstanceType": true, "SingleAvailabilityZone": true, "MinTargetCapacity": 20 }, "LaunchTemplateConfigs": [ { "LaunchTemplateSpecification":{ "LaunchTemplateName":"ec2-fleet-lt1", "Version":"$Latest" }, "Overrides":[ { "InstanceType":"c5.4xlarge", "SubnetId":"subnet-fae8c380" }, { "InstanceType":"c5.4xlarge", "SubnetId":"subnet-e7188bab" }, { "InstanceType":"c5.4xlarge", "SubnetId":"subnet-49e41922" }, { "InstanceType":"c5d.4xlarge", "SubnetId":"subnet-fae8c380" }, { "InstanceType":"c5d.4xlarge", "SubnetId":"subnet-e7188bab" }, { "InstanceType":"c5d.4xlarge", "SubnetId":"subnet-49e41922" }, { "InstanceType":"m5.4xlarge", "SubnetId":"subnet-fae8c380" }, { "InstanceType":"m5.4xlarge", "SubnetId":"subnet-e7188bab" }, { "InstanceType":"m5.4xlarge", "SubnetId":"subnet-49e41922" }, { "InstanceType":"m5d.4xlarge", "SubnetId":"subnet-fae8c380" }, { "InstanceType":"m5d.4xlarge", "SubnetId":"subnet-e7188bab" }, { "InstanceType":"m5d.4xlarge", "SubnetId":"subnet-49e41922" } ] } ], "TargetCapacitySpecification": { "TotalTargetCapacity": 20, "DefaultTargetCapacityType": "spot" }, "Type": "instant" }
範例 8:使用多個啟動範本來啟動執行個體
您可以透過指定多個啟動範本,將機群設定為針對不同執行個體類型或執行個體類型群組,啟動具有不同啟動規格的執行個體。在這個範例中,我們希望針對不同執行個體類型,擁有不同 EBS 磁碟區大小,並且我們在啟動範本 ec2-fleet-lt-4xl、ec2-fleet-lt-9xl 和 ec2-fleet-lt-18xl 中進行設定。
在此範例中,我們根據大小,針對 3 個執行個體類型使用 3 種不同的啟動範本。所有啟動範本上的啟動規格覆寫會根據執行個體類型上的 vCPU,使用執行個體權重。總目標容量為 144 個單位,預設購買選項為 Spot,Spot 分配策略為容量最佳化。EC2 機群可以使用啟動範本 ec2-fleet-4xl 來啟動 9 個 c5n.4xlarge (144 除以 16),或使用啟動範本 ec2-fleet-9xl 來啟動 4 個 c5n.9xlarge (144 除以 36),或使用啟動範本 ec2-fleet-18xl 來啟動 2 個 c5n.18xlarge (144 除以 72),或基於容量最佳化分配策略,權重相加達到所需容量的執行個體類型的混合。
{ "SpotOptions": { "AllocationStrategy": "capacity-optimized" }, "LaunchTemplateConfigs": [ { "LaunchTemplateSpecification":{ "LaunchTemplateName":"ec2-fleet-lt-18xl", "Version":"$Latest" }, "Overrides":[ { "InstanceType":"c5n.18xlarge", "SubnetId":"subnet-fae8c380", "WeightedCapacity":72 }, { "InstanceType":"c5n.18xlarge", "SubnetId":"subnet-e7188bab", "WeightedCapacity":72 }, { "InstanceType":"c5n.18xlarge", "SubnetId":"subnet-49e41922", "WeightedCapacity":72 } ] }, { "LaunchTemplateSpecification":{ "LaunchTemplateName":"ec2-fleet-lt-9xl", "Version":"$Latest" }, "Overrides":[ { "InstanceType":"c5n.9xlarge", "SubnetId":"subnet-fae8c380", "WeightedCapacity":36 }, { "InstanceType":"c5n.9xlarge", "SubnetId":"subnet-e7188bab", "WeightedCapacity":36 }, { "InstanceType":"c5n.9xlarge", "SubnetId":"subnet-49e41922", "WeightedCapacity":36 } ] }, { "LaunchTemplateSpecification":{ "LaunchTemplateName":"ec2-fleet-lt-4xl", "Version":"$Latest" }, "Overrides":[ { "InstanceType":"c5n.4xlarge", "SubnetId":"subnet-fae8c380", "WeightedCapacity":16 }, { "InstanceType":"c5n.4xlarge", "SubnetId":"subnet-e7188bab", "WeightedCapacity":16 }, { "InstanceType":"c5n.4xlarge", "SubnetId":"subnet-49e41922", "WeightedCapacity":16 } ] } ], "TargetCapacitySpecification": { "TotalTargetCapacity": 144, "DefaultTargetCapacityType": "spot" }, "Type": "instant" }
範例 9:啟動基於隨需執行個體的 Spot 執行個體
下列範例指定機群 20 個執行個體的總目標容量,以及 5 個隨需執行個體的目標容量。預設購買選項為 Spot。機群依照指定啟動 5 個隨需執行個體,但需要再啟動 15 個執行個體才能實現總目標容量。差值購買選項的計算方式為 TotalTargetCapacity – OnDemandTargetCapacity = DefaultTargetCapacityType,這會導致啟動 15 個 Spot 執行個體的機群根據容量最佳化的分配策略,構成 12 個 Spot 容量集區之一。
{ "SpotOptions": { "AllocationStrategy": "capacity-optimized" }, "LaunchTemplateConfigs": [ { "LaunchTemplateSpecification":{ "LaunchTemplateName":"ec2-fleet-lt1", "Version":"$Latest" }, "Overrides":[ { "InstanceType":"c5.large", "SubnetId":"subnet-fae8c380" }, { "InstanceType":"c5.large", "SubnetId":"subnet-e7188bab" }, { "InstanceType":"c5.large", "SubnetId":"subnet-49e41922" }, { "InstanceType":"c5d.large", "SubnetId":"subnet-fae8c380" }, { "InstanceType":"c5d.large", "SubnetId":"subnet-e7188bab" }, { "InstanceType":"c5d.large", "SubnetId":"subnet-49e41922" }, { "InstanceType":"m5.large", "SubnetId":"subnet-fae8c380" }, { "InstanceType":"m5.large", "SubnetId":"subnet-e7188bab" }, { "InstanceType":"m5.large", "SubnetId":"subnet-49e41922" }, { "InstanceType":"m5d.large", "SubnetId":"subnet-fae8c380" }, { "InstanceType":"m5d.large", "SubnetId":"subnet-e7188bab" }, { "InstanceType":"m5d.large", "SubnetId":"subnet-49e41922" } ] } ], "TargetCapacitySpecification": { "TotalTargetCapacity": 20, "OnDemandTargetCapacity": 5, "DefaultTargetCapacityType": "spot" }, "Type": "instant" }
範例 10:基於使用容量保留和優先順序分配策略的隨需執行個體,使用容量最佳化分配策略啟動 Spot 執行個體
您可以透過將容量保留的使用策略設為 use-capacity-reservations-first (首先使用容量保留),來將機群設定為在以預設目標容量類型作為 Spot 啟動隨需執行個體的基礎時,首先使用按需容量保留。因此,如果多個執行個體集區有未使用的容量保留,則會套用所選擇的隨需分配策略。在此範例中,隨需分配策略為優先順序。
在此範例中,有 6 個未使用的容量保留可供使用。這小於機群的目標隨需容量 10 個隨需執行個體。
帳戶在 2 個集區中有以下 6 個未使用的容量保留。每個集區中的容量保留數目由 AvailableInstanceCount 表示。
{ "CapacityReservationId": "cr-111", "InstanceType": "m5.large", "InstancePlatform": "Linux/UNIX", "AvailabilityZone": "us-east-1a", "AvailableInstanceCount": 3, "InstanceMatchCriteria": "open", "State": "active" } { "CapacityReservationId": "cr-222", "InstanceType": "c5.large", "InstancePlatform": "Linux/UNIX", "AvailabilityZone": "us-east-1a", "AvailableInstanceCount": 3, "InstanceMatchCriteria": "open", "State": "active" }
下列機群組態僅顯示此範例的相關組態。隨需分配策略是優先順序,而容量保留的使用策略是 use-capacity-reservations-first (首先使用容量保留)。Spot 分配策略是容量最佳化。目標總容量為 20、隨需目標容量為 10、預設目標容量類型為 spot。
{ "SpotOptions": { "AllocationStrategy": "capacity-optimized" }, "OnDemandOptions":{ "CapacityReservationOptions": { "UsageStrategy": "use-capacity-reservations-first" }, "AllocationStrategy":"prioritized" }, "LaunchTemplateConfigs": [ { "LaunchTemplateSpecification":{ "LaunchTemplateName":"ec2-fleet-lt1", "Version":"$Latest" }, "Overrides":[ { "InstanceType":"c5.large", "SubnetId":"subnet-fae8c380", "Priority": 1.0 }, { "InstanceType":"c5.large", "SubnetId":"subnet-e7188bab", "Priority": 2.0 }, { "InstanceType":"c5.large", "SubnetId":"subnet-49e41922", "Priority": 3.0 }, { "InstanceType":"c5d.large", "SubnetId":"subnet-fae8c380", "Priority": 4.0 }, { "InstanceType":"c5d.large", "SubnetId":"subnet-e7188bab", "Priority": 5.0 }, { "InstanceType":"c5d.large", "SubnetId":"subnet-49e41922", "Priority": 6.0 }, { "InstanceType":"m5.large", "SubnetId":"subnet-fae8c380", "Priority": 7.0 }, { "InstanceType":"m5.large", "SubnetId":"subnet-e7188bab", "Priority": 8.0 }, { "InstanceType":"m5.large", "SubnetId":"subnet-49e41922", "Priority": 9.0 }, { "InstanceType":"m5d.large", "SubnetId":"subnet-fae8c380", "Priority": 10.0 }, { "InstanceType":"m5d.large", "SubnetId":"subnet-e7188bab", "Priority": 11.0 }, { "InstanceType":"m5d.large", "SubnetId":"subnet-49e41922", "Priority": 12.0 } ] } ], "TargetCapacitySpecification": { "TotalTargetCapacity": 20, "OnDemandTargetCapacity": 10, "DefaultTargetCapacityType": "spot" }, "Type": "instant" }
使用上述組態建立 instant 類型機群之後,會啟動以下 20 個執行個體以符合目標容量:
-
us-east-1a 中的 7 個 c5.large 隨需執行個體 – us-east-1a 中的 c5.large 是第一優先順序,並有 3 個未使用 c5.large容量保留可供使用。容量保留會先用來啟動 3 個隨需執行個體,再根據隨需分配策略啟動額外的 4 個隨需執行個體,即此範例中的優先順序。
-
us-east-1a 中的 3 個 m5.large 隨需執行個體 – us-east-1a 中的 m5.large 是第二優先順序,並有 3 個未使用 c3.large 容量保留可供使用。
-
來自 12 個 Spot 容量集區中的 10 個 Spot 執行個體,該集區根據容量最佳化的分配策略具有最佳容量。
啟動機群後,您可以執行 describe-capacity-reservations
{ "CapacityReservationId": "cr-111", "InstanceType": "m5.large", "AvailableInstanceCount": 0 } { "CapacityReservationId": "cr-222", "InstanceType": "c5.large", "AvailableInstanceCount": 0 }
範例 11:使用容量最佳化的優先順序分配策略啟動 Spot 執行個體
下列範例指定 instant 類型 EC2 機群中所需的參數:啟動範本、目標容量、預設購買選項,以及啟動範本覆寫。啟動範本由其啟動範本名稱和版本編號識別。覆寫啟動範本的 12 個啟動規格擁有已指派優先順序的 4 個不同執行個體類型和 3 個不同的子網路,每個都位於不同的可用區域。機群的目標容量是 20 個執行個體,預設購買選項為 Spot,這導致機群嘗試根據容量最佳化優先順序的分配策略,從 12 個 Spot 容量集區之一啟動 20 個 Spot 執行個體,該策略會竭盡全力實作優先順序,但會先針對容量最佳化。
{ "SpotOptions": { "AllocationStrategy": "capacity-optimized-prioritized" }, "LaunchTemplateConfigs": [ { "LaunchTemplateSpecification":{ "LaunchTemplateName":"ec2-fleet-lt1", "Version":"$Latest" }, "Overrides":[ { "InstanceType":"c5.large", "SubnetId":"subnet-fae8c380", "Priority": 1.0 }, { "InstanceType":"c5.large", "SubnetId":"subnet-e7188bab", "Priority": 1.0 }, { "InstanceType":"c5.large", "SubnetId":"subnet-49e41922", "Priority": 1.0 }, { "InstanceType":"c5d.large", "SubnetId":"subnet-fae8c380", "Priority": 2.0 }, { "InstanceType":"c5d.large", "SubnetId":"subnet-e7188bab", "Priority": 2.0 }, { "InstanceType":"c5d.large", "SubnetId":"subnet-49e41922", "Priority": 2.0 }, { "InstanceType":"m5.large", "SubnetId":"subnet-fae8c380", "Priority": 3.0 }, { "InstanceType":"m5.large", "SubnetId":"subnet-e7188bab", "Priority": 3.0 }, { "InstanceType":"m5.large", "SubnetId":"subnet-49e41922", "Priority": 3.0 }, { "InstanceType":"m5d.large", "SubnetId":"subnet-fae8c380", "Priority": 4.0 }, { "InstanceType":"m5d.large", "SubnetId":"subnet-e7188bab", "Priority": 4.0 }, { "InstanceType":"m5d.large", "SubnetId":"subnet-49e41922", "Priority": 4.0 } ] } ], "TargetCapacitySpecification": { "TotalTargetCapacity": 20, "DefaultTargetCapacityType": "spot" }, "Type": "instant" }
範例 12:指定 Systems Manager 參數而非 AMI ID
下列範例使用啟動範本來指定機群中執行個體的組態。在此範例中,針對 ImageId
,要使用 System Manager 參數參考 AMI,而不是指定 AMI ID。啟動執行個體時,Systems Manager 參數會解析為 AMI ID。
在此範例中,Systems Manager 參數將以有效的格式指定:resolve:ssm:golden-ami
。Systems Manager 參數還有其他有效的格式。如需詳細資訊,請參閱使用 Systems Manager 參數而非 AMI ID。
注意
機群類型必須為 instant
。其他機群類型不支援指定 System Manager 參數替代 AMI ID。
{ "LaunchTemplateData": { "ImageId": "resolve:ssm:golden-ami", "InstanceType": "
m5.4xlarge
", "TagSpecifications": [{ "ResourceType": "instance", "Tags": [{ "Key": "Name
", "Value": "webserver
" }] }] } }