

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

# EC2 機群的教學課程
<a name="fleet-tutorials"></a>

有不同的方法可以設定 EC2 機群。您選擇的組態取決於您的特定使用案例。

下列教學課程涵蓋一些可能的使用案例，並提供實作這些案例所需的任務。


| 使用案例 | 教學課程連結 | 
| --- | --- | 
|  **使用執行個體權重來管理 EC2 機群的可用性和效能。** 執行個體加權，可讓您為 EC2 機群中的每個執行個體類型指派權重，以代表其運算容量和效能。根據權重，機群可以使用指定執行個體類型的任意組合，只要機群可以滿足所需的目標容量即可。  | [教學課程：使用執行個體權重設定 EC2 機群](ec2-fleet-instance-weighting-walkthrough.md) | 
|  **使用隨需容量以確保尖峰時段的可用性，但可受益於以較低的成本獲得額外的 Spot 容量。** 將 EC2 機群設定為使用隨需執行個體做為主要容量，以確保尖峰時段的可用容量。此外，將一些容量配置給 Spot 執行個體，以受益於折扣定價，同時請記住，如果 Amazon EC2 需要恢復容量，Spot 執行個體可能會中斷。  | [教學課程：將 EC2 機群設定為使用隨需執行個體做為主要容量](ec2-fleet-on-demand-walkthrough.md) | 
|  **使用容量保留，為您的隨需執行個體保留運算容量。** 將 EC2 機群設定為在啟動隨需執行個體時，先使用 `targeted` 容量保留。如果您有嚴格的容量需求，並且正在執行需要特定層級長期或短期容量保證的業務關鍵工作負載，建議您建立容量保留，以確保只要在需要時，即可有 Amazon EC2 容量存取權。  | [教學課程：使用目標容量保留設定 EC2 機群啟動隨需執行個體](ec2-fleet-launch-on-demand-instances-using-targeted-capacity-reservations-walkthrough.md) | 
|  **使用容量區塊為您的 ML 工作負載保留需求高的 GPU 執行個體。** 設定您的 EC2 機群以啟動執行個體至容量區塊。  | [教學課程：設定您的 EC2 機群以啟動執行個體至容量區塊](ec2-fleet-launch-instances-capacity-blocks-walkthrough.md) | 
|  **使用可中斷的容量預留來暫時重新利用整個 AWS 組織的閒置容量並節省成本。** 將 EC2 機群設定為在可中斷的容量保留中啟動執行個體，其代表 AWS 組織內的備用容量。容量擁有者可以隨時回收容量。回收後，EC2 會在 2 分鐘後終止執行個體。  | [教學課程：設定您的 EC2 機群，在可中斷的容量保留中啟動執行個體](ec2-fleet-launch-instances-interruptible-cr-walkthrough.md) | 

# 教學課程：使用執行個體權重設定 EC2 機群
<a name="ec2-fleet-instance-weighting-walkthrough"></a>

本教學課程使用一間稱為 Example Corp 的虛構公司，說明使用執行個體權重來請求 EC2 Fleet 的程序。

## 目標
<a name="ec2-fleet-instance-weighting-walkthrough-objective"></a>

Example Corp 是一間製藥公司，希望利用 Amazon EC2 的計算能力篩選可能用於抗癌的化合物。

## 規劃
<a name="ec2-fleet-instance-weighting-walkthrough-planning"></a>

Example Corp 首先檢視了 [Spot 最佳實務](https://aws.amazon.com/ec2/spot/getting-started/#bestpractices)。接下來，Example Corp 決定他們的 EC2 Fleet 需求。

**執行個體類型**  
Example Corp 擁有運算和記憶體密集型應用程式，該應用程式在至少 60 GB 記憶體和八個虛擬 CPU (vCPU) 情況下效能最佳。他們希望以最低的價格為應用程式最大限度利用這些資源。Example Corp 認為以下任一個 EC2 執行個體類型都能滿足他們的需求：


| 執行個體類型 | 記憶體 (GiB) | vCPU | 
| --- | --- | --- | 
|  r3.2xlarge  |  61  |  8  | 
|  r3.4xlarge  |  122  |  16  | 
|  r3.8xlarge  |  244  |  32  | 

**目標容量 (單位)**  
透過執行個體權重，目標容量可以等於多個執行個體 (預設) 或多個因素如核心 (vCPU)、記憶體 (GiB) 和儲存空間 (GB) 的組合。Example Corp 將其應用程式基礎 (60 GB RAM 和 8 個 vCPU) 做為一個單位考慮，Example Corp 決定此數量的 20 倍將可滿足他們的需求。因此，該公司將其 EC2 機群請求的目標容量設定為 20 個單位。

**執行個體權重**  
Example Corp 決定目標容量後，即計算執行個體權重。為了計算每個執行個體類型的執行個體權重，將決定達成目標容量所需的每個執行個體類型單位，如下所示：
+ r3.2xlarge (61.0 GB, 8 vCPUs) = 1 單位 (共 20 單位)
+ r3.4xlarge (122.0 GB, 16 vCPUs) = 2 單位 (共 20 單位)
+ r3.8xlarge (244.0 GB, 32 vCPUs) = 4 單位 (共 20 單位)

因此，Example Corp 會針對其 EC2 Fleet 請求中的各個啟動組態，指派 1、2 和 4 的執行個體權重。

**每個單位小時的價格**  
Example Corp 會使用每執行個體小時的[隨需價格](https://aws.amazon.com/ec2/pricing/)，來做為其價格的起點。他們也可以使用最近的 Spot 價格，或兩者的組合。為計算每單位小時價格，他們將每個執行個體小時的起始價格除以權重。例如：


| 執行個體類型 | 隨需價格 | 執行個體權重 | 每個單位小時的價格 | 
| --- | --- | --- | --- | 
|  r3.2xLarge  |  0.7 USD  |  1  |  0.7 USD  | 
|  r3.4xLarge  |  1.4 USD  |  2  |  0.7 USD  | 
|  r3.8xLarge  |  \$12.8  |  4  |  0.7 USD  | 

Example Corp 可以使用每單位小時 0.7 USD 的全球價格，並且對於所有三種執行個體類型都具有競爭力。在 `r3.8xlarge` 啟動規格中，他們也可以使用每單位小時 0.7 USD 全局價格和 0.9 USD 每單位小時特定價格。

## 驗證許可
<a name="ec2-fleet-instance-weighting-walkthrough-permissions"></a>

Example Corp 在建立 EC2 Fleet 之前，驗證其具有所需許可的 IAM 角色。如需詳細資訊，請參閱[EC2 Fleet 先決條件](ec2-fleet-prerequisites.md)。

## 建立啟動範本
<a name="ec2-fleet-instance-weighting-create-launch-template"></a>

接下來，範例公司會建立一個啟動範本。啟動範本 ID 會在下列步驟中使用。如需詳細資訊，請參閱[建立 Amazon EC2 啟動範本](create-launch-template.md)。

## 建立 EC2 Fleet
<a name="ec2-fleet-instance-weighting-walkthrough-request"></a>

Example Corp 會建立一個檔案 `config.json`，且其 EC2 Fleet 組態如下。在下列範例中，以您自己的資源識別符取代資源識別符。

```
{ 
    "LaunchTemplateConfigs": [
        {
            "LaunchTemplateSpecification": {
                "LaunchTemplateId": "lt-07b3bc7625cdab851", 
                "Version": "1"
            }, 
            "Overrides": [
                {
                    "InstanceType": "r3.2xlarge", 
                    "SubnetId": "subnet-482e4972", 
                    "WeightedCapacity": 1
                },
                {
                    "InstanceType": "r3.4xlarge", 
                    "SubnetId": "subnet-482e4972", 
                    "WeightedCapacity": 2
                },
                {
                    "InstanceType": "r3.8xlarge", 
                    "MaxPrice": "0.90", 
                    "SubnetId": "subnet-482e4972", 
                    "WeightedCapacity": 4
                }
            ]
        }
    ], 
    "TargetCapacitySpecification": {
        "TotalTargetCapacity": 20, 
        "DefaultTargetCapacityType": "spot"
    }
}
```

Example Corp 使用以下 [create-fleet](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-fleet.html) 命令來建立 EC2 Fleet。

```
aws ec2 create-fleet --cli-input-json file://config.json
```

如需詳細資訊，請參閱 [建立 EC2 Fleet](create-ec2-fleet.md)。

## 履行
<a name="ec2-fleet-instance-weighting-walkthrough-fulfillment"></a>

分配策略決定您的 競價型執行個體 來自哪個 Spot 容量集區。

採用 `lowest-price` 策略 (預設的策略)，競價型執行個體 來自實現時每單位價格最低的集區。為提供 20 個單位的容量，EC2 Fleet 將啟動 20 個 `r3.2xlarge` 執行個體 (20 除以 1)、10 個 `r3.4xlarge` 執行個體 (20 除以 2) 或 5 個 `r3.8xlarge` 執行個體 (20 除以 4)。

如果 Example Corp 使用 `diversified` 策略，競價型執行個體 將來自所有三個集區。EC2 Fleet 將啟動 6 個 `r3.2xlarge` 執行個體 (提供 6 個單位)、3 個 `r3.4xlarge` 執行個體 (提供 6 個單位) 和 2 個 `r3.8xlarge` 執行個體 (提供 8 個單位)，共計 20 個單位。

# 教學課程：將 EC2 機群設定為使用隨需執行個體做為主要容量
<a name="ec2-fleet-on-demand-walkthrough"></a>

本教學課程使用一間稱為 ABC Online 的虛構公司來說明請求 EC2 Fleet 的隨需做為主要容量的程序，以及 Spot 容量 (如果可用)。

## 目標
<a name="ec2-fleet-on-demand-walkthrough-objective"></a>

餐飲外送公司 ABC Online 致力於跨 EC2 執行個體類型佈建 Amazon EC2 容量和購買選項，以實現該公司所要的規模、效能和成本。

## 計畫
<a name="ec2-fleet-on-demand-walkthrough-planning"></a>

ABC Online 需要固定容量以應付尖峰期，但希望以更低的價格獲得額外容量。該公司決定下列的 EC2 機群需求：
+ 隨需執行個體容量 – ABC Online 需要 15 個隨需執行個體來確保其可以在尖峰期間容納流量。
+ Spot 執行個體容量 – ABC Online 打算佈建 5 個 Spot 執行個體，以更低的價格提高效能。

## 驗證許可
<a name="ec2-fleet-on-demand-walkthrough-permissions"></a>

ABC Online 在建立 EC2 Fleet 之前，驗證其具有所需許可的 IAM 角色。如需詳細資訊，請參閱[EC2 Fleet 先決條件](ec2-fleet-prerequisites.md)。

## 建立啟動範本
<a name="ec2-fleet-on-demand-walkthrough-create-launch-template"></a>

接下來，ABC Online 會建立啟動範本。啟動範本 ID 會在下列步驟中使用。如需詳細資訊，請參閱[建立 Amazon EC2 啟動範本](create-launch-template.md)。

## 建立 EC2 Fleet
<a name="ec2-fleet-on-demand-walkthrough-request"></a>

ABC Online 會建立一個檔案 `config.json`，且其 EC2 Fleet 組態如下。在下列範例中，以您自己的資源識別符取代資源識別符。

```
{
    "LaunchTemplateConfigs": [
        {
            "LaunchTemplateSpecification": {
                "LaunchTemplateId": "lt-07b3bc7625cdab851",
                "Version": "2"
            }

        }
    ],
    "TargetCapacitySpecification": {
        "TotalTargetCapacity": 20,
        "OnDemandTargetCapacity":15,
        "DefaultTargetCapacityType": "spot"
    }
}
```

ABC Online 使用以下 [create-fleet](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-fleet.html) 命令來建立 EC2 Fleet。

```
aws ec2 create-fleet --cli-input-json file://config.json
```

如需詳細資訊，請參閱 [建立 EC2 Fleet](create-ec2-fleet.md)。

## 履行
<a name="ec2-fleet-on-demand-walkthrough-fulfillment"></a>

分配策略決定隨需容量能始終實現，而如果有可用容量，則目標容量的剩餘部分將做為 Spot 實現。

# 教學課程：使用目標容量保留設定 EC2 機群啟動隨需執行個體
<a name="ec2-fleet-launch-on-demand-instances-using-targeted-capacity-reservations-walkthrough"></a>

本教學課程將逐步引導您完成必須執行的所有步驟，以便您的 EC2 Fleet 啟動隨需執行個體至 `targeted` 容量預留。

您將會了解到如何設定機群，以在啟動隨需執行個體時先使用 `targeted` 隨需容量預留。您也會了解到如何設定機群，以便機群在隨需目標容量總計超過可用的未使用容量預留數目時，使用指定的分配策略來選取要在其中啟動剩餘目標容量的執行個體集區。

**EC2 Fleet 組態**

本教學課程機群設定如下所示：
+ 目標容量：10 個隨需執行個體
+ 總計未使用的 `targeted` 容量保留：6 (小於機群的隨需目標容量：10 個隨需執行個體)
+ 容量保留集區數目：2 (`us-east-1a` 和 `us-east-1b`)
+ 每個集區的容量保留數目：3
+ 隨需分配策略：`lowest-price` (當未使用的容量保留數目小於隨需目標容量時，機群會根據隨需分配策略決定要用來啟動剩餘隨需容量的集區。)

  請注意，您也可以使用 `prioritized` 分配策略，而不使用 `lowest-price` 分配策略。

**若要按照 `targeted` 容量預留來啟動隨需執行個體，必須執行以下幾個步驟：**
+ [步驟 1：建立容量預留](#ec2-fleet-odcr-step1)
+ [步驟 2：建立容量預留資源群組](#ec2-fleet-odcr-step2)
+ [步驟 3：將容量預留新增至容量預留資源群組](#ec2-fleet-odcr-step3)
+ [(選用) 步驟 4：檢視資源群組中的容量預留](#ec2-fleet-odcr-step4)
+ [步驟 5：建立啟動範本，此範本指定容量預留以特定資源群組為目標](#ec2-fleet-odcr-step5)
+ [(選用) 步驟 6：描述啟動範本](#ec2-fleet-odcr-step6)
+ [步驟 7：建立 EC2 Fleet](#ec2-fleet-odcr-step7)
+ [(選用) 步驟 8：檢視剩餘未使用的容量預留數目](#ec2-fleet-odcr-step8)

## 步驟 1：建立容量預留
<a name="ec2-fleet-odcr-step1"></a>

使用 [create-capacity-reservation](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-capacity-reservation.html) 命令來建立容量預留，其中三個用於 `us-east-1a`，另外三個用於 `us-east-1b`。除了可用區域之外，容量預留的其他屬性皆相同。

**在 `us-east-1a` 中的 3 個容量預留**

```
aws ec2 create-capacity-reservation \
    --availability-zone us-east-1a \
    --instance-type c5.xlarge \
    --instance-platform Linux/UNIX \
    --instance-count 3 \
    --instance-match-criteria targeted
```

最後產生的容量預留 ID 範例

```
cr-1234567890abcdef1
```

**在 `us-east-1b` 中的 3 個容量預留**

```
aws ec2 create-capacity-reservation \
    --availability-zone us-east-1b \
    --instance-type c5.xlarge \
    --instance-platform Linux/UNIX \
    --instance-count 3 \
    --instance-match-criteria targeted
```

最後產生的容量預留 ID 範例

```
cr-54321abcdef567890
```

## 步驟 2：建立容量預留資源群組
<a name="ec2-fleet-odcr-step2"></a>

使用 `resource-groups` 服務和 [create-group](https://docs.aws.amazon.com/cli/latest/reference/resource-groups/create-group.html) 命令來建立容量預留資源群組。在此範例中，資源群組會命名為 `my-cr-group`。如需為何必須建立資源群組的相關資訊，請參閱 [使用容量保留功能來保留 EC2 機群中的隨需容量](ec2-fleet-on-demand-capacity-reservations.md)。

```
aws resource-groups create-group \
    --name my-cr-group \
    --configuration '{"Type":"AWS::EC2::CapacityReservationPool"}' '{"Type":"AWS::ResourceGroups::Generic", "Parameters": [{"Name": "allowed-resource-types", "Values": ["AWS::EC2::CapacityReservation"]}]}'
```

## 步驟 3：將容量預留新增至容量預留資源群組
<a name="ec2-fleet-odcr-step3"></a>

使用 `resource-groups` 服務和 [group-resources](https://docs.aws.amazon.com/cli/latest/reference/resource-groups/group-resources.html) 命令，將您在步驟 1 中建立的容量預留新增至容量預留資源群組。請注意，您必須參考隨需容量預留的 ARN。

```
aws resource-groups group-resources \
    --group my-cr-group \
    --resource-arns \
      arn:aws:ec2:us-east-1:123456789012:capacity-reservation/cr-1234567890abcdef1 \
      arn:aws:ec2:us-east-1:123456789012:capacity-reservation/cr-54321abcdef567890
```

範例輸出

```
{
   "Failed": [], 
   "Succeeded": [ 
   "arn:aws:ec2:us-east-1:123456789012:capacity-reservation/cr-1234567890abcdef1", 
   "arn:aws:ec2:us-east-1:123456789012:capacity-reservation/cr-54321abcdef567890" 
   ] 
}
```

## (選用) 步驟 4：檢視資源群組中的容量預留
<a name="ec2-fleet-odcr-step4"></a>

使用 `resource-groups` 服務和 [list-group-resources](https://docs.aws.amazon.com/cli/latest/reference/resource-groups/list-group-resources.html) 命令可選擇性地描述資源群組以檢視其容量預留。

```
aws resource-groups list-group-resources --group my-cr-group
```

範例輸出

```
{
    "ResourceIdentifiers": [
        {
            "ResourceType": "AWS::EC2::CapacityReservation",
            "ResourceArn": "arn:aws:ec2:us-east-1:123456789012:capacity-reservation/cr-1234567890abcdef1"
        },
        {
            "ResourceType": "AWS::EC2::CapacityReservation",
            "ResourceArn": "arn:aws:ec2:us-east-1:123456789012:capacity-reservation/cr-54321abcdef567890"
        }
    ]
}
```

## 步驟 5：建立啟動範本，此範本指定容量預留以特定資源群組為目標
<a name="ec2-fleet-odcr-step5"></a>

使用 [create-launch-template](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-launch-template.html) 命令來建立啟動範本，使用此範本來指定要使用的容量預留。在此範例中，機群會使用新增至資源群組的 `targeted` 容量預留。因此，啟動範本資料會指定容量預留以特定資源群組為目標。在此範例中，啟動範本會命名為 `my-launch-template`。

```
aws ec2 create-launch-template \
    --launch-template-name my-launch-template \
    --launch-template-data \
        '{"ImageId": "ami-0123456789example",
          "CapacityReservationSpecification": 
            {"CapacityReservationTarget": 
                { "CapacityReservationResourceGroupArn": "arn:aws:resource-groups:us-east-1:123456789012:group/my-cr-group" }
            }
        }'
```

## (選用) 步驟 6：描述啟動範本
<a name="ec2-fleet-odcr-step6"></a>

使用 [describe-launch-template-versions](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-launch-template-versions.html) 命令可選擇性地描述啟動範本，以檢視其組態。

```
aws ec2 describe-launch-template-versions --launch-template-name my-launch-template
```

範例輸出

```
{
    "LaunchTemplateVersions": [
        {
            "LaunchTemplateId": "lt-01234567890example",
            "LaunchTemplateName": "my-launch-template",
            "VersionNumber": 1,
            "CreateTime": "2021-01-19T20:50:19.000Z",
            "CreatedBy": "arn:aws:iam::123456789012:user/Admin",
            "DefaultVersion": true,
            "LaunchTemplateData": {
                "ImageId": "ami-0947d2ba12ee1ff75",
                "CapacityReservationSpecification": {
                    "CapacityReservationTarget": {
                        "CapacityReservationResourceGroupArn": "arn:aws:resource-groups:us-east-1:123456789012:group/my-cr-group"
                    }
                }
            }
        }
    ]
}
```

## 步驟 7：建立 EC2 Fleet
<a name="ec2-fleet-odcr-step7"></a>

建立 EC2 Fleet，該機群會指定將啟動之執行個體的組態資訊。下列 EC2 Fleet 組態僅顯示此範例的相關組態。啟動範本 `my-launch-template` 是您在步驟 5 中建立的啟動範本。有兩個執行個體集區，每個集區內的執行個體類型相同 (`c5.xlarge`)，但使用不同的可用區域 (`us-east-1a` 和 `us-east-1b`)。執行個體集區的價格相同，因為定價是根據區域界定，而不是根據可用區域界定的。總目標容量為 10，預設目標容量類型為 `on-demand`。隨需分配策略為 `lowest-price`。容量預留的使用策略為 `use-capacity-reservations-first`。

**注意**  
機群類型必須為 `instant`。其他機群類型不支援 `use-capacity-reservations-first`。

```
{
    "LaunchTemplateConfigs": [
        {
            "LaunchTemplateSpecification": {
                "LaunchTemplateName": "my-launch-template",
                "Version": "1"
            },
            "Overrides": [
               {
                   "InstanceType": "c5.xlarge",
                   "AvailabilityZone": "us-east-1a"
               },
               {
                    "InstanceType": "c5.xlarge",
                    "AvailabilityZone": "us-east-1b"
               }
            ]
        }
    ],
    "TargetCapacitySpecification": {
        "TotalTargetCapacity": 10,
        "DefaultTargetCapacityType": "on-demand"
    },
    "OnDemandOptions": {
        "AllocationStrategy": "lowest-price",
        "CapacityReservationOptions": {
             "UsageStrategy": "use-capacity-reservations-first"
         }
    },
    "Type": "instant"
}
```

使用上述組態建立 `instant` 機群之後，會啟動以下 10 個執行個體以符合目標容量：
+ 會先使用容量保留來啟動 6 個隨需執行個體，如下所示：
  + 3 個隨需執行個體已在 `us-east-1a` 中啟動至 3 個 `c5.xlarge` `targeted` 容量保留
  + 3 個隨需執行個體已在 `c5.xlarge` 中啟動至 3 個 `targeted` `us-east-1b` 容量保留
+ 為了滿足目標容量，會根據隨需分配策略 (在本例中為 `lowest-price`) 使用一般隨需容量來啟動 4 個額外的隨需執行個體。不過，由於集區的價格相同 (因為價格是按區域而非可用區域計價)，因此機群會使用任一個集區來啟動剩餘的 4 個隨需執行個體。

## (選用) 步驟 8：檢視剩餘未使用的容量預留數目
<a name="ec2-fleet-odcr-step8"></a>

啟動機群後，您也可以執行 [describe-capacity-reservations](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-capacity-reservations.html)，以查看還剩餘多少個未使用的容量預留。在此範例中，您應該會看到下列回應，其中顯示所有集區中的所有容量保留都已使用。

```
{ "CapacityReservationId":  "cr-111",
     "InstanceType":  "c5.xlarge",  
     "AvailableInstanceCount":  0
}

 { "CapacityReservationId":  "cr-222",
     "InstanceType":  "c5.xlarge", 
     "AvailableInstanceCount":  0
}
```

# 教學課程：設定您的 EC2 機群以啟動執行個體至容量區塊
<a name="ec2-fleet-launch-instances-capacity-blocks-walkthrough"></a>

本教學課程將逐步引導您完成必須執行的所有步驟，以便 EC2 Fleet 在容量區塊中啟動您的執行個體。

在大多數情況下，EC2 機群請求的目標容量應小於或等於您所鎖定容量區塊的保留可用容量。超出容量區塊預留上限的目標容量請求將無法滿足。如果目標容量請求超出容量區塊保留上限，您會收到 `Insufficient Capacity Exception`，告知您請求超出容量區塊的保留上限。

**注意**  
對於容量區塊，EC2 Fleet 將不會撤回至針對所需的目標剩餘容量啟動隨需執行個體。

如果 EC2 Fleet 無法在可用的預留容量區塊中滿足所要求的目標容量，EC2 Fleet 會盡可能滿足容量需求，並傳回能夠啟動的執行個體。您可以再次重複呼叫 EC2 Fleet，直到佈建所有執行個體為止。

設定 EC2 Fleet 請求後，您必須等待至容量區塊預留的開始日期。如果您請求 EC2 機群啟動至尚未啟動的容量區塊，則會收到 `Insufficient Capacity Error`。

預留的容量區塊啟用後，您就可以執行 EC2 Fleet 的 API 呼叫，並根據您選取的參數將執行個體佈建到容量區塊中。在容量區塊中執行的執行個體會繼續執行，直到您手動停止或終止這些執行個體，或 Amazon EC2 在容量區塊保留結束時終止這些執行個體。

如需關於容量區塊的詳細資訊，請參閱 [ML 的容量區塊](ec2-capacity-blocks.md)。

**考量事項**
+ 在容量區塊中啟動執行個體時，僅支援 `instant` 類型的 EC2 機群請求。如需詳細資訊，請參閱[設定 instant 類型的 EC2 機群](instant-fleet.md)。
+ 同一 EC2 機群請求不支援多個容量區塊。
+ 不支援在使用 `OnDemandTargetCapacity` 或 `SpotTargetCapacity` 時，同時將 `capacity-block` 設為 `DefaultTargetCapacity`。
+ 如果將 `DefaultTargetCapacityType` 設為 `capacity-block`，則無法提供 `OnDemandOptions::CapacityReservationOptions`。一旦提供，便會發生例外狀況。

**設定 EC2 機群以啟動執行個體至容量區塊**

1. **建立啟動範本。**

   在啟動範本中，執行下列動作：
   + 針對 `InstanceMarketOptionsRequest`，將 `MarketType` 設定為 `capacity-block`。
   + 若要鎖定容量區塊保留，請為 `CapacityReservationID` 指定容量區塊保留 ID。

   請記下啟動範本名稱和版本。在下一個步驟中，您將用到這項資訊。

   如需建立啟動範本的詳細資訊，請參閱 [建立 Amazon EC2 啟動範本](create-launch-template.md)。

1. **設定 EC2 機群。**

   建立檔案 `config.json`，並為您的 EC2 機群採用以下組態。在下列範例中，以您自己的資源識別符取代資源識別符。

   如需有關設定 EC2 機群的詳細資訊，請參閱 [建立 EC2 Fleet](create-ec2-fleet.md)。

   ```
   { 
       "LaunchTemplateConfigs": [
           {
               "LaunchTemplateSpecification": {
                   "LaunchTemplateName": "CBR-launch-template", 
                   "Version": "1"
               }, 
               "Overrides": [
                   {
                       "InstanceType": "p5.48xlarge", 
                       "AvailabilityZone": "us-east-1a"   
                   },
               ]
           }
       ], 
       "TargetCapacitySpecification": {
           "TotalTargetCapacity": 10, 
           "DefaultTargetCapacityType": "capacity-block"
       },
       "Type": "instant"
   }
   ```

1. **啟動機群。**

   使用以下 [create-fleet](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-fleet.html) 命令。

   ```
   aws ec2 create-fleet --cli-input-json file://config.json
   ```

   如需詳細資訊，請參閱[建立 EC2 Fleet](create-ec2-fleet.md#create-ec2-fleet-procedure)。

# 教學課程：設定您的 EC2 機群，在可中斷的容量保留中啟動執行個體
<a name="ec2-fleet-launch-instances-interruptible-cr-walkthrough"></a>

本教學課程會逐步解說您必須執行的步驟，以便 EC2 機群在可中斷的容量保留中啟動執行個體。

可中斷容量預留代表 AWS 組織內隨需容量預留擁有者提供給您的備用容量。這些保留適用於可中斷的工作負載，因為容量擁有者可以隨時透過 2 分鐘的中斷通知回收容量，之後 EC2 會終止執行個體。如需可中斷容量保留的詳細資訊，請參閱 [可中斷的容量保留](interruptible-capacity-reservations.md)。

EC2 機群請求的目標容量應小於或等於您要鎖定的可中斷容量保留的可用容量。如果目標容量請求超過可中斷容量保留的可用容量，EC2 機群會盡可能啟動執行個體，並在 API 回應中報告啟動的執行個體。

在可中斷容量保留中執行的執行個體會繼續執行，直到您手動停止或終止，或容量擁有者回收容量為止。當容量擁有者回收容量時，Amazon EC2 會在終止執行個體前 2 分鐘傳送 Amazon EventBridge 通知。

## 考量事項
<a name="ec2-fleet-interruptible-cr-considerations"></a>
+ 只有 類型的 EC2 機群請求`instant`支援在可中斷容量保留中啟動執行個體。
+ `DefaultTargetCapacityType` 不支援使用 `OnDemandTargetCapacity`或 `SpotTargetCapacity`同時`reserved-capacity`將 設定為 。
+ 當您指定多個啟動範本時，每個範本都以不同的可中斷容量保留為目標，EC2 機群會跨所有相符的保留佈建執行個體。
+ 對於可中斷的容量保留，EC2 機群不會回復為在所需目標容量的剩餘時間內啟動隨需執行個體或 Spot 執行個體。

## 驗證許可
<a name="ec2-fleet-interruptible-cr-verify-permissions"></a>

在建立 EC2 機群之前，請確認您擁有具有必要許可的 IAM 角色。如需詳細資訊，請參閱[EC2 Fleet 先決條件](ec2-fleet-prerequisites.md)。

若要在可中斷容量保留中啟動執行個體，您必須執行下列步驟：

## 步驟 1：建立啟動範本
<a name="ec2-fleet-interruptible-cr-step1"></a>

使用 [create-launch-template](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-launch-template.html) 命令來建立啟動範本，以指定要鎖定的可中斷容量保留。在啟動範本中，`MarketType`將 設定為 ，`interruptible-capacity-reservation`並指定可中斷容量保留`CapacityReservationId`的 。

啟動範本組態範例：

```
{
    "LaunchTemplateName": "interruptible-cr-launch-template",
    "LaunchTemplateData": {
        "InstanceType": "m5.large",
        "ImageId": "ami-0abcdef1234567890",
        "CapacityReservationSpecification": {
            "CapacityReservationTarget": {
                "CapacityReservationId": "cr-0123456789abcdef0"
            }
        },
        "InstanceMarketOptions": {
            "MarketType": "interruptible-capacity-reservation"
        }
    }
}
```

範例輸出

```
{
    "LaunchTemplate": {
        "LaunchTemplateId": "lt-0123456789example",
        "LaunchTemplateName": "interruptible-cr-launch-template",
        "CreateTime": "2026-03-12T10:00:00.000Z",
        "CreatedBy": "arn:aws:iam::123456789012:user/Admin",
        "DefaultVersionNumber": 1,
        "LatestVersionNumber": 1
    }
}
```

如需詳細資訊，請參閱[建立 Amazon EC2 啟動範本](create-launch-template.md)。

## 步驟 2：設定 EC2 機群
<a name="ec2-fleet-interruptible-cr-step2"></a>

為 EC2 機群建立指定啟動範本和目標容量的組態檔案。下列組態使用`interruptible-cr-launch-template`您在步驟 1 中建立的啟動範本。

使用 `reserved-capacity`做為 `interruptible-capacity-reservation`時，您必須指定 `ReservedCapacityOptions` ，並將 `ReservationType`設定為 `DefaultTargetCapacityType`。

建立名為 `config.json` 且具有下列內容的檔案：

```
{
    "LaunchTemplateConfigs": [
        {
            "LaunchTemplateSpecification": {
                "LaunchTemplateName": "interruptible-cr-launch-template",
                "Version": "1"
            },
            "Overrides": [
                {
                    "InstanceType": "m5.large",
                    "AvailabilityZone": "us-east-1a"
                }
            ]
        }
    ],
    "TargetCapacitySpecification": {
        "TotalTargetCapacity": 10,
        "DefaultTargetCapacityType": "reserved-capacity"
    },
    "ReservedCapacityOptions": {
        "ReservationType": ["interruptible-capacity-reservation"]
    },
    "Type": "instant"
}
```

金鑰組態參數：


| 參數 | Description | 
| --- | --- | 
| DefaultTargetCapacityType | 設定為 reserved-capacity，表示執行個體應該以預留容量啟動。 | 
| ReservedCapacityOptions | 指定預留容量的類型。對於可中斷的容量保留，請將 ReservationType設定為 ["interruptible-capacity-reservation"]。 | 
| Type | 必須設定為 instant。中斷容量保留僅支援即時機群。 | 

## 步驟 3：啟動機群並檢視結果
<a name="ec2-fleet-interruptible-cr-step3"></a>

使用 [create-fleet](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-fleet.html) 命令來建立機群：

```
aws ec2 create-fleet \
    --cli-input-json file://config.json
```

使用上述組態建立機`instant`群後，EC2 機群會在可中斷容量保留中啟動 10 個執行個體，以符合目標容量。

**注意**  
如果機群無法滿足完整目標容量，回應會包含已啟動的執行個體，以及未滿足容量的任何錯誤。

範例輸出

```
{
    "FleetId": "fleet-12345678-1234-1234-1234-123456789012",
    "Instances": [
        {
            "LaunchTemplateAndOverrides": {
                "LaunchTemplateSpecification": {
                    "LaunchTemplateId": "lt-0123456789example",
                    "Version": "1"
                },
                "Overrides": {
                    "InstanceType": "m5.large",
                    "AvailabilityZone": "us-east-1a"
                }
            },
            "Lifecycle": "interruptible-capacity-reservation",
            "InstanceIds": [
                "i-0123456789example1",
                "i-0123456789example2",
                "i-0123456789example3",
                "i-0123456789example4",
                "i-0123456789example5",
                "i-0123456789example6",
                "i-0123456789example7",
                "i-0123456789example8",
                "i-0123456789example9",
                "i-0123456789example0"
            ],
            "InstanceType": "m5.large",
            "Platform": "Linux/UNIX"
        }
    ],
    "Errors": []
}
```

如需詳細資訊，請參閱[建立 EC2 Fleet](create-ec2-fleet.md)。

## 清除
<a name="ec2-fleet-interruptible-cr-cleanup"></a>

若要停止產生費用，請在不再需要執行個體時將其終止。請注意，當容量擁有者回收容量時，EC2 也會自動終止在可中斷容量保留中啟動的執行個體。

## 相關資源
<a name="ec2-fleet-interruptible-cr-related-resources"></a>
+ [可中斷的容量保留](interruptible-capacity-reservations.md)
+ [使用 EC2 隨需容量保留來保留運算容量](ec2-capacity-reservations.md)
+ [使用 EC2 機群](manage-ec2-fleet.md)
+ [建立 EC2 Fleet](create-ec2-fleet.md)
+ [將執行個體啟動參數存放在 Amazon EC2 啟動範本中](ec2-launch-templates.md)