

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

# Capacity Blocks 用於機器學習工作負載
<a name="launch-template-capacity-blocks"></a>

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

如需 Capacity Blocks及其運作方式的概觀，請參閱《*Amazon EC2 使用者指南*》中的[Capacity Blocks適用於 ML](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-capacity-blocks.html) 的 。

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

**重要**  
Capacity Blocks 僅適用於特定 Amazon EC2 執行個體類型和 AWS 區域。如需詳細資訊，請參閱《*Amazon EC2 使用者指南*》中的[先決條件](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/capacity-blocks-using.html#capacity-blocks-prerequisites)。

**Topics**
+ [操作準則](#capacity-blocks-operational-guidelines)
+ [在啟動範本中指定容量區塊](#specify-a-capacity-block-in-your-launch-template)
+ [限制](#capacity-blocks-limitations)
+ [相關資源](#capacity-blocks-related-resources)

## 操作準則
<a name="capacity-blocks-operational-guidelines"></a>

下列是透過 Auto Scaling 群組使用容量區塊時應遵循的基本操作準則。
+ 在容量區塊保留結束時間前 30 分鐘以上，將您的 Auto Scaling 群組縮減為零。Amazon EC2 將在容量區塊結束時間前 30 分鐘終止任何仍在執行的執行個體。
+ 我們建議您在適當的保留時間使用排程擴展來向外擴展 （新增執行個體） 和向內擴展 （移除執行個體）。如需詳細資訊，請參閱[Amazon EC2 Auto Scaling 排程擴展](ec2-auto-scaling-scheduled-scaling.md)。
+ 視需要新增生命週期關聯，以便在縮減期間對執行個體內的應用程式執行正常關閉程序。Amazon EC2 在容量區塊保留結束前 30 分鐘強制終止執行個體*之前*，請預留足夠時間讓生命週期動作完成程序。如需詳細資訊，請參閱[Amazon EC2 Auto Scaling lifecycle hook](lifecycle-hooks.md)。
+ 請確定 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 群組中的執行個體運作狀態檢查](ec2-auto-scaling-health-checks.md)。

## 在啟動範本中指定容量區塊
<a name="specify-a-capacity-block-in-your-launch-template"></a>

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

------
#### [ Console ]

**在啟動範本中指定容量區塊 (主控台)**

1. 前往 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 開啟 Amazon EC2 主控台。

1. 在頂端導覽列上，選取您建立容量區塊 AWS 區域 的 。

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

1. 選擇**建立啟動範本**，然後建立啟動範本。視需要納入 Amazon Machine Image (AMI) 的 ID、執行個體類型，以及任何其他啟動範本設定。

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

1. 針對**購買選項**，選擇**容量區塊**。

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

1. 當您完成時，請選擇**建立啟動範本**。

   如需使用啟動範本建立 Auto Scaling 群組的說明，請參閱 [使用啟動範本建立 Auto Scaling 群組](create-asg-launch-template.md)。

------
#### [ AWS CLI ]

**在啟動範本中指定容量區塊 (AWS CLI)**  
請使用以下 [create-launch-template](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/create-launch-template.html) 命令，建立指定現有容量區塊保留 ID 的啟動範本。將每個*使用者輸入預留位置*替換為自己的資訊。

```
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](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/describe-launch-template-versions.html) 命令，來驗證容量區塊保留 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"
                    }
                }
            }
        }
    ]
}
```

------

## 限制
<a name="capacity-blocks-limitations"></a>
+ Capacity Blocks 只有在 Auto Scaling 群組具有相容的組態時，才支援 。不支援混合執行個體群組和暖集區。
+ 您一次只能以一個容量區塊為目標。

## 相關資源
<a name="capacity-blocks-related-resources"></a>
+ 如需使用 P5 執行個體的先決條件和建議，請參閱《*Amazon EC2 使用者指南*》中的 [ P5 執行個體入門](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/p5-instances-started.html)。
+ Amazon EKS 支援使用 Capacity Blocks來支援 Amazon EKS 叢集上的短期機器學習 (ML) 工作負載。如需詳細資訊，請參閱《**Amazon EKS 使用者指南**》中的[Capacity Blocks適用於 ML](https://docs.aws.amazon.com/eks/latest/userguide/capacity-blocks.html) 的 。
+ 您可以Capacity Blocks搭配支援的執行個體類型和區域使用 。不過，隨需容量保留可讓您靈活地為其他執行個體類型和區域保留容量。如需示範如何使用隨需容量保留選項的教學課程，請參閱 [使用容量預留在特定可用區域中預留容量](use-ec2-capacity-reservations.md)。