バーストインスタンスの CPU クレジットをモニタリングする - Amazon Elastic Compute Cloud

バーストインスタンスの CPU クレジットをモニタリングする

EC2 はメトリクスを Amazon CloudWatch に送信します。CPU クレジットのメトリクスは、CloudWatch コンソールの Amazon EC2 インスタンスごとのメトリクスで確認するか、AWS CLI を使用して各インスタンスのメトリクスを一覧表示することで確認できます。詳細については、「インスタンスに対して利用可能な CloudWatch メトリクス」を参照してください。

バーストパフォーマンスインスタンスの追加 CloudWatch メトリクス

バーストパフォーマンスインスタンスには、以下の追加の CloudWatch メトリクスがあり、5 分ごとに更新されます。

  • CPUCreditUsage – 測定期間に消費された CPU クレジットの数。

  • CPUCreditBalance – インスタンスが蓄積する CPU クレジット数。CPU がバーストし、CPU クレジットが獲得するよりも速い速度で使用される際に、このバランスは枯渇します。

  • CPUSurplusCreditBalanceCPUCreditBalance 値がゼロになったときに CPU 使用率を保持するために使用される余剰 CPU クレジットの数。

  • CPUSurplusCreditsCharged – 24 時間で獲得できる CPU クレジットの最大数を越えた、追加料金が発生する分の余剰 CPU クレジットの数。

最後の 2 つのメトリクスは unlimited として設定されたインスタンスにのみ適用されます。

バーストパフォーマンスインスタンスの CloudWatch メトリクスの説明を次の表に示します。詳細については、インスタンスに対して利用可能な CloudWatch メトリクス を参照してください。

メトリクス 説明
CPUCreditUsage

CPU 使用率に関してインスタンスで消費される CPU クレジットの数。1 つの CPU クレジットは、1 個の vCPU が 100% の使用率で 1 分間実行されること、または、vCPU、使用率、時間の同等の組み合わせ (例えば、1 個の vCPU が 50% の使用率で 2 分間実行されるか、2 個の vCPU が 25% の使用率で 2 分間実行される) に相当します。

CPU クレジットメトリクスは、5 分間隔でのみ利用可能です。5 分を超える期間を指定する場合は、Average 統計の代わりに Sum 統計を使用します。

単位: クレジット (vCPU 分)

CPUCreditBalance

インスタンスが起動または開始後に蓄積した獲得 CPU クレジットの数。T2 スタンダードの場合、CPUCreditBalance には蓄積された起動クレジットの数も含まれます。

クレジットは、獲得後にクレジット残高に蓄積され、消費されるとクレジット残高から削除されます。クレジット残高には、インスタンスサイズによって決まる上限があります。制限に到達すると、獲得された新しいクレジットはすべて破棄されます。T2 スタンダードの場合、起動クレジットは制限に対してカウントされません。

CPUCreditBalance のクレジットは、インスタンスがそのベースライン CPU 使用率を超えてバーストするために消費できます。

インスタンスが実行中の場合、CPUCreditBalance のクレジットは期限切れになりません。T4g、T3a、または T3 インスタンスが停止すると、CPUCreditBalance 値は 7 日間保持されます。その後、蓄積されたすべてのクレジットが失われます。T2 インスタンスが停止すると、CPUCreditBalance 値は保持されず、蓄積されたすべてのクレジットが失われます。

CPU クレジットメトリクスは、5 分間隔でのみ利用可能です。

単位: クレジット (vCPU 分)

CPUSurplusCreditBalance

CPUCreditBalance 値がゼロの場合に unlimited インスタンスによって消費された余剰クレジットの数。

CPUSurplusCreditBalance 値は獲得した CPU クレジットによって支払われます。余剰クレジットの数が、24 時間にインスタンスが獲得できるクレジットの最大数を超えている場合、最大数を超えて消費された余剰クレジットに対しては料金が発生します。

単位: クレジット (vCPU 分)

CPUSurplusCreditsCharged

獲得 CPU クレジットにより支払われないために追加料金が発生した、消費された余剰クレジットの数。

消費された余剰クレジットは、以下のいずれかの状況に当てはまると料金が発生します。

  • 消費された余剰クレジットが、インスタンスが 24 時間に獲得できる最大クレジット数を超えている。最大数を越えて消費された余剰クレジットは、時間の最後に課金されます。

  • インスタンスが停止または終了した。

  • インスタンスは unlimited から standard に切り替わります。

単位: クレジット (vCPU 分)

CPU クレジット使用状況の計算

インスタンスの CPU クレジット使用状況は、前述の表で説明したインスタンス CloudWatch メトリクスを使用して計算されます。

Amazon EC2 は、メトリクスを 5 分ごとに CloudWatch に送信します。前のメトリクス値の参照はいつでも、5 分前に送信された、直前のメトリクス値を意味します。

スタンダードインスタンスの CPU クレジット使用状況の計算

  • CPU クレジット残高は、CPU 利用率がベースラインを下回り、前の 5 分間に消費したクレジットが獲得したクレジットより少なかった場合に増加します。

  • CPU クレジット残高は、CPU 利用率がベースラインを上回り、前の 5 分間に消費したクレジットが獲得したクレジットよりも多かった場合に減少します。

数学的に、これは次の式で表されます。

CPUCreditBalance = prior CPUCreditBalance + [Credits earned per hour * (5/60) - CPUCreditUsage]

インスタンスのサイズは、インスタンスが 1 時間あたりに獲得できるクレジットの数と、クレジット残高に蓄積できる獲得クレジットの数を決定します。1 時間あたりに獲得するクレジット数と、各インスタンスサイズのクレジット残高制限については、「クレジットの表」を参照してください。

この例では、t3.nano インスタンスを使用します。インスタンスの CPUCreditBalance 値を計算するには、前述の式を次のように使用します。

  • CPUCreditBalance – 計算する現在のクレジット残高。

  • prior CPUCreditBalance – 5 分前のクレジット残高。この例では、インスタンスは 2 クレジットを蓄積しています。

  • Credits earned per hourt3.nano インスタンスは 1 時間あたり 6 クレジット獲得します。

  • 5/60 – CloudWatch メトリクスのパブリッシュ間の 5 分間隔を表します。1 時間あたりに獲得するクレジットに 60 分の 5 (5 分) を掛けて、インスタンスが過去 5 分間に獲得したクレジット数を求めます。t3.nano インスタンスは、5 分ごとに 0.5 クレジットを獲得します。

  • CPUCreditUsage – インスタンスが過去 5 分間に消費したクレジット数。この例では、インスタンスは過去 5 分間に 1 クレジットを消費しました。

これらの値を使用して、CPUCreditBalance の値を計算できます。

CPUCreditBalance = 2 + [0.5 - 1] = 1.5

無制限インスタンスの CPU クレジット使用状況の計算

バーストパフォーマンスインスタンスがベースラインを超えてバーストする必要がある場合、余剰クレジットを消費する前に、蓄積されたクレジットが常に消費されます。蓄積した CPU クレジット残高を使いきると、必要な期間だけ余剰クレジットを使用してバーストできます。CPU 利用率がベースラインを下回った場合、インスタンスが獲得クレジットを蓄積する前に常に余剰クレジットが支払われます。

この 5 分間に発生するアクティビティを反映するため、次の式では Adjusted balance という用語を使用します。CPUCreditBalance および CPUSurplusCreditBalance の CloudWatch メトリクスの値に達するため、この値を使用します。

Adjusted balance = [prior CPUCreditBalance - prior CPUSurplusCreditBalance] + [Credits earned per hour * (5/60) - CPUCreditUsage]

0 に対する Adjusted balance の値は、インスタンスが獲得したすべてのクレジットがバーストに消費され、余剰クレジットは消費されなかったことを示します。結果として、CPUCreditBalanceCPUSurplusCreditBalance0 に設定されます。

Adjusted balance の正の値は、インスタンスが獲得クレジットを蓄積し、前の余剰クレジットが (ある場合) 支払われたことを示します。結果として、Adjusted balance の値は CPUCreditBalance に割り当てられ、CPUSurplusCreditBalance0に設定されます。インスタンスサイズは、蓄積可能な最大クレジット数を決定します。

CPUCreditBalance = min [max earned credit balance, Adjusted balance] CPUSurplusCreditBalance = 0

Adjusted balance の負の値は、インスタンスが蓄積したすべての獲得クレジットに加えて、余剰クレジットもバーストに消費されたことを示します。結果として、Adjusted balance の値は CPUSurplusCreditBalanceCPUCreditBalance に割り当てられ、0に設定されます。繰り返しになりますが、インスタンスサイズは、蓄積可能な最大クレジット数を決定します。

CPUSurplusCreditBalance = min [max earned credit balance, -Adjusted balance] CPUCreditBalance = 0

消費される余剰クレジットがインスタンスに蓄積可能な最大クレジットを越えた場合、余剰クレジット残高は前述の式に示すように最大に設定されます。残りの余剰クレジットは CPUSurplusCreditsCharged メトリクスで示すように課金されます。

CPUSurplusCreditsCharged = max [-Adjusted balance - max earned credit balance, 0]

最後に、CPUSurplusCreditBalance により追跡された余剰クレジットもインスタンスの終了時に課金されます。インスタンスを unlimited から standard に切り替えると、残りの CPUSurplusCreditBalance も課金されます。