本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
設定類型的EC2叢集 instant
類型即時的EC2叢集是同步的一次性要求,只會嘗試一次啟動您想要的容量。API回應會列出已啟動的執行處理,以及無法啟動之執行處理的錯誤。使用類型瞬間EC2艦隊有幾個好處,這在本文中描述。本文末尾處會提供範例組態。
對於需要僅啟動才能啟動EC2執行個體API的工作負載,您可以使用. RunInstances API 但是,使用時 RunInstances,您只能啟動隨需執行個體或 Spot 執行個體,但不能在同一個請求中啟動兩者。此外,當您使用 RunInstances 啟動 Spot 執行個體時,您的競價型執行個體請求僅限於一種執行個體類型和一個可用區域。此操作針對單個 Spot 容量集區 (一組具有相同執行個體類型和可用區域的未使用執行個體)。如果 Spot 容量集區沒有足夠的 Spot 執行個體容量供您的請求使用,則 RunInstances 呼叫會失敗。
建議您不 RunInstances 要使用啟動 Spot 執行個體,而是將type
參數設定instant
為使用,以獲得下列優點: CreateFleet API
-
在一個請求中啟動隨需執行個體和 Spot 執行個體。EC2叢集可以啟動隨需執行個體、Spot 執行個體或兩者。如果有可用容量且您的請求中每個小時的價格上限超過 Spot 價格,則會滿足 Spot 執行個體的請求。
-
增加 Spot 執行個體的可用性。透過使用類型的EC2叢集
instant
,您可以按照 Spot 最佳做法啟動 Spot 執行個體,並獲得所帶來的好處:-
Spot 最佳實務:對執行個體類型和可用區域具有彈性。
好處:透過指定數個執行個體類型和可用區域,您可以增加 Spot 容量集區的數目。這可讓 Spot 服務更有機會尋找並配置您所需的 Spot 運算容量。一個好的經驗法則是針對每個工作負載至少 10 個執行個體類型靈活彈性,並確保所有可用區域都設定為在VPC.
-
發現最佳做法:使用price-capacity-optimized配置策略。
優點:
price-capacity-optimized
配置策略可從最可用的 Spot 容量集區識別執行個體,然後從這些集區中最低價格自動佈建執行個體。由於您的競價型執行個體容量來自具有最佳容量的集區,因此可降低當 Amazon EC2 需要恢復容量時,Spot 執行個體中斷的可能性。
-
-
取得更廣泛的功能組合。對於需要僅啟動的工作負載API,以及您希望管理執行個體生命週期而不是讓EC2叢集為您管理它的工作負載,請使用EC2叢集類型
instant
而非. RunInstancesAPI EC2艦隊提供了更廣泛的功能比 RunInstances,如下面的例子所示。對於所有其他工作負載,您應該使用 Amazon EC2 Auto Scaling,因為它為各種工作負載提供了更全面的功能集,例如ELB支援的應用程式、容器化工作負載和佇列處理任務。
您可以使用即時類型的EC2叢集將執行個體啟動到容量區塊中。如需詳細資訊,請參閱教學課程:設定EC2叢集以將執行個體啟動至容量區塊。
AWS Amazon EC2 自 Auto Scaling 和 Amazon 等服務EMR使用類型即時的EC2叢集來啟動EC2執行個體。
類型即時EC2艦隊的先決條件
如需建立EC2叢集的先決條件,請參閱EC2機隊先決條。
即時EC2艦隊如何運作
使用類型的EC2艦隊時instant
,事件的順序如下:
-
將CreateFleet要求類型設定為
instant
。如需詳細資訊,請參閱建立EC2艦隊。請注意,API撥打電話後,就無法修改。 -
當您撥API打電話時,EC2叢集會針對您想要的容量提出同步一次性要求。
-
API回應會列出已啟動的執行處理,以及無法啟動之執行處理的錯誤。
-
您可以描述您的EC2叢集、列出與您的EC2叢集相關聯的執行個體,以及檢視EC2叢集的歷史記錄。
-
執行個體啟動後,您可以刪除叢集請求。刪除機群請求時,您也可以選擇終止相關聯的執行個體,或讓它們繼續執行。
-
您隨時可終止執行個體。
範例
下列範例顯示如何instant
針對不同的使用案例使用類型的EC2叢集。如需有關使用EC2 CreateFleet API參數的詳細資訊,請參閱 Amazon 參EC2API考CreateFleet中的。
範例
- 範例 1:使用容量最佳化分配策略啟動 Spot 執行個體
- 範例 2:使用容量最佳化分配策略啟動單一 Spot 執行個體
- 範例 3:使用執行個體權重啟動 Spot Fleet
- 範例 4:在單一可用區域內啟動 Spot 執行個體
- 範例 5:在單一可用區域內啟動單一執行個體類型的 Spot 執行個體
- 範例 6:僅在可啟動最小目標容量時才啟動 Spot 執行個體
- 範例 7:僅當可在單個可用區域中啟動相同執行個體類型的最低目標容量時,才能啟動 Spot 執行個體
- 範例 8:使用多個啟動範本來啟動執行個體
- 範例 9:啟動基於隨需執行個體的 Spot 執行個體
- 範例 10:基於使用容量預留和優先順序分配策略的隨需執行個體,使用容量最佳化分配策略啟動 Spot 執行個體
- 範例 11:使用 capacity-optimized-prioritized 配置策略啟動競價型執行個體
- 範例 12:指定 Systems Manager 參數而非 AMI ID
範例 1:使用容量最佳化分配策略啟動 Spot 執行個體
下列範例會指定「EC2叢集」類型中所需的參數instant
:啟動樣版、目標產能、預設採購選項,以及啟動樣版覆寫。
-
啟動範本由其啟動範本名稱和版本編號識別。
-
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 執行個體
您可以 TotalTargetCapacity 將設定為 1,以最佳方式一次啟動一個 Spot 執行個體instant
,方法是進行多個EC2叢集API呼叫類型。
下列範例會指定「即時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 Fleet
下列範例使用執行個體權重,這表示價格為每單位小時而非每執行個體小時的價格。假設工作負載的單位需要 15 GB 記憶體和 4,每個啟動組態都會列出不同的執行個體類型和不同的權重,根據執行個體可在執行個體上執行的工作負載單位數量而定vCPUs。例如,一個 m5.xlarge(4 vCPUs 和 16 GB 的內存)可以運行一個單元,並且加權為 1,m5.2xlarge(8 vCPUs 和 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 執行個體,全部在單一 AZ 中啟動。
{ "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 執行個體
您可以將叢集設定為 true 和 true,以啟動相同執行個體類型的所有執行個體,並 SingleAvailabilityZone 在單一可用區域中啟動。 SpotOptions SingleInstanceType
12 個啟動範本覆寫會擁有不同執行個體類型和子網 (每個都位於不同的可用區域),但權重容量相同。總目標容量為 20 個執行個體,預設購買選項為 Spot,Spot 分配策略為容量最佳化。EC2叢集會從 Spot 執行個體集區的單一 AZ 中啟動 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 為真。只有在能夠同時啟動全部 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磁碟區大小,而且我們已經在啟動範本中進行了設定。
在此範例中,我們根據大小,針對 3 個執行個體類型使用 3 種不同的啟動範本。所有啟動範本的啟動規格覆寫會根據例證類型使用例證權重。 vCPUs 總目標容量為 144 個單位,預設購買選項為 Spot,Spot 分配策略為容量最佳化。EC2機隊可以使用啟動範本啟動 9 c5n.4 倍大 (144 除以 16),或使用啟動範本 ec2-Fleet-9xl,或使用啟動範本 ec2-Fleet-18xl (144 除以 72),或者使用啟動範本 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 執行個體
您可以將容量保留的使用策略設定為,將叢集設定為在啟動具有預設目標容量類型為 Spot 的隨需執行個體基礎時,先使用隨需容量保留 use-capacity-reservations-first。因此,如果多個執行個體集區有未使用的 容量預留,則會套用所選擇的隨需分配策略。在此範例中,隨需分配策略為優先順序。
在此範例中,有 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-firstSpot 分配策略是容量最佳化。目標總容量為 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以查看剩餘的未使用容量保留數量。在此範例中,您應該會看到下列回應,其中顯示了已使用的所有 c5.large 和 m5.large 容量預留。
{ "CapacityReservationId": "cr-111", "InstanceType": "m5.large", "AvailableInstanceCount": 0 } { "CapacityReservationId": "cr-222", "InstanceType": "c5.large", "AvailableInstanceCount": 0 }
範例 11:使用 capacity-optimized-prioritized 配置策略啟動競價型執行個體
下列範例會指定「即時EC2叢集」類型中所需的參數:啟動樣板、目標產能、預設採購選項,以及啟動範本覆寫。啟動範本由其啟動範本名稱和版本編號識別。覆寫啟動範本的 12 個啟動規格擁有已指派優先順序的 4 個不同執行個體類型和 3 個不同的子網,每個都位於不同的可用區域。叢集的目標容量為 20 個執行個體,而預設的購買選項為 Spot,這會導致叢集嘗試根據 capacity-optimized-prioritized 配置策略從 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
,針對使用系統管理員參數來參照,而不AMI是指定 AMI ID。執行個體啟動時,Systems Manager 參數將解析為 AMI ID。
在此範例中,系 Systems Manager 參數以有效的格式指定:resolve:ssm:golden-ami
。Systems Manager 參數還有其他有效格式。如需詳細資訊,請參閱使用「Systems Manager」參數而不是 AMI ID。
注意
機群類型必須為 instant
。其他叢集類型不支援指定系統管理員參數而非AMI識別碼。
{ "LaunchTemplateData": { "ImageId": "resolve:ssm:golden-ami", "InstanceType": "
m5.4xlarge
", "TagSpecifications": [{ "ResourceType": "instance", "Tags": [{ "Key": "Name
", "Value": "webserver
" }] }] } }