

# バーストインスタンスの CPU クレジットをモニタリングする
<a name="burstable-performance-instances-monitoring-cpu-credits"></a>

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

**Topics**
+ [バーストパフォーマンスインスタンスの追加 CloudWatch メトリクス](#burstable-performance-instances-cw-metrics)
+ [CPU クレジット使用状況の計算](#burstable-performance-instances-calculating-credit-use)

## バーストパフォーマンスインスタンスの追加 CloudWatch メトリクス
<a name="burstable-performance-instances-cw-metrics"></a>

バーストパフォーマンスインスタンスには、以下の追加の CloudWatch メトリクスがあり、5 分ごとに更新されます。
+ `CPUCreditUsage` – 測定期間に消費された CPU クレジットの数。
+ `CPUCreditBalance` – インスタンスが蓄積する CPU クレジット数。CPU がバーストし、CPU クレジットが獲得するよりも速い速度で使用される際に、このバランスは枯渇します。
+ `CPUSurplusCreditBalance` – `CPUCreditBalance` 値がゼロになったときに CPU 使用率を保持するために使用される余剰 CPU クレジットの数。
+ `CPUSurplusCreditsCharged` – 24 時間で獲得できる [CPU クレジットの最大数](burstable-credits-baseline-concepts.md#burstable-performance-instances-credit-table)を越えた、追加料金が発生する分の余剰 CPU クレジットの数。

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

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


| メトリクス | 説明 | 
| --- | --- | 
| 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 クレジットにより支払われないために追加料金が発生した、消費された余剰クレジットの数。 消費された余剰クレジットは以下のいずれかの状況に当てはまると料金が発生します。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/burstable-performance-instances-monitoring-cpu-credits.html) 単位: クレジット (vCPU 分)   | 

## CPU クレジット使用状況の計算
<a name="burstable-performance-instances-calculating-credit-use"></a>

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

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

### スタンダードインスタンスの CPU クレジット使用状況の計算
<a name="burstable-performance-instances-standard-calculation"></a>
+ CPU クレジット残高は、CPU 利用率がベースラインを下回り、前の 5 分間に消費したクレジットが獲得したクレジットより少なかった場合に増加します。
+ CPU クレジット残高は、CPU 利用率がベースラインを上回り、前の 5 分間に消費したクレジットが獲得したクレジットよりも多かった場合に減少します。

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

**Example**  

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

インスタンスのサイズは、インスタンスが 1 時間あたりに獲得できるクレジットの数と、クレジット残高に蓄積できる獲得クレジットの数を決定します。1 時間あたりに獲得するクレジット数と、各インスタンスサイズのクレジット残高制限については、[クレジットの表](burstable-credits-baseline-concepts.md#burstable-performance-instances-credit-table)を参照してください。

**例**  
この例では、`t3.nano` インスタンスを使用します。インスタンスの `CPUCreditBalance` 値を計算するには、前述の式を次のように使用します。
+ `CPUCreditBalance` – 計算する現在のクレジット残高。
+ `prior CPUCreditBalance` – 5 分前のクレジット残高。この例では、インスタンスは 2 クレジットを蓄積しています。
+ `Credits earned per hour` – `t3.nano` インスタンスは 1 時間あたり 6 クレジット獲得します。
+ `5/60` – CloudWatch メトリクスのパブリッシュ間の 5 分間隔を表します。1 時間あたりに獲得するクレジットに 60 分の 5 (5 分) を掛けて、インスタンスが過去 5 分間に獲得したクレジット数を求めます。`t3.nano` インスタンスは、5 分ごとに 0.5 クレジットを獲得します。
+ `CPUCreditUsage` – インスタンスが過去 5 分間に消費したクレジット数。この例では、インスタンスは過去 5 分間に 1 クレジットを消費しました。

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

**Example**  

```
CPUCreditBalance = 2 + [0.5 - 1] = 1.5
```

### 無制限インスタンスの CPU クレジット使用状況の計算
<a name="burstable-performance-instances-unlimited-calculation"></a>

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

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

**Example**  

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

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

`Adjusted balance` の正の値は、インスタンスが獲得クレジットを蓄積し、前の余剰クレジットが (ある場合) 支払われたことを示します。結果として、`Adjusted balance` の値は `CPUCreditBalance` に割り当てられ、`CPUSurplusCreditBalance` は `0`に設定されます。インスタンスサイズは、蓄積可能な[最大クレジット数](burstable-credits-baseline-concepts.md#burstable-performance-instances-credit-table)を決定します。

**Example**  

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

`Adjusted balance` の負の値は、インスタンスが蓄積したすべての獲得クレジットに加えて、余剰クレジットもバーストに消費されたことを示します。結果として、`Adjusted balance` の値は `CPUSurplusCreditBalance` と `CPUCreditBalance` に割り当てられ、`0`に設定されます。繰り返しになりますが、インスタンスサイズは、蓄積可能な[最大クレジット数](burstable-credits-baseline-concepts.md#burstable-performance-instances-credit-table)を決定します。

**Example**  

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

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

**Example**  

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

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