

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

# 教學課程：使用執行個體權重設定 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 | $2.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 個單位。