vCPU 数などのパフォーマンスメトリクスに基づいて、各インスタンスタイプに重みを割り当てます。 重みは、そのタイプのインスタンス 1 台がスケーリンググループに提供するキャパシティーを定義するため、グループのキャパシティーはインスタンス数ではなくキャパシティーユニットで測定されます。
背景情報
デフォルトでは、Auto Scaling はインスタンス数によってスケーリンググループのキャパシティーを測定します。 スケーリング設定で単一のインスタンスタイプが指定されている場合、インスタンス数は全体的なパフォーマンスに正比例するため、これはうまく機能します。 ただし、設定に複数のインスタンスタイプが混在している場合、インスタンス数は合計コンピューティング能力を反映しなくなります。 たとえば、10 個の ecs.c5.large (2 vCPU、4 GiB) インスタンスは、10 個の ecs.c5.xlarge (4 vCPU、8 GiB) インスタンスの半分のパフォーマンスしか提供しません。
この問題に対処するために、各インスタンスタイプに重みを割り当てます。 これにより、グループに異なるインスタンスタイプが含まれている場合でも、スケーリンググループのパフォーマンスを正確に測定できます。 たとえば、各重みをインスタンスタイプの vCPU 数に設定すると、合計キャパシティーはすべてのインスタンスの vCPU の総数を表します。
基本概念
| 概念 | API パラメーター | 説明 |
| 重み | WeightedCapacity | vCPU 数などのパフォーマンスメトリクスに基づいて、インスタンスタイプがスケーリンググループに提供するキャパシティー。 |
| 合計キャパシティー | TotalCapacity | スケーリンググループ内のすべてのインスタンスのキャパシティーユニットの合計。 |
| 最大キャパシティー | MaxSize | スケーリンググループの合計キャパシティーの最大値。 説明 スケールアウトイベント後、最大キャパシティーがインスタンスの重みで割り切れない場合、合計キャパシティーが最大キャパシティーをわずかに超えることがあります。 超過分は、グループ内の最大の重み未満になります。 |
| 最小キャパシティー | MinSize | スケーリンググループの合計キャパシティーの最小値。 |
| 希望するキャパシティー | DesiredCapacity | スケーリンググループの合計キャパシティーの目標値。 Auto Scaling は、合計キャパシティーがこの値を下回らないようにします。 説明 スケールアウトイベント後、希望するキャパシティーがインスタンスの重みで割り切れない場合、合計キャパシティーが希望するキャパシティーをわずかに超えることがあります。 超過分は、グループ内の最大の重み未満になります。 |
スケーリングルール
- 合計キャパシティーが、希望するキャパシティーまたは最小キャパシティーを下回ると、スケールアウトイベントがトリガーされます。
- 合計キャパシティーが、希望するキャパシティーと最大の重みの合計以上になると、スケールインイベントがトリガーされます。
注意事項
- スケーリンググループ内のすべてのインスタンスタイプに重みを設定する必要があります。
- スケーリング設定からインスタンスタイプを削除しても、スケーリンググループ内のそのタイプの既存インスタンスの重みは変更されません。
- 既存のインスタンスがあるインスタンスタイプの重みを変更すると、Auto Scaling はグループの現在のキャパシティーを直ちに再計算します。 これにより、新しいスケーリングアクティビティがトリガーされる場合があります。
操作手順
この手順は、スケーリング設定がスケーリンググループの設定ソースである場合に、インスタンスタイプの重みを設定するために使用します。
- スケーリンググループの作成。
このステップでは、マルチゾーンスケーリングポリシーに関連するオプションに焦点を当てます。 他のスケーリンググループのオプションについては、「スケーリンググループの設定」をご参照ください。
- VPC で VPC を選択し、その VPC 内で複数の vSwitch を選択します。
各 vSwitch は単一のゾーンに属します。 複数の vSwitch を選択すると、複数のゾーンにまたがって ECS インスタンスを作成し、利用可能なリソースをより有効に活用できます。
- コスト最適化 を [コスト最適化] に設定します。
- 必要に応じて、残りのスケーリンググループのオプションを設定します。
- VPC で VPC を選択し、その VPC 内で複数の vSwitch を選択します。
- スケーリング設定の作成。
このステップでは、vCPU 数に基づいてインスタンスタイプの重みを設定することに焦点を当てます。 他のスケーリング設定オプションについては、「ECS インスタンスのスケーリング設定の作成」をご参照ください。
- 従量課金 を [従量課金] に設定します。
- 最大 10 個まで、複数のインスタンスタイプを選択します。
- vCPU 容量の設定 を選択します。 システムは、選択された各インスタンスタイプの vCPU 数に基づいて、重みを自動的に設定します。
たとえば、選択したインスタンスタイプ ecs.c5.large (2 vCPU、4 GiB)、ecs.c5.xlarge (4 vCPU、8 GiB)、および ecs.c5.2xlarge (8 vCPU、16 GiB) の場合、重みはそれぞれ 2、4、8 に自動的に設定されます。
重みをカスタマイズすることもできます。 重みをカスタマイズする場合は、次の推奨事項に従ってください。
- vCPU の数やメモリ量 (GiB) など、ワークロードに関連するパフォーマンスメトリクスを使用します。 単一の vCPU、1 GiB のメモリ、または最も性能の低いインスタンスタイプを 1 キャパシティーユニットとして使用できます。 スケーリンググループのキャパシティーは、このユニットを基準に計算されます。
- 適切な重み値を設定します。 スケーリンググループの現在のキャパシティーが、インスタンスタイプに定義された最大の重みの 2〜3 倍になるようにします。
- インスタンスタイプごとに大きく異なる重みを設定しないでください。 たとえば、小さいインスタンスタイプの重みを 1 に設定し、大きいインスタンスタイプの重みを 200 に設定しないでください。 重みの差が大きいと、スケーリンググループの費用対効果に悪影響を及ぼす可能性があります。
インスタンス作成時の複数インスタンスタイプの優先度については、「加重単位価格の計算」をご参照ください。
- 必要に応じて、残りのスケーリング設定のオプションを設定します。
- スケーリンググループの有効化。
- スケーリングルールの作成。
このステップでは、簡単な検証テストに必要なオプションについて説明します。 他のスケーリングルールのオプションについては、「スケーリングルールの設定」をご参照ください。
- シンプルスケーリングルール を [簡易スケーリングルール] に設定します。
- [操作] を [10 キャパシティーユニットを追加] に設定します。
- 必要に応じて、残りのスケーリングルールのオプションを設定します。
- スケーリングルールの実行。
この例では、
ecs.c5.2xlargeインスタンスタイプの加重単位価格が最も低くなっています。 したがって、スケーリンググループは 2 つのecs.c5.2xlargeインスタンスを起動し、スケーリンググループに 16 キャパシティーユニットを追加します。
加重単位価格の計算
スケーリンググループで [コスト最適化] を使用し、インスタンスの重みを設定している場合、Auto Scaling はスケールアウト中に加重単位価格が最も低いインスタンスタイプを起動します。 詳細については、「スケーリングポリシーと複数のインスタンスタイプを使用してコストを削減する」をご参照ください。
| インスタンスタイプ | vCPU | 市場価格 | 重み | 加重単位価格 |
| ecs.c5.large | 2 | USD 0.18/時間 | 2 | USD 0.090/時間 |
| ecs.c5.xlarge | 4 | USD 0.34/時間 | 4 | USD 0.085/時間 |
| ecs.c5.2xlarge | 8 | USD 0.64/時間 | 8 | USD 0.080/時間 |