

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

# 教學課程：設定您的 EC2 機群，使用容量保留資源群組在多個容量保留類型中啟動執行個體
<a name="ec2-fleet-launch-instances-multiple-cr-types-walkthrough"></a>

本教學課程將逐步引導您設定 EC2 機群，以使用單一容量保留資源群組，跨多個容量保留類型啟動執行個體：隨需容量保留 (ODCRs)、ML 的容量區塊和可中斷容量保留。

您將了解如何建立包含不同容量保留類型的容量保留資源群組、設定 EC2 機群以特定順序排定容量保留類型的優先順序，以及當預留容量不足以滿足您的目標時，選擇性地回復到隨需容量。

## 考量事項
<a name="ec2-fleet-multiple-cr-types-considerations"></a>
+ 使用 時`instant`，僅支援 類型的 EC2 機群請求`ReservedCapacityOptions`。
+ 您必須明確指定要在`ReservationTypes`清單中鎖定的容量保留類型。EC2 機群只會在您指定的容量保留類型中啟動執行個體。
+ `ReservedCapacityOptions` 與 互斥`OnDemandOptions.CapacityReservationOptions`。您無法在相同的 EC2 機群請求中使用兩者。

本教學假設您的帳戶中已有下列容量保留：
+ `p5.48xlarge` 中 的 ODCR (`cr-1234567890abcdef1`) `us-east-1a`
+ `p4d.48xlarge` 中 的 ODCR (`cr-abcdef1234567890a`) `us-east-1b`
+ `p5.48xlarge` 中 的容量區塊 (`cr-0123456789abcdef0`) `us-east-1a`
+ `p5.48xlarge` 中 的可中斷容量保留 (`cr-9876543210fedcba9`)`us-east-1a`，由組織中的另一個帳戶與您共用

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

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

## 步驟 1：建立容量保留資源群組
<a name="ec2-fleet-multiple-cr-types-step1"></a>

建立容量保留資源群組，以保留 EC2 機群鎖定的容量保留。設定 群組，使其接受任何執行個體類型的容量保留和容量保留類型，這可讓群組混合保留容量保留類型。如需step-by-step說明，請參閱[容量保留群組](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/cr-groups.html)。

**注意**  
當您建立 群組時，請勿在`AWS::EC2::CapacityReservationPool`組態中指定 `instance-type`或 `reservation-type` 參數。省略這些參數可讓 群組接受任何執行個體類型的容量保留和容量保留類型。

## 步驟 2：將容量保留新增至群組
<a name="ec2-fleet-multiple-cr-types-step2"></a>

將您的容量保留新增至容量保留資源群組。您可以新增 ODCRs、ML 的容量區塊、可中斷的容量保留和 UltraServer 容量區塊的任意組合。在本教學課程中，新增本教學課程開頭列出的四個容量保留。如需step-by-step說明，請參閱[容量保留群組](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/cr-groups.html)。

## 步驟 3：建立啟動範本
<a name="ec2-fleet-multiple-cr-types-step3"></a>

使用 [create-launch-template](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-launch-template.html) 命令來建立以容量保留資源群組為目標的啟動範本。當您`ReservedCapacityOptions`在 EC2 機群組態中使用 時，您不需要在啟動範本`MarketType`中設定 - EC2 機群會為每個容量保留類型自動設定此值。

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

## 步驟 4：建立 EC2 機群
<a name="ec2-fleet-multiple-cr-types-step4"></a>

建立 EC2 機群，以容量保留資源群組中的多個容量保留類型為目標。金鑰組態為 `ReservedCapacityOptions`，指定下列項目：
+ `ReservationTypes` – 要鎖定的容量保留類型的排序清單。EC2 機群可依此順序處理類型。有效值為 `on-demand-capacity-reservation`、`capacity-block` 和 `interruptible-capacity-reservation`。
+ `AllocationStrategy` – 執行個體類型在每個容量保留類型中的優先順序。設定為 `prioritized` 以遵循執行個體類型覆寫順序。
+ `ReservedCapacityFallbackOptions` – `MarketTypes`設定為 ，`["on-demand"]`以在預留容量不足時啟動隨需執行個體。如果您未指定備用選項，EC2 機群不會在指定的容量保留類型用盡之後回復為任何其他市場類型。

建立名為 `config.json` 且具有下列內容的檔案。在下列範例中，以您自己的資源識別符取代資源識別符。

```
{
    "LaunchTemplateConfigs": [
        {
            "LaunchTemplateSpecification": {
                "LaunchTemplateName": "{{my-cr-resource-group-template}}",
                "Version": "1"
            },
            "Overrides": [
                {
                    "InstanceType": "{{p5.48xlarge}}",
                    "AvailabilityZone": "{{us-east-1a}}",
                    "Priority": 1
                },
                {
                    "InstanceType": "{{p4d.48xlarge}}",
                    "AvailabilityZone": "{{us-east-1b}}",
                    "Priority": 2
                }
            ]
        }
    ],
    "TargetCapacitySpecification": {
        "TotalTargetCapacity": {{100}},
        "DefaultTargetCapacityType": "reserved-capacity"
    },
    "ReservedCapacityOptions": {
        "ReservationTypes": ["on-demand-capacity-reservation", "capacity-block", "interruptible-capacity-reservation"],
        "ReservedCapacityFallbackOptions": {
            "MarketTypes": ["on-demand"]
        },
        "AllocationStrategy": "prioritized"
    },
    "Type": "instant"
}
```

使用 [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)。

**EC2 機群如何解決容量保留**  
根據上述組態，EC2 機群會嘗試以下列順序啟動執行個體：

1. **ODCRs** – 先`p5.48xlarge`保留 （最高優先順序的執行個體類型），然後再`p4d.48xlarge`保留。在每個執行個體類型中，如果存在多個 ODCRs，則會隨機選取一個。

1. **容量區塊** – 如果所有 ODCRs 中沒有可用的容量，EC2 機群會鎖定容量區塊。 會先`p5.48xlarge`保留，然後在每個執行個體類型內隨機`p4d.48xlarge`選取 。

1. **可中斷的容量保留** – 如果所有容量區塊中沒有可用的容量，EC2 機群會鎖定可中斷的容量保留。 會先`p5.48xlarge`保留，然後在每個執行個體類型內隨機`p4d.48xlarge`選取 。

1. **隨需備用** – 如果預留容量不足以達到 100 個執行個體的目標，則剩餘容量會以隨需執行個體的形式啟動。EC2 機群會根據您在 中指定的配置策略啟動這些隨需執行個體`OnDemandOptions`。

**注意**  
EC2 機群會先解析容量保留類型，然後解析每個容量保留類型中的執行個體類型。在 EC2 機群移至排序清單中的下一個類型之前，每個容量保留類型都已完全耗盡。

## （選用） 步驟 5：驗證執行個體屬性
<a name="ec2-fleet-multiple-cr-types-step5"></a>

使用 [describe-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instances.html) 命令來驗證每個執行個體使用的容量保留類型。機群啟動的執行個體會顯示下列屬性。


| 屬性 | 隨需容量保留值 | 容量區塊值 | 可中斷的容量保留值 | 隨需值 | 
| --- | --- | --- | --- | --- | 
| instance-lifecycle | null | capacity-block | interruptible-capacity-reservation | null | 
| capacity-reservation-id | 使用的容量保留 ID | 使用的容量保留 ID | 使用的容量保留 ID | 不存在 | 
| capacity-reservation-specification | 群組 ARN | 群組 ARN | 群組 ARN | 不存在 | 

您可以使用下列命令，依容量保留資源群組篩選執行個體：

```
aws ec2 describe-instances \
    --filters "Name=capacity-reservation-specification.capacity-reservation-target.capacity-reservation-resource-group-arn,Values=arn:aws:resource-groups:{{us-east-1}}:{{123456789012}}:group/{{my-cr-resource-group}}"
```

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

若要停止產生費用，請在不再需要執行個體時終止執行個體。請注意，在容量區塊中啟動的執行個體會在容量區塊保留結束時自動終止。如果容量擁有者回收容量，則啟動至可中斷容量預留的執行個體會自動終止。

## 相關資源
<a name="ec2-fleet-multiple-cr-types-related-resources"></a>
+ [容量保留群組](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/cr-groups.html)
+ [ML 的容量區塊](ec2-capacity-blocks.md)
+ [可中斷的容量保留](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)