使用 Capacity Blocks 適用於機器學習工作負載 - Amazon EC2 Auto Scaling

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

使用 Capacity Blocks 適用於機器學習工作負載

Capacity Blocks 協助您在未來日期保留熱門的 GPU 執行個體,以支援您的短期機器學習 (ML) 工作負載。

如需 的概觀 Capacity Blocks 以及它們的運作方式,請參閱 Capacity BlocksAmazon EC2 使用者指南中的 for ML

若要開始使用 Capacity Blocks,您可以在特定可用區域中建立容量保留。Capacity Blocks 在單一可用區域中以targeted容量保留形式交付。建立啟動範本時,請指定容量區塊的保留 ID 和執行個體類型。然後,更新您的 Auto Scaling 群組,以使用您建立的啟動範本和容量區塊的可用區域。當您的容量區塊保留開始時,請使用排程擴展來啟動與容量區塊保留相同的執行個體數目。

重要

Capacity Blocks 僅適用於特定 Amazon EC2 執行個體類型和 AWS 區域。如需詳細資訊,請參閱 Amazon EC2 使用者指南中的先決條件

操作準則

下列是透過 Auto Scaling 群組使用容量區塊時應遵循的基本操作準則。

  • 在容量區塊保留結束時間前 30 分鐘以上,將您的 Auto Scaling 群組縮減為零。Amazon EC2 將在容量區塊的結束時間之前 30 分鐘終止仍在執行的任何執行個體。

  • 我們建議您使用排程擴展來縮減 (新增執行個體),並在適當的保留時間縮減 (移除執行個體)。如需詳細資訊,請參閱Amazon EC2 Auto Scaling 的排程擴展

  • 視需要新增生命週期關聯,以便在縮減期間對執行個體內的應用程式執行正常關閉程序。在容量區塊保留結束時間 30 分鐘,在 Amazon EC2 開始強制終止執行個體之前,請預留足夠的時間,讓生命週期動作完成。如需詳細資訊,請參閱Amazon EC2 Auto Scaling lifecycle hook

  • 請確定 Auto Scaling 群組在整個保留期間皆指向正確的啟動範本版本。我們建議您指向特定版本的啟動範本,而不是 $Default$Latest 版本。

注意

如果您在保留結束且 Amazon EC2 復原之前讓容量區塊執行個體持續執行,Auto Scaling 群組的擴展活動即為 "taken out of service in response to an EC2 health check that indicated it had been terminated or stopped",即使該執行個體刻意在容量區塊結束時復原。同樣地,Amazon EC2 Auto Scaling 會嘗試以與未通過運作狀態檢查的任何執行個體相同的方式取代執行個體。如需詳細資訊,請參閱Auto Scaling 群組中的執行個體運作狀態檢查

在啟動範本中指定容量區塊

若要建立以 Auto Scaling 群組的特定容量區塊為目標的啟動範本,請使用下列其中一種方法:

Console
在啟動範本中指定容量區塊 (主控台)
  1. 在 EC2 開啟 Amazon https://console.aws.amazon.com/ec2/ 主控台。

  2. 在頂端導覽列中,選取您建立容量區塊 AWS 區域 的 。

  3. 在導覽窗格的 Instances (執行個體) 底下,選擇 Launch Templates (啟動範本)

  4. 選擇建立啟動範本,然後建立啟動範本。視需要包含 Amazon Machine Image (AMI)、執行個體類型和任何其他啟動範本設定的 ID。

  5. 展開進階詳細資訊區段以檢視進階設定。

  6. 針對購買選項,選擇容量區塊

  7. 針對容量保留,選擇依據 ID 的目標,然後針對容量保留 - 依據 ID 的目標,選擇現有容量區塊的容量保留 ID。

  8. 當您完成時,請選擇建立啟動範本

    如需使用啟動範本建立 Auto Scaling 群組的說明,請參閱 使用啟動範本建立 Auto Scaling 群組

AWS CLI
在啟動範本中指定容量區塊 (AWS CLI)

使用下列 create-launch-template 命令建立啟動範本,指定現有的容量區塊保留 ID。取代每個 user input placeholder 使用您自己的資訊。

aws ec2 create-launch-template --launch-template-name my-template-for-capacity-block \ --version-description AutoScalingVersion1 --region us-east-2 \ --launch-template-data file://config.json
提示

如果此命令擲回錯誤,請確定您已在 AWS CLI 本機將 更新為最新版本。

config.json 的內容。

{ "ImageId": "ami-04d5cc9b88example", "InstanceType": "p4d.24xlarge", "SecurityGroupIds": [ "sg-903004f88example" ], "KeyName": "MyKeyPair", "InstanceMarketOptions": { "MarketType": "capacity-block" }, "CapacityReservationSpecification": { "CapacityReservationTarget": { "CapacityReservationId": "cr-02168da1478b509e0" } } }

下列為範例輸出。

{ "LaunchTemplate": { "LaunchTemplateId": "lt-068f72b724example", "LaunchTemplateName": "my-template-for-capacity-block", "CreateTime": "2023-10-27T15:12:44.000Z", "CreatedBy": "arn:aws:iam::123456789012:user/Bob", "DefaultVersionNumber": 1, "LatestVersionNumber": 1 } }

您可以使用下列 describe-launch-template-versions 命令來驗證與啟動範本相關聯的容量區塊保留 ID。

aws ec2 describe-launch-template-versions --launch-template-names my-template-for-capacity-block \ --region us-east-2

下列是指定容量保留的啟動範本之範例輸出。

{ "LaunchTemplateVersions": [ { "LaunchTemplateId": "lt-068f72b724example", "LaunchTemplateName": "my-template-for-capacity-block", "VersionNumber": 1, "CreateTime": "2023-10-27T15:12:44.000Z", "CreatedBy": "arn:aws:iam::123456789012:user/Bob", "DefaultVersion": true, "LaunchTemplateData": { "ImageId": "ami-04d5cc9b88example", "InstanceType": "p5.48xlarge", "SecurityGroupIds": [ "sg-903004f88example" ], "KeyName": "MyKeyPair", "InstanceMarketOptions": { "MarketType": "capacity-block" }, "CapacityReservationSpecification": { "CapacityReservationTarget": { "CapacityReservationId": "cr-02168da1478b509e0" } } } } ] }

限制

  • 支援 Capacity Blocks 只有在 Auto Scaling 群組具有相容的組態時,才能使用 。不支援混合執行個體群組和暖集區。

  • 您一次只能鎖定一個容量區塊。