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

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

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

Capacity Blocks協助您在 future 日期保留備受歡迎的GPU執行個體,以支援短時間的機器學習 (ML) 工作負載。

有關以Capacity Blocks及它們如何工作的概述,請Capacity Blocks參閱 Amazon EC2 用戶指南中的 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 自動擴展的排程擴展

  • 視需要新增生命週期關聯,以便在縮減期間對執行個體內的應用程式執行正常關閉程序。Amazon EC2在容量區塊保留結束前 30 分鐘強制終止執行個體之前,請預留足夠的時間讓生命週期動作完成。如需詳細資訊,請參閱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. 在打開 Amazon EC2 控制台https://console.aws.amazon.com/ec2/

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

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

  4. 選擇 [建立啟動範本],然後建立啟動範本。視需要包括 Amazon 機器映像 (AMI) 的 ID、執行個體類型以及任何其他啟動範本設定。

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

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

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

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

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

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

使用下列create-launch-template命令建立指定現有容量區塊保留區識別碼的啟動範本。替換每個 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命令來驗證與啟動範本相關聯的容量區塊保留區識別碼。

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」群組具有相容的組態時,才能使用 Support 援。不支援混合執行個體群組和暖集區。

  • 您一次只能以一個容量區塊為目標。