バーストパフォーマンスインスタンスに関する主要な概念
従来の Amazon EC2 インスタンスタイプの場合は CPU リソースが固定されています。一方バーストパフォーマンスインスタンスの場合は、CPU 使用率にベースラインレベルを定義した上で、そのレベルを超えて CPU 使用率をバーストさせることが可能となっています。これにより料金は、ベースラインの CPU 使用率に加えて、バーストとして追加された分に対してのみ支払えば良いことになり、コンピューティングのコストを削減できます。ベースライン使用率とバースト機能は、CPU クレジットで管理します。バーストパフォーマンスインスタンスは、CPU 使用率にクレジットを使用する唯一のインスタンスタイプです。
各バーストパフォーマンスインスタンスは、CPU 使用率がベースラインを下回っている間は継続的にクレジットを獲得し、ベースラインを上回っている間は継続的にクレジットを消費します。獲得または消費されたクレジットの量は、インスタンスの CPU 使用率によって異なります。
-
CPU 使用率がベースラインを下回っている場合、獲得するクレジットは消費するクレジットよりも大きくなります。
-
CPU 使用率がベースラインと等しい場合、獲得するクレジットは消費するクレジットと等しくなります。
-
CPU 使用率がベースラインよりも高い場合、消費するクレジットが獲得するクレジットよりも高くなります。
獲得したクレジットが消費したクレジットよりも大きい場合、その差額は蓄積されたクレジットと呼ばれ、後でベースラインを超えて CPU 使用率をバーストさせる際に使用できます。一方、消費したクレジットが獲得したクレジットよりも多い場合のインスタンスの動作は、クレジット設定モード (スタンダードモードまたは Unlimited モード) によって異なります。
スタンダードモードでは、消費したクレジットが獲得したクレジットよりも多い場合、インスタンスは、ベースラインを越えて CPU 使用率をバーストさせるために、蓄積されたクレジットを使用します。蓄積されたクレジットに残額がない場合、インスタンスは CPU 使用率を徐々にベースラインまで低下させ、より多くのクレジットが蓄積されるまで、ベースラインを超えてバーストすることはできなくなります。
Unlimited モードでは、CPU 使用率がベースラインを超えてバーストした場合、インスタンスは最初に蓄積されたクレジットを使用します。その後、蓄積されたクレジットの残額がなくなった場合には、インスタンスは余剰クレジットを消費してバーストを維持します。その CPU 利用率がベースラインを下回った場合、獲得した CPU クレジットを使用して、先に消費された余剰クレジットの支払いが行われます。CPU クレジットを獲得して余剰クレジットを支払う機能により、Amazon EC2 は 24 時間にわたるインスタンスの CPU 使用率を平均化できるようになります。24 時間の平均 CPU 使用率がベースラインを超えたインスタンスには、vCPU 時間あたりの超過の使用量に対して、均一追加料金
主要な概念と定義
バーストパフォーマンスインスタンスには、以下の主要な概念と定義が適用されます。
- CPU 使用率
-
CPU 使用率とは、割り当てられた EC2 コンピューティングユニットのうち、現在インスタンス上で使用されているものが占める割合のことです。このメトリクスは、割り当てられた CPU サイクルの中で、インスタンスで使用されているサイクルの割合を測定します。CloudWatch の CPU 使用率に関するメトリクスでは、コアごとの CPU 使用率ではなく、インスタンスごとの CPU 使用率を示しています。インスタンスの CPU ベースラインに関する仕様は、インスタンスごとの CPU 使用率とも関連しています。AWS Management Console または AWS CLI を使用して CPU 使用率を測定する方法については、「特定のインスタンスの統計を取得する」を参照してください。
- CPU クレジット
-
vCPU 時間の単位。
例:
1 CPU クレジット = 1 vCPU × 100% 使用率 × 1 分
1 CPU クレジット = 1 vCPU × 50% 使用率 × 2 分
1 CPU クレジット = 2 vCPU × 25% 使用率 × 2 分
- ベースライン使用率
-
ベースライン使用率とは、CPU クレジットの獲得数と CPU クレジットの使用数が一致する場合に、正味のクレジット残高が 0 の状態で CPU を使用できるレベルのことです。ベースライン使用率はベースラインとも呼ばれます。ベースライン使用率は vCPU の使用率のパーセンテージとして表され、次のように計算されます。ベースライン使用率 % = (獲得したクレジットの数 ÷ vCPU の数) ÷ 60 分
各バーストパフォーマンスインスタンスタイプのベースライン使用率については、「クレジットの表」を参照してください。
- 獲得クレジット
-
実行中のインスタンスが継続的に獲得するクレジットです。
1 時間あたりの獲得クレジット数 =ベースライン使用率 (%) × vCPU 数 (個)× 60 (分)
例:
vCPU を 2 個使用し、ベースライン使用率が 5% に設定された T3.nano では次の計算のように、1 時間あたり 6 クレジットを獲得します。
2 個の vCPU × 5% のベースライン × 60 分 = 1 時間あたり 6 クレジット
- 消費または使用されたクレジット
-
実行中のインスタンスにより継続的に使用されるクレジットです。
1 分あたりに使用される CPU クレジット = vCPU 数 (個) × CPU 使用率 (%) × 1 分
- 蓄積されたクレジット
-
インスタンスの使用量がベースラインの使用率よりも少ないので、消費されなかった CPU クレジットです。つまり、蓄積されたクレジット = 獲得クレジット — 使用されたクレジット (ともにベースラインより低い場合)、となります。
例:
仮に t3.nano の CPU 使用率が 2% で、ベースラインである 5% を 1 時間の間下回っていた場合、蓄積されたクレジットは次のように計算されます。
蓄積された CPU クレジット = (1 時間あたりの獲得クレジット — 1 時間あたりの使用クレジット) = 6 — 2 (vCPU 個数) × 2 (CPU 使用率 %) × 60 (分) = 6 — 2.4 = 3.6 (1 時間あたりに蓄積されたクレジット)
- クレジット蓄積制限
-
インスタンスのサイズによって異なりますが、通常は 24 時間以内に獲得できるクレジットの最大数と等しくなります。
例:
t3.nanoの場合、クレジット蓄積制限 = 24 × 6 = 144クレジット
- 起動クレジット
-
これは、スタンダードモードに設定された T2 インスタンスにのみ適用されます。起動クレジットは、新しい T2 インスタンスに割り当てられるもので、CPU クレジットの数に制限があります。スタンダードモードで起動することで、ベースラインを超えたバーストが可能になります。
- 余剰クレジット
-
蓄積されたクレジットの残高が枯渇したインスタンスが消費するクレジットです。余剰クレジットは、長期間高パフォーマンスを維持するバーストインスタンスのために設計されており、使用できるのは Unlimited モードでのみです。余剰クレジット残高は、Unlimited モードのインスタンスがバーストのために使用した、クレジットの数を判断するために使用されます。
- スタンダードモード
-
クレジットの設定モードです。このモードのインスタンスでは、クレジット残高に蓄積されたクレジットを消費することで、そのベースラインを超えたバーストが可能です。
- Unlimited モード
-
クレジットの設定モードです。必要な期間にわたって高い CPU 使用率を維持することで、インスタンスがベースラインを超えてバーストすることを可能にします。24 時間ごとのインスタンスの平均 CPU 使用率またはインスタンスの存続期間のいずれか短い方の時間で、インスタンスの平均 CPU 使用率がベースライン以下になった場合、1 時間ごとのインスタンス価格は自動的にすべての CPU 使用率スパイクをカバーします。長時間にわたって高い CPU 使用率でインスタンスを実行する場合には、vCPU 時間ごとに均一追加料金
が発生します。
次の表は、バーストインスタンスタイプ間の主なクレジットの違いをまとめたものです。
タイプ | サポートされる CPU クレジットのタイプ | クレジットの設定モード | インスタンスの開始から停止までの間に蓄積された CPU クレジットのライフスパン |
---|---|---|---|
最新世代 | |||
T4g |
獲得クレジット、蓄積されたクレジット、消費されたクレジット、余剰クレジット (Unlimited モードのみ) |
スタンダード、Unlimited (デフォルト) |
7 日間 (クレジットは、インスタンスが停止した後、7 日間維持されます) |
T3a |
獲得クレジット、蓄積されたクレジット、消費されたクレジット、余剰クレジット (Unlimited モードのみ) |
スタンダード、Unlimited (デフォルト) |
7 日間 (クレジットは、インスタンスが停止した後、7 日間維持されます) |
T3 |
獲得クレジット、蓄積されたクレジット、消費されたクレジット、余剰クレジット (Unlimited モードのみ) |
スタンダード、Unlimited (デフォルト) |
7 日間 (クレジットは、インスタンスが停止した後、7 日間維持されます) |
前の世代 | |||
T2 |
獲得クレジット、蓄積されたクレジット、使用されたクレジット、起動クレジット (スタンダードモードのみ)、余剰クレジット (Unlimited モードのみ) |
スタンダード (デフォルト)、Unlimited |
0 日 (インスタンスが停止するとクレジットは失われます) |
注記
Dedicated Host で起動される T3 インスタンスでは、Unlimited モードはサポートされていません。
CPU クレジットの獲得
各バーストパフォーマンスインスタンスは、インスタンスサイズに応じて、1 時間当たりの CPU クレジットを絶えず一定の割合で (ミリ秒レベルの細かさで) 獲得します。クレジットを蓄積または消費する会計処理もミリ秒レベルの細かさで実施されるため、CPU クレジットの浪費について心配する必要はありません。CPU の短期バーストでは CPU クレジットのごく一部しか使用されません。
バーストパフォーマンスインスタンスが使用する CPU リソースが、ベースライン使用率に必要な CPU リソースよりも少ない場合 (アイドル時など)、未使用の CPU クレジットが CPU クレジット残高に蓄積されます。バーストパフォーマンスインスタンスがベースライン使用率を超えてバーストする必要がある場合は、蓄積されたクレジットを消費します。CPU 使用率を増やす必要がある場合、バーストパフォーマンスインスタンスが蓄積したクレジットが多いほど、ベースラインを超えてバーストできる時間が増えます。
次の表は、バーストパフォーマンスインスタンスのタイプ、1 時間あたりに CPU クレジットを獲得するレート、インスタンスが蓄積できる獲得 CPU クレジットの最大数、インスタンスあたりの vCPU 数、およびコア全体に対する割合で表したベースライン使用率 (単一の vCPU を使用した場合) の一覧です。
インスタンスタイプ |
1 時間あたりに受け取る CPU クレジット |
蓄積可能な最大獲得クレジット* |
vCPU 数 |
vCPU あたりのベースライン使用率 |
---|---|---|---|---|
T2 |
||||
t2.nano |
3 |
72 |
1 |
5% |
t2.micro |
6 |
144 |
1 |
10% |
t2.small |
12 |
288 |
1 |
20% |
t2.medium |
24 |
576 |
2 |
20%** |
t2.large |
36 |
864 |
2 |
30%** |
t2.xlarge |
54 |
1296 |
4 |
22.5%** |
t2.2xlarge |
81.6 |
1958.4 |
8 |
17%** |
T3 |
||||
t3.nano |
6 |
144 |
2 |
5%** |
t3.micro |
12 |
288 |
2 |
10%** |
t3.small |
24 |
576 |
2 |
20%** |
t3.medium |
24 |
576 |
2 |
20%** |
t3.large |
36 |
864 |
2 |
30%** |
t3.xlarge |
96 |
2304 |
4 |
40%** |
t3.2xlarge |
192 |
4608 |
8 |
40%** |
T3a |
||||
t3a.nano |
6 |
144 |
2 |
5%** |
t3a.micro |
12 |
288 |
2 |
10%** |
t3a.small |
24 |
576 |
2 |
20%** |
t3a.medium |
24 |
576 |
2 |
20%** |
t3a.large |
36 |
864 |
2 |
30%** |
t3a.xlarge |
96 |
2304 |
4 |
40%** |
t3a.2xlarge |
192 |
4608 |
8 |
40%** |
T4g |
||||
t4g.nano |
6 |
144 |
2 |
5%** |
t4g.micro |
12 |
288 |
2 |
10%** |
t4g.small |
24 |
576 |
2 |
20%** |
t4g.medium |
24 |
576 |
2 |
20%** |
t4g.large |
36 |
864 |
2 |
30%** |
t4g.xlarge |
96 |
2304 |
4 |
40%** |
t4g.2xlarge |
192 |
4608 |
8 |
40%** |
* 蓄積できるクレジットの数は、24 時間で獲得できるクレジットの数と同じです。 |
** 表内のベースライン使用率は vCPU 別の割合です。CloudWatch では、CPU 使用率は vCPU 別に表示されます。例えば、ベースラインレベルで動作する |
*** 各vCPUは、インテル Xeon コアまたは AMD EPYC コアのスレッドに対応します (T2 と T4g インスタンスを除く)。 |
CPU クレジットの獲得率
1 時間あたりに獲得する CPU クレジット数は、インスタンスのサイズによって決まります。例えば、t3.nano
は 1 時間あたり 6 クレジットを獲得しますが、t3.small
は 1 時間あたり 24 クレジットを獲得します。前記の表は、すべてのインスタンスのクレジット獲得率を示しています。
CPU クレジット蓄積制限
実行中のインスタンスで獲得されたクレジットが失効することはありませんが、インスタンスが蓄積できる獲得クレジットの数には制限があります。制限は、CPU クレジット残高により決まります。下記の図に示されているとおり、制限に到達すると、獲得された新しいクレジットはすべて破棄されます。フルバケットは CPU クレジット残高制限を示し、スピルオーバーは制限を超えた新しく獲得されたクレジットを示します。
CPU クレジット残高制限は、各 インスタンスのサイズによって異なります。例えば、t3.micro
インスタンスは CPU クレジット残高で最大 288 の獲得 CPU クレジットを蓄積できます。前記の表は、各 インスタンスに累積できる獲得クレジットの最大数を示しています。
T2 スタンダードインスタンスは、起動クレジットも獲得します。起動クレジットは、CPU クレジット残高制限に対してカウントされません。T2 インスタンスがその起動クレジットを消費しておらず、獲得クレジットを蓄積しながら 24 時間以上アイドル状態が続いた場合、CPU クレジット残高は制限を上回って表示されます。詳細については、起動クレジット を参照してください。
T4g、T3a、および T3 インスタンスでは、起動クレジットを獲得させることはできません。これらのインスタンスはデフォルトで unlimited
として起動するため、起動クレジットなしでも起動後すぐにバーストできます。Dedicated Host で起動された T3 インスタンスはstandard
(デフォルト)unlimited
モードは Dedicated Host の T3 インスタンスではサポートされていません。
CPU 存続期間の蓄積
実行中のインスタンスの CPU クレジットは失効しません。
T2 では、CPU クレジット残高は、インスタンスが停止して起動すると引き継がれません。T2 インスタンスを停止した場合、蓄積されたすべてのクレジットが失われます。
T4g、T3a、および T3では、インスタンスが停止した後も CPU クレジット残高は 7 日間保持され、その後に失われます。7 日以内にインスタンスを起動する場合、クレジットは失われません。
詳細については、「CloudWatch メトリクスの表」の CPUCreditBalance
を参照してください。
ベースライン使用率
ベースライン使用率とは、CPU クレジットの獲得数と CPU クレジットの使用数が一致する場合に、正味のクレジット残高が 0 の状態で CPU を使用できるレベルのことです。ベースライン使用率はベースラインとも呼ばれます。
ベースライン使用率は、vCPU の使用に対する割合として表され、次のように計算されます。
(number of credits earned/number of vCPUs)/60 minutes = % baseline
utilization
例えば、2 つの vCPU を持つ t3.nano
インスタンスが 1 時間あたり 6 クレジットを獲得すると、ベースライン使用率は 5% になります。これは、次のように計算されます。
(6 credits earned/2 vCPUs)/60 minutes = 5% baseline utilization
2 つの vCPU を持つ t3.large
インスタンスが 1 時間あたり 36 クレジットを獲得すると、ベースライン使用率は 30% になります ((36/2)/60
)。
次のグラフは、平均 CPU 使用率がベースラインを下回っている t3.large
の例を示しています。