

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# インスタンスの重みを使用するように Auto Scaling グループを設定する
<a name="ec2-auto-scaling-mixed-instances-groups-instance-weighting"></a>

複数のインスタンスタイプを使用する場合、各インスタンスタイプに関連付けるユニット数を指定し、同じ測定単位を持つグループの容量を指定できます。この容量の仕様オプションは重みと呼ばれます。

たとえば、少なくとも 8 個の vCPU と 15 GiB の RAM で最高のパフォーマンスを発揮する、コンピューティング集約型のアプリケーションを実行するとします。基本単位として `c5.2xlarge` を使用する場合、以下の EC2 インスタンスタイプのいずれかがアプリケーションのニーズを満たします。


**インスタンスタイプの例**  

| インスタンスタイプ | vCPU | メモリ (GiB) | 
| --- | --- | --- | 
| c5.2xlarge  |  8  | 16 | 
| c5.4xlarge | 16 | 32 | 
| c5.12xlarge | 48 | 96 | 
| c5.18xlarge  | 72 | 144 | 
| c5.24xlarge | 96 | 192 | 

デフォルトでは、すべてのインスタンスタイプは、サイズにかかわらず同じ重みを持ちます。つまり、Amazon EC2 Auto Scaling が起動するインスタンスタイプの規模の大小にかかわらず、各インスタンスは Auto Scaling グループの希望するキャパシティに対して同じようにカウントされます。

ただし重みでは、各インスタンスタイプに関連付けるユニットを数値で指定します。例えば、インスタンスのサイズが異なる場合、`c5.2xlarge` インスタンスには 2 の重みを付け、`c5.4xlarge` (2 倍大きい) インスタンスには 4 の重みを付けます。その後、Amazon EC2 Auto Scaling がグループをスケールするときに、これらの重みは、各インスタンスが希望するキャパシティとしてカウントするユニット数に変換されます。

重みは、Amazon EC2 Auto Scaling が起動するインスタンスタイプを変更しません。代わりに、割り当て戦略がそれを行います。詳細については、「[複数のインスタンスタイプの配分戦略](allocation-strategies.md)」を参照してください。

**重要**  
vCPU の数または各インスタンスタイプのメモリ量を使用して希望するキャパシティを満たすように Auto Scaling グループを設定するには、属性ベースのインスタンスタイプの選択を使用することをお勧めします。`DesiredCapacityType` パラメータを設定すると、このパラメータに設定した値に基づいて、各インスタンスタイプに関連付けるユニット数が自動的に指定されます。詳細については、「[属性ベースのインスタンスタイプの選択を使用して混合インスタンスグループを作成する](create-mixed-instances-group-attribute-based-instance-type-selection.md)」を参照してください。

**Topics**
+ [考慮事項](#weights-considerations)
+ [インスタンスの重みの動作](#instance-weighting-behaviors)
+ [重みを使用するように Auto Scaling グループを設定する](configue-auto-scaling-group-to-use-weights.md)
+ [ユニット時間あたりのスポット料金の例](weights-spot-price-per-unit-hour-example.md)

## 考慮事項
<a name="weights-considerations"></a>

このセクションでは、重みを効果的に実装するための重要な考慮事項について説明します。
+ アプリケーションのパフォーマンスニーズに合ったインスタンスタイプをいくつか選択します。Auto Scaling グループの希望する容量に対して、機能に基づきカウントされる各インスタンスタイプの重みを決定します。これらの重みは、現在および今後のインスタンスに適用されます。
+ 重みの範囲を大きくすることは避けてください。たとえば、インスタンスタイプの重みに 1 を指定し、次に大きいインスタンスタイプの重みに 200 を指定しないでください。最小の重みと最大の重みの差も極端であってはなりません。重みの違いが大きいと、コストパフォーマンスの最適化に悪影響を及ぼす可能性があります。
+ グループの希望する容量をインスタンスではなくユニットで指定します。例えば、vCPU ベースの重みを使用する場合は、希望するコア数に加えて最小値と最大値も設定する必要があります。
+ 重みと希望するキャパシティを設定して、希望するキャパシティが最も大きい重みの少なくとも 2〜3 倍になるようにします。

既存のグループを更新する際には、次の点に注意してください。
+ 既存のグループに重みを追加する際は、現在使用中のすべてのインスタンスタイプの重みを含めます。
+ 重みを追加または変更すると、Amazon EC2 Auto Scaling では新しい重みの値に基づいて希望する容量に達するようにインスタンスを起動または終了します。
+ インスタンスタイプを削除した場合、そのタイプのインスタンスを実行すると、定義されなくなった場合でも最新の重みが維持されます。

## インスタンスの重みの動作
<a name="instance-weighting-behaviors"></a>

インスタンスの重みを使用すると、Amazon EC2 Auto Scaling は次のように動作します。
+ 現在のキャパシティーは、希望するキャパシティーと同じかそれ以上になります。起動されたインスタンスが残りの希望する容量ユニットを超える場合、現在の容量が希望する容量を超える可能性があります。例えば、2 つのインスタンスタイプ `c5.2xlarge` と `c5.12xlarge` を指定し、`c5.2xlarge` にインスタンスの重み 2 を割り当て、`c5.12xlarge` にインスタンスの重み 12 を割り当てるとします。希望するキャパシティを満たすためのキャパシティが 5 ユニット分残っており、Amazon EC2 Auto Scaling が `c5.12xlarge` をプロビジョニングする場合、希望するキャパシティは 7 ユニット分超過します。
+ インスタンスを起動する際、Amazon EC2 Auto Scaling は、アベイラビリティーゾーン間で容量を分散し、希望する容量を超えて配分戦略を優先します。
+ Amazon EC2 Auto Scaling では、優先される配分戦略を使用してアベイラビリティーゾーン間のバランスを維持するため、最大容量の制限を超えることがあります。Amazon EC2 Auto Scaling によって適用されるハード制限は、希望する容量に最大の重みを加えたものになります。

# 重みを使用するように Auto Scaling グループを設定する
<a name="configue-auto-scaling-group-to-use-weights"></a>

次の AWS CLI の例に示すように、重みを使用するように Auto Scaling グループを設定できます。コンソールを使用する手順については、「[インスタンスタイプを手動で選択して混合インスタンスグループを作成する](create-mixed-instances-group-manual-instance-type-selection.md)」を参照してください。

**重みを使用するように新しい Auto Scaling グループを設定するには (AWS CLI)**  
[create-auto-scaling-group](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/create-auto-scaling-group.html) コマンドを使用します。例えば、次のコマンドは新しい Auto Scaling グループを作成し、次を指定して重みを割り当てます。
+ オンデマンドインスタンスとして起動するグループの割合 (`0`) 
+ 各アベイラビリティーゾーンのスポットインスタンスの配分戦略 (`capacity-optimized`)
+ 優先度に従って起動するインスタンスタイプ (`m4.16xlarge`、`m5.24xlarge`)
+ インスタンスタイプ間の相対的なサイズの違い (vCPU) に対応するインスタンスの重み (`16`、`24`)
+ インスタンスを起動するサブネット (`subnet-5ea0c127`、`subnet-6194ea3b`、`subnet-c934b782`)。それぞれ異なるアベイラビリティーゾーンに対応
+ 起動テンプレート (`my-launch-template`) とそのバージョン (`$Latest`)

```
aws autoscaling create-auto-scaling-group --cli-input-json file://~/config.json
```

`config.json` ファイルには次のコンテンツが含まれます。

```
{
    "AutoScalingGroupName": "my-asg",
    "MixedInstancesPolicy": {
        "LaunchTemplate": {
            "LaunchTemplateSpecification": {
                "LaunchTemplateName": "my-launch-template",
                "Version": "$Latest"
            },
            "Overrides": [
                {
                    "InstanceType": "m4.16xlarge",
                    "WeightedCapacity": "16"
                },
                {
                    "InstanceType": "m5.24xlarge",
                    "WeightedCapacity": "24"
                }
            ]
        },
        "InstancesDistribution": {
            "OnDemandPercentageAboveBaseCapacity": 0,
            "SpotAllocationStrategy": "capacity-optimized"
        }
    },
    "MinSize": 160,
    "MaxSize": 720,
    "DesiredCapacity": 480,
    "VPCZoneIdentifier": "subnet-5ea0c127,subnet-6194ea3b,subnet-c934b782",
    "Tags": []
}
```

**重みを使用するように既存の Auto Scaling グループを設定するには (AWS CLI)**  
[update-auto-scaling-group](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/update-auto-scaling-group.html) コマンドを使用します。例えば、ここで示すコマンドは、次を指定して既存の Auto Scaling グループのインスタンスタイプに重みを割り当てます。
+ 優先度に従って起動するインスタンスタイプ (`c5.18xlarge`、`c5.24xlarge`、`c5.2xlarge`、`c5.4xlarge`)
+ インスタンスタイプ間の相対的なサイズの違い (vCPU) に対応するインスタンスの重み (`18`、`24`、`2`、`4`)
+ 増やす新しい希望するキャパシティー (最大重みよりも大きい)

```
aws autoscaling update-auto-scaling-group --cli-input-json file://~/config.json
```

`config.json` ファイルには次のコンテンツが含まれます。

```
{
    "AutoScalingGroupName": "my-existing-asg",
    "MixedInstancesPolicy": {
        "LaunchTemplate": {
            "Overrides": [
                {
                    "InstanceType": "c5.18xlarge",
                    "WeightedCapacity": "18"
                },
                {
                    "InstanceType": "c5.24xlarge",
                    "WeightedCapacity": "24"
                },
                {
                    "InstanceType": "c5.2xlarge",
                    "WeightedCapacity": "2"
                },
                {
                    "InstanceType": "c5.4xlarge",
                    "WeightedCapacity": "4"
                }
            ]
        }
    },
    "MinSize": 0,
    "MaxSize": 100,
    "DesiredCapacity": 100
}
```

**コマンドラインを使用して重みを検証するには**  
以下のいずれかのコマンドを使用します。
+ [describe-auto-scaling-groups](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/describe-auto-scaling-groups.html) (AWS CLI)
+ [Get-ASAutoScalingGroup](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-ASAutoScalingGroup.html) (AWS Tools for Windows PowerShell)

# ユニット時間あたりのスポット料金の例
<a name="weights-spot-price-per-unit-hour-example"></a>

次の表では、米国東部 (バージニア北部) の異なるアベイラビリティーゾーンでのスポットインスタンスの時間単位の使用料金と、同じリージョンでのオンデマンドインスタンスの使用料金を比較しています。ここで示している料金は例であり、現在の料金ではありません。これらは*インスタンス時間単位*のコストです。


**例: インスタンス時間単位のスポット料金**  

| インスタンスタイプ | us-east-1a | us-east-1b | us-east-1c | オンデマンド料金 | 
| --- | --- | --- | --- | --- | 
| c5.2xlarge  | 0.180 USD | 0.191 USD | 0.170 USD | 0.34 USD  | 
| c5.4xlarge | 0.341 USD | 0.361 USD | 0.318 USD | 0.68 USD | 
| c5.12xlarge  | 0.779 USD | 0.777 USD  | 0.777 USD  | 2.04 USD | 
| c5.18xlarge  | 1.207 USD | 1.475 USD | 1.357 USD | 3.06 USD | 
| c5.24xlarge | 1.555 USD | 1.555 USD | 1.555 USD | 4.08 USD | 

インスタンスの重みにより、*ユニット*時間あたりの使用料金に基づいてコストを評価できます。時間単位の使用料金はインスタンスタイプの料金をその単位となる時間数で割って決定できます。オンデマンドインスタンスの場合、時間単位の使用料金は、1 つのインスタンスタイプをデプロイするときと、異なるサイズの同じインスタンスタイプをデプロイするときで同じです。一方、時間単位のスポット料金はスポットプールによって異なります。

次の例は、ユニット時間あたりのスポット料金の計算がインスタンスの重みでどのように機能するかを示しています。計算が容易になるように、スポットインスタンスを `us-east-1a` でのみ起動するとします。ユニット時間あたりの料金を次の表に示します。


**例: ユニット時間あたりのスポット料金**  

| インスタンスタイプ | us-east-1a | インスタンスの重み | ユニット時間あたりの価格  | 
| --- | --- | --- | --- | 
| c5.2xlarge  | 0.180 USD | 2 | 0.090 USD | 
| c5.4xlarge | 0.341 USD | 4 | 0.085 USD | 
| c5.12xlarge  | 0.779 USD | 12 | 0.065 USD | 
| c5.18xlarge  | 1.207 USD | 18 | 0.067 USD | 
| c5.24xlarge | 1.555 USD | 24 | 0.065 USD | 