バーストパフォーマンスインスタンスに関する主要な概念 - Amazon Elastic Compute Cloud

バーストパフォーマンスインスタンスに関する主要な概念

従来の 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 別に表示されます。例えば、ベースラインレベルで動作する t3.large インスタンスの CPU 使用率は、CloudWatch の CPU メトリクスに 30% として表示されます。ベースライン使用率の計算方法については、「ベースライン使用率」を参照してください。

*** 各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 の例を示しています。

平均 CPU 使用率がベースラインを下回っている t3.large インスタンスのグラフ。