

# インスタンスの重み付けを使用して、EC2 フリートまたはスポットフリートのコストとパフォーマンスを管理する
<a name="ec2-fleet-instance-weighting"></a>

インスタンスの重み付けでは、EC2 フリートまたはスポットフリート内の各インスタンスタイプに重みを割り当てて、それぞれのコンピューティング能力とパフォーマンスを相対的に表します。この重みに基づいて、目的のターゲットキャパシティを満たしている限り、指定されたインスタンスタイプを任意に組み合わせて使用できます。そのため、フリートのコストとパフォーマンスを容易に管理できます。

重みは、インスタンスタイプが合計ターゲットキャパシティに寄与するキャパシティユニットを表します。

**例: パフォーマンス管理にインスタンスの重み付けを使用する**

例えば、フリートにインスタンスタイプが 2 つあり、以下のようにそれぞれのインスタンスタイプに異なる重みを割り当てているとします。数値は、各タイプが同じパフォーマンスを発揮するためにはそれぞれいくつ必要になるかを表しています。
+  `m5.large` – 重み: 1
+ `m5.2xlarge` – 重み: 4

こうした重みを割り当てることで、1 個の `m5.large` と同じパフォーマンスを発揮するためには 4 個の `m5.2xlarge` インスタンスが必要であることを示すことができます。

特定のターゲットキャパシティに必要なインスタンスの数をインスタンスタイプごとに計算するには、以下の式を使用します。

`target capacity / weight = number of instances`

ターゲットキャパシティが 8 ユニットである場合、フリートは以下のように `m5.large` または `m5.2xlarge`、あるいはその両方を混在させて、ターゲットキャパシティを達成できます。
+ 8 個の `m5.large` インスタンス (キャパシティ 8 / 重み 1 = 8 インスタンス)
+ 2 個の `m5.2xlarge` インスタンス (キャパシティ 8 / 重み 4 = 2 インスタンス)
+ 4 個の `m5.large` および 1 個の `m5.2xlarge`

**例: コスト管理にインスタンスの重み付けを使用する**

デフォルトでは、指定する料金は *1 インスタンス時間あたり* の料金となります。インスタンスの分量指定機能を使用すると、指定した料金は *ユニット時間ごと* の料金となります｡ ユニット時間あたりの使用料金はインスタンスタイプの料金を対応するユニット数で割って計算できます。フリートは、ターゲットキャパシティをインスタンスの重みで割ることで、起動するインスタンスの数を求めます。その結果が整数でなければ、フリートはその数を次の整数に切り上げ、これによりフリートのサイズがターゲット容量以上になります。起動されたインスタンスの容量がリクエストされたターゲット容量を超えた場合でも、フリートは起動仕様で指定したどのプールでも選択できます。

以下の表に、ターゲットキャパシティが 10 のフリートについてユニットあたりの料金を求める計算の例を示しています。


| インスタンスタイプ | インスタンスの分量 | ターゲット容量 | 起動されたインスタンスの数 | インスタンス時間あたりのスポット料金 | ユニット時間あたりの価格 | 
| --- | --- | --- | --- | --- | --- | 
| r3.xlarge |  2  | 10 |  5 (10 ÷ 2)  |  0.05 USD  |  0.025 USD (.05 ÷ 2)  | 
| r3.8xlarge |  8  | 10 |  2 (10 ÷ 8、結果切り上げ)  |  0.10 USD  |  0.0125 USD (.10 ÷ 8)  | 

以下のようにフリートインスタンスの重み付けを使用して、達成時にユニットあたりの料金が最も安くなるプールに目的のターゲットキャパシティをプロビジョニングします。

1. インスタンス (デフォルト) または任意のユニット (vCPU、メモリ、ストレージ、スループットなど) でフリートのターゲットキャパシティを設定します。

1. ユニットあたりの料金を設定します｡

1. 各起動条件で、インスタンスタイプがターゲット容量に対して必要なユニット数である分量を指定します。

**インスタンスの分量指定例**  
フリートリクエストが以下のように設定されている例を検討します。
+ ターゲット容量 24
+ `r3.2xlarge` のインスタンスタイプの起動条件と分量 6
+ `c3.xlarge` のインスタンスタイプの起動条件と分量 5

分量とは、インスタンスタイプがターゲット容量に対して必要なユニット数を表します。最初の起動仕様がユニットあたりの料金を最安値で提供する場合 (インスタンス時間あたりの `r3.2xlarge` の料金を 6 で割ったもの)、フリートはこれらのインスタンスのうち 4 つ (24 割る 6) を起動します。

2 番目の起動仕様がユニットあたりの料金を最安値で提供する場合 (インスタンス時間あたりの `c3.xlarge` の料金を 5 で割ったもの)、フリートはこれらのインスタンスのうち 5 つ (24 割る 5、結果を切り上げ) を起動します。

**インスタンスの分量指定と配分戦略**  
フリートリクエストが以下のように設定されている例を検討します。
+ ターゲット容量 30 スポットインスタンス
+ `c3.2xlarge` のインスタンスタイプの起動条件と分量 8
+ `m3.xlarge` のインスタンスタイプの起動条件と分量 8
+ `r3.xlarge` のインスタンスタイプの起動条件と分量 8

フリートは、4 つのインスタンス (30 割る 8、結果を切り上げ) を起動します。`diversified` 戦略では、フリートは 3 プールごとに 1 つのインスタンスを起動し、そしてこの 3 つのプールのいずれかから取得された 4 つ目のインスタンスがユニットあたりの最低価格を提供することになります。