

# キャパシティ予約フリートの概念と計画
<a name="crfleet-concepts"></a>

以下に、キャパシティ予約フリートの計画方法と、キャパシティ予約フリートの各概念 (合計ターゲットキャパシティ、配分戦略、インスタンスタイプの重み、インスタンスタイプの優先度など) について説明します。

**Topics**
+ [キャパシティ予約フリートを計画する](#plan-cr-fleet)
+ [総ターゲット容量](#target-capacity)
+ [配分戦略](#allocation-strategy)
+ [インスタンスタイプの重み](#instance-weight)
+ [インスタンスタイプ優先順位](#instance-priority)

## キャパシティ予約フリートを計画する
<a name="plan-cr-fleet"></a>

キャパシティ予約フリートを計画するときは、次のことを行うことをお勧めします。

1. ワークロードに必要なコンピューティング性能の量を決定します。

1. 使用するインスタンスタイプとアベイラビリティーゾーンを決定します。

1. 要件と設定内容に基づいて、各インスタンスタイプに優先度を割り当てます。詳細については、[インスタンスタイプ優先順位](#instance-priority)を参照してください。

1. ワークロードに適したキャパシティー重み付けシステムを作成します。各インスタンスタイプに重みを割り当て、総ターゲット容量を決定します。詳細については、[インスタンスタイプの重み](#instance-weight)および[総ターゲット容量](#target-capacity)を参照してください。

1. キャパシティー予約を無期限に必要とするか、特定の期間だけ必要かを決定します。

## 総ターゲット容量
<a name="target-capacity"></a>

*総ターゲット容量*の定義は、キャパシティー予約フリートで予約されるコンピューティング性能の総量です。キャパシティー予約フリートを作成するときは、総ターゲット容量を指定します。フリートが作成されると、Amazon EC2 は自動的にキャパシティー予約を作成し、総ターゲット容量までキャパシティーを予約します。

キャパシティー予約フリートでキャパシティーを予約する対象のインスタンスの数は、総ターゲット容量と、キャパシティー予約フリート内のインスタンスタイプごとに指定した*インスタンスタイプの重み*で決まります (`total target capacity`/`instance type weight`=`number of instances`)。

ワークロードにとって意味のあるユニット数に基づいて、総ターゲット容量を割り当てることができます。例えば、ワークロードで特定の数の vCPU が必要な場合、必要な vCPU の数に基づいて総ターゲット容量を割り当てることができます。ワークロードに `2048` 個の vCPU が必要な場合、合計ターゲット容量として `2048` を指定します。次に、フリートのインスタンスタイプによって提供される vCPU の数に基づいて、インスタンスタイプの重みを割り当てます。例については、[インスタンスタイプの重み](#instance-weight)を参照してください。

## 配分戦略
<a name="allocation-strategy"></a>

キャパシティー予約フリートの割り当て戦略により、キャパシティー予約フリート設定のインスタンスタイプの仕様を基に、リザーブドキャパシティーのリクエストを満たすための方法が決定されます。

現在は、`prioritized` の割り当て戦略のみがサポートされています。この戦略を使用するキャパシティー予約フリートは、キャパシティ―予約フリート設定で各インスタンスタイプ仕様に割り当てた優先順位に従い、キャパシティー予約を作成します。優先度の値が低いと、使用する優先順位が高くなります。例えば、次のインスタンスタイプと優先度を使用するキャパシティー予約フリートを作成するとします。
+ `m4.16xlarge` – 優先度 = 1
+ `m5.16xlarge` – 優先度 = 3
+ `m5.24xlarge` – 優先度 = 2

フリートは、まず `m4.16xlarge` のキャパシティー予約の作成を試みます。Amazon EC2 に十分な `m4.16xlarge` キャパシティーがない場合、フリートは `m5.24xlarge` のキャパシティー予約の作成を試みます。Amazon EC2 の `m5.24xlarge` キャパシティーが不十分な場合には、フリートは、`m5.16xlarge` でキャパシティー予約を作成します。

## インスタンスタイプの重み
<a name="instance-weight"></a>

*インスタンスタイプの重み*とは、キャパシティー予約フリート内の各インスタンスタイプに割り当てる分量のことです。重みによって、その特定のインスタンスタイプの各インスタンスがフリートの*総ターゲット容量*にカウントされるキャパシティーのユニット数が決まります。

ワークロードにとって意味のあるユニット数に基づいて重みを割り当てることができます。例えば、ワークロードに特定の数の vCPU が必要な場合、キャパシティー予約フリートの各インスタンスタイプごとに指定した vCPU の数に基づいて重みを割り当てることができます。この場合、`m4.16xlarge` および `m5.24xlarge` インスタンスを使用してキャパシティー予約フリートを作成したとすると、次のように各インスタンスの vCPU 数に対応する重みを割り当てます。
+ `m4.16xlarge` – vCPU 数 `64`、重み = `64` ユニット
+ `m5.24xlarge` – vCPU 数 `96`、重み = `96` ユニット

インスタンスタイプの重みによって、キャパシティ予約フリートでキャパシティを予約する対象となる、インスタンスの数が決定されます。例えば、総ターゲット容量が `384` ユニットのキャパシティー予約フリートが、前述の例のインスタンスタイプと重みを使用する場合、フリートのキャパシティー予約は、`m4.16xlarge` を `6` インスタンス (総ターゲット容量 384/インスタンスタイプの重み 64 = 6 インスタンス) になることも、`m5.24xlarge` を `4` インスタンス (384/96 = 4) になることもあります。

インスタンスタイプのウェイトを割り当てない場合、またはインスタンスタイプの重みに `1` を割り当てた場合には、合計ターゲット容量は純粋にインスタンス数に基づきます。例えば、総ターゲット容量が `384` ユニットのキャパシティー予約フリートが前の例のインスタンスタイプを使用する場合であっても、重みを省略するか、両方のインスタンスタイプに重み `1` を指定すると、フリートのキャパシティー予約は、`m4.16xlarge` を `384` インスタンスか、`m5.24xlarge` を `384` インスタンスかのいずれかになります。

## インスタンスタイプ優先順位
<a name="instance-priority"></a>

*インスタンスタイプの優先順位*は、フリートのインスタンスタイプに割り当てる値です。優先順位は、フリートに指定されているインスタンスタイプのどれに対し、使用上の優先順位を付ける必要があるかを決定します。

優先度の値は、使用する優先順位が高いことを示します。