버스트 가능 성능 인스턴스에 대한 CPU 크레딧 모니터링 - Amazon Elastic Compute Cloud

버스트 가능 성능 인스턴스에 대한 CPU 크레딧 모니터링

EC2는 지표를 Amazon CloudWatch로 전송합니다. CPU 크레딧 지표는 CloudWatch 콘솔의 Amazon EC2 인스턴스별 지표에서 또는 각 인스턴스에 대한 지표를 나열하는 AWS CLI를 사용하여 확인할 수 있습니다. 자세한 내용은 콘솔을 사용하여 지표 나열AWS CLI를 사용하여 지표 나열 섹션을 참조하세요.

성능 순간 확장 가능 인스턴스에 대한 추가 CloudWatch 측정치

버스트 가능한 성능 인스턴스에는 다음과 같은 추가 CloudWatch 지표가 있으며 5분마다 업데이트됩니다.

  • CPUCreditUsage – 측정 기간 중에 소비한 CPU 크레딧 수.

  • CPUCreditBalance – 한 인스턴스에서 발생한 CPU 크레딧 수입니다. CPU에서 버스트가 발생하고 CPU 크레딧이 획득 속도보다 빠르게 소비될 때 크레딧 밸런스가 고갈됩니다.

  • CPUSurplusCreditBalanceCPUCreditBalance 값이 0일 때 CPU 사용률을 유지하기 위해 소비되는 잉여 CPU 크레딧 수.

  • CPUSurplusCreditsCharged – 24시간 동안 획득할 수 있는 최대 CPU 크레딧 수를 초과하여 추가 요금을 유발하는 잉여 CPU 크레딧 수.

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

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

측정치 설명
CPUCreditUsage

CPU 사용률을 위해 인스턴스에서 소비되는 CPU 크레딧의 수입니다. CPU 크레딧 하나는 1분 동안 100%의 사용률로 실행되는 vCPU 1개 또는 이와 동등한 vCPU, 사용률 및 시간의 조합과 동일합니다(예를 들어 2분 동안 50%의 사용률로 실행되는 vCPU 1개 또는 2분 동안 25%의 사용률로 실행되는 vCPU 2개).

CPU 크레딧 측정치는 5분 간격으로만 제공됩니다. 5분 이상의 시간을 지정할 경우 Sum 통계 대신 Average 통계를 사용하세요.

단위: 크레딧 (vCPU-분)

CPUCreditBalance

시작 이후 인스턴스가 누적한 획득 CPU 크레딧 수입니다. T2 스탠다드의 경우 CPUCreditBalance에 누적된 시작 크레딧 수도 포함됩니다.

크레딧은 획득 이후에 크레딧 밸런스에 누적되고, 소비 시 크레딧 밸런스에서 소멸됩니다. 크레딧 밸런스는 최대 한도(인스턴스 크기에 따라 결정)가 있습니다. 한도에 도달하면 새로 획득한 크레딧이 모두 삭제됩니다. T2 스탠다드의 경우 시작 크레딧은 한도에 포함되지 않습니다.

CPUCreditBalance의 크레딧은 인스턴스가 기준 CPU 사용률 이상으로 버스터를 하는 데 소비할 수 있습니다.

인스턴스가 실행 중인 동안 CPUCreditBalance의 크레딧은 만료되지 않습니다. T4g, T3a 또는 T3 인스턴스가 중지되면 CPUCreditBalance 값은 7일 동안 유지됩니다. 그 이후에는 누적된 크레딧이 모두 삭제됩니다. T2 인스턴스가 중지되면 CPUCreditBalance 값은 지속되지 않고 누적된 크레딧이 모두 삭제됩니다.

CPU 크레딧 측정치는 5분 간격으로만 제공됩니다.

단위: 크레딧 (vCPU-분)

CPUSurplusCreditBalance

unlimited 값이 0일 때 CPUCreditBalance 인스턴스에서 소비된 잉여 크레딧의 수 입니다.

획득한 CPU 크레딧에 따라 CPUSurplusCreditBalance 값이 청산됩니다. 잉여 크레딧의 수가 인스턴스가 24시간 동안 획득할 수 있는 최대 크레딧 수를 초과한 경우 최대 값 이상으로 소비된 잉여 크레딧은 추가 요금으로 부과됩니다.

단위: 크레딧 (vCPU-분)

CPUSurplusCreditsCharged

획득한 CPU 크레딧으로 청산되지 않는 소비 잉여 크레딧의 수로, 추가 요금으로 부과됩니다.

소비된 잉여 크레딧은 다음이 발생할 때 요금이 부과됩니다.

  • 소비한 잉여 크레딧이 인스턴스가 24시간 동안 획득할 수 있는 최대 크레딧 수를 초과하는 경우. 해당 시간이 끝날 때 최대 값 이상으로 소비한 잉여 크레딧에 요금이 부과됩니다.

  • 인스턴스가 중지 또는 종료된 경우.

  • 인스턴스가 unlimited에서 standard로 전환됩니다.

단위: 크레딧 (vCPU-분)

CPU 크레딧 사용량 계산

인스턴스의 CPU 크레딧 사용량은 앞 표에 설명되어 있는 인스턴스 CloudWatch 측정치를 사용해 계산됩니다.

Amazon EC2는 5분마다 CloudWatch에 지표를 전송합니다. 어떤 시점에서든 지표의 이전 값을 참조하여 5분 전에 전송된 지표의 이전 값을 알 수 있습니다.

스탠다드 인스턴스에 대한 CPU 크레딧 사용량 계산

  • CPU 사용률이 기준 미만이고 소비된 크레딧이 5분 전에 획득한 크레딧보다 적을 때 CPU 크레딧 밸런스가 증가합니다.

  • CPU 사용률이 기준 이상이고 소비된 크레딧이 5분 전에 획득한 크레딧보다 많을 때 CPU 크레딧 밸런스가 감소합니다.

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

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

인스턴스 크기에 따라 인스턴스가 시간당 획득할 수 있는 크레딧 수와 크레딧 밸런스에 누적할 수 있는 획득 크레딧의 수가 결정됩니다. 시간당 획득 크레딧 수, 각 인스턴스 크기에 대한 크레딧 밸런스 한도에 대한 자세한 내용은 크레딧 표를 참조하세요.

이 예제에서는 t3.nano 인스턴스를 사용합니다. 인스턴스의 CPUCreditBalance 값을 계산하려면 앞의 수식을 사용하여 다음과 같이 합니다.

  • CPUCreditBalance – 계산하려는 현재 크레딧 밸런스입니다.

  • prior CPUCreditBalance – 5분 전의 크레딧 밸런스입니다. 이 예제에서는 인스턴스가 2개의 크레딧을 획득했습니다.

  • Credits earned per hourt3.nano 인스턴스는 시간당 6개의 크레딧을 획득합니다.

  • 5/60 – CloudWatch 지표가 게시되는 5분 간격을 나타냅니다. 시간당 획득한 크레딧에 5/60(5분)을 곱해 인스턴스가 이전 5분 동안 획득한 크레딧 수를 계산합니다. t3.nano 인스턴스는 5분마다 0.5개 크레딧을 획득합니다.

  • CPUCreditUsage – 이전 5분 동안 소비된 인스턴스의 크레딧 수입니다. 이 예제에서는 인스턴스가 이전 5분 동안 크레딧 1개를 소비했습니다.

이러한 값을 사용하여 CPUCreditBalance 값을 계산할 수 있습니다.

CPUCreditBalance = 2 + [0.5 - 1] = 1.5

무제한 인스턴스에 대한 CPU 크레딧 사용량 계산

버스트 가능한 성능 인스턴스가 기준 성능 이상으로 버스트해야 할 때는 잉여 크레딧을 소비하기 전에 항상 누적 크레딧을 소비합니다. 획득한 CPU 크레딧 밸런스가 감소하면 필요한 시간만큼 잉여 크레딧을 소비하여 CPU를 버스트할 수 있습니다. 인스턴스의 CPU 사용률이 기준 미만으로 떨어지면 인스턴스가 크레딧을 획득하기 전에 잉여 크레딧이 항상 먼저 청산됩니다.

5분 간격으로 발생하는 활동을 반영하기 위해 다음 수식에서 Adjusted balance라는 용어를 사용하고 있습니다. CPUCreditBalanceCPUSurplusCreditBalance CloudWatch 지표의 값에 도달하기 위해 이 값을 사용합니다.

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

0의 값이 Adjusted balance이면 인스턴스는 버스트에 획득한 모든 크레딧을 소비했으며 잉여 크레딧은 소비되지 않았다는 뜻입니다. 그 결과 CPUCreditBalanceCPUSurplusCreditBalance가 모두 0으로 설정됩니다.

Adjusted balance 값이 양수이면 인스턴스가 크레딧을 획득했고 이전의 잉여 크레딧(존재할 경우)이 청산되었다는 뜻입니다. 그 결과 Adjusted balance 값이 CPUCreditBalance로 지정되고 CPUSurplusCreditBalance0으로 설정됩니다. 누적할 수 있는 최대 크레딧 수는 인스턴스 크기에 따라 결정됩니다.

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

Adjusted balance 값이 음수면 인스턴스가 누적한 모든 크레딧을 소비했고 버스트에 잉여 크레딧이 소비되었다는 뜻입니다. 그 결과 Adjusted balance 값이 CPUSurplusCreditBalance로 지정되고 CPUCreditBalance0으로 설정됩니다. 즉 누적할 수 있는 최대 크레딧 수는 인스턴스 크기에 따라 결정됩니다.

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

소비된 잉여 크레딧이 인스턴스가 누적할 수 있는 최대 크레딧을 초과하면 이전 수식에서와 같이 잉여 크레딧 밸런스가 최대 값으로 설정됩니다. 나머지 잉여 크레딧은 CPUSurplusCreditsCharged 측정치로 표현되어 요금이 부과됩니다.

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

마지막으로 인스턴스가 종료하면 CPUSurplusCreditBalance로 추적된 모든 잉여 크레딧에 요금이 부과됩니다. 인스턴스가 unlimited에서 standard로 전환되면 나머지 모든 CPUSurplusCreditBalance에도 요금이 부과됩니다.