

# 성능 버스트 가능 인스턴스에 대한 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` 값이 0일 때 CPU 사용률을 유지하기 위해 소비되는 잉여 CPU 크레딧 수.
+ `CPUSurplusCreditsCharged` – 24시간 동안 획득할 수 있는 [최대 CPU 크레딧 수](burstable-credits-baseline-concepts.md#burstable-performance-instances-credit-table)를 초과하여 추가 요금을 유발하는 잉여 CPU 크레딧 수.

마지막 두 측정치는 `unlimited`로 구성된 인스턴스에만 적용됩니다.

다음 표에서는 성능 순간 확장 가능 인스턴스에 대한 CloudWatch 측정치를 설명합니다. 자세한 내용은 [인스턴스에 사용 가능한 CloudWatch 지표](viewing_metrics_with_cloudwatch.md) 섹션을 참조하세요.


| 측정치 | 설명 | 
| --- | --- | 
| CPUCreditUsage | CPU 사용률을 위해 인스턴스에서 소비되는 CPU 크레딧의 수입니다. CPU 크레딧 하나는 1분 동안 100%의 사용률로 실행되는 vCPU 1개 또는 이와 동등한 vCPU, 사용률 및 시간의 조합과 동일합니다(예를 들어 2분 동안 50%의 사용률로 실행되는 vCPU 1개 또는 2분 동안 25%의 사용률로 실행되는 vCPU 2개).<br />CPU 크레딧 측정치는 5분 간격으로만 제공됩니다. 5분 이상의 시간을 지정할 경우 `Sum` 통계 대신 `Average` 통계를 사용하세요.<br />단위: 크레딧 (vCPU-분) | 
| CPUCreditBalance | 시작 이후 인스턴스가 누적한 획득 CPU 크레딧 수입니다. T2 스탠다드의 경우 `CPUCreditBalance`에 누적된 시작 크레딧 수도 포함됩니다.<br />크레딧은 획득 이후에 크레딧 밸런스에 누적되고, 소비 시 크레딧 밸런스에서 소멸됩니다. 크레딧 밸런스는 최대 한도(인스턴스 크기에 따라 결정)가 있습니다. 한도에 도달하면 새로 획득한 크레딧이 모두 삭제됩니다. T2 스탠다드의 경우 시작 크레딧은 한도에 포함되지 않습니다.<br />`CPUCreditBalance`의 크레딧은 인스턴스가 기준 CPU 사용률 이상으로 버스터를 하는 데 소비할 수 있습니다.<br />인스턴스가 실행 중인 동안 `CPUCreditBalance`의 크레딧은 만료되지 않습니다. T4g, T3a 또는 T3 인스턴스가 중지되면 `CPUCreditBalance` 값은 7일 동안 유지됩니다. 그 이후에는 누적된 크레딧이 모두 삭제됩니다. T2 인스턴스가 중지되면 `CPUCreditBalance` 값은 지속되지 않고 누적된 크레딧이 모두 삭제됩니다.<br />CPU 크레딧 측정치는 5분 간격으로만 제공됩니다.<br />단위: 크레딧 (vCPU-분) | 
| CPUSurplusCreditBalance  | `unlimited` 값이 0일 때 `CPUCreditBalance` 인스턴스에서 소비된 잉여 크레딧의 수 입니다.<br />획득한 CPU 크레딧에 따라 `CPUSurplusCreditBalance` 값이 청산됩니다. 잉여 크레딧의 수가 인스턴스가 24시간 동안 획득할 수 있는 최대 크레딧 수를 초과한 경우 최대 값 이상으로 소비된 잉여 크레딧은 추가 요금으로 부과됩니다.<br />단위: 크레딧 (vCPU-분)  | 
| CPUSurplusCreditsCharged | 획득한 CPU 크레딧으로 청산되지 않는 소비 잉여 크레딧의 수로, 추가 요금으로 부과됩니다.<br />소비된 잉여 크레딧은 다음이 발생할 때 요금이 부과됩니다.[See the AWS documentation website for more details](http://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/burstable-performance-instances-monitoring-cpu-credits.html)<br />단위: 크레딧 (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 사용률이 기준 미만이고 소비된 크레딧이 5분 전에 획득한 크레딧보다 적을 때 CPU 크레딧 밸런스가 증가합니다.
+ CPU 사용률이 기준 이상이고 소비된 크레딧이 5분 전에 획득한 크레딧보다 많을 때 CPU 크레딧 밸런스가 감소합니다.

수학적으로 다음 수식을 통해 이를 확인할 수 있습니다:

**Example**  

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

인스턴스 크기에 따라 인스턴스가 시간당 획득할 수 있는 크레딧 수와 크레딧 밸런스에 누적할 수 있는 획득 크레딧의 수가 결정됩니다. 시간당 획득 크레딧 수, 각 인스턴스 크기에 대한 크레딧 밸런스 한도에 대한 자세한 내용은 [크레딧 표](burstable-credits-baseline-concepts.md#burstable-performance-instances-credit-table)를 참조하세요.

**예제**  
이 예제에서는 `t3.nano` 인스턴스를 사용합니다. 인스턴스의 `CPUCreditBalance` 값을 계산하려면 앞의 수식을 사용하여 다음과 같이 합니다.
+ `CPUCreditBalance` – 계산하려는 현재 크레딧 밸런스입니다.
+ `prior CPUCreditBalance` – 5분 전의 크레딧 밸런스입니다. 이 예제에서는 인스턴스가 2개의 크레딧을 획득했습니다.
+ `Credits earned per hour` – `t3.nano` 인스턴스는 시간당 6개의 크레딧을 획득합니다.
+ `5/60` – CloudWatch 지표가 게시되는 5분 간격을 나타냅니다. 시간당 획득한 크레딧에 5/60(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를 버스트할 수 있습니다. 인스턴스의 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`에도 요금이 부과됩니다.