[AWS] EC2, show me the credit!

xgro·2022년 8월 19일
0

AWS

목록 보기
9/18

[C161] AWS에서는 인스턴스나 볼륨에 대해서 버스트 기능을 제공합니다. 이는 평소에 사용하지 않을 때의 성능을 모아두고, 부하가 발생할 경우 일시적으로 성능을 올리는 기능입니다. 이것이 어떤 메커니즘으로 작동하는지 연구하세요.

정리

온라인 게임을 하다보면 아래와 같이 ‘마나’를 이용하여 스킬을 사용하는 구조를 많이 접할 수 있다.

평상시보다 더 큰 능력을 사용하기 위해 이러한 마나의 개념을 활용하여 어려움을 헤쳐나갈 수 있게 도와준다.

AWS 에서는 CPU 사용률이 낮거나 중간 정도인 이러한 워크로드에 대해 저비용 버스트 가능 범용 인스턴스인 T 인스턴스를 활용할 수 있다.

T 인스턴스 패밀리는 기준 CPU 성능을 제공하며, 필요에 따라 언제든지 기준 이상으로 버스트할 수 있다.

기준 CPU는 대규모 마이크로 서비스, 웹 서버, 중소 규모의 데이터베이스, 데이터 로깅, 코드 리포지토리, 가상 데스크톱, 개발 및 테스트 환경, 비즈니스 크리티컬 애플리케이션을 비롯한 대부분의 범용 워크로드의 요구 사항을 충족하도록 정의되었다.

T 인스턴스는 컴퓨팅, 메모리 및 네트워크 리소스를 균형있게 제공하며 CPU 사용량이 낮거나 중간 정도인 광범위한 범용 애플리케이션을 실행할 수 있는 가장 비용 효율적인 솔루션을 제공한다.

M 인스턴스에 비해 최대 15%의 비용을 절감할 수 있으며, 더 작고 경제적인 인스턴스 크기 덕분에 비용을 추가로 절감할 수 있으며, vCPU 2개와 0.5GiB의 메모리를 제공한다.

나노, 마이크로, 소형, 중형 등의 작은 T 인스턴스 크기는 적은 양의 메모리가 필요하고 높은 CPU 사용량이 요구되지 않는 워크로드에 적합하다.

실행 중인 인스턴스에서 획득한 크레딧은 만료되지 않습니다. 하지만 인스턴스가 누적할 수 있는 획득 크레딧 수에는 한도가 있습니다. 한도는 CPU 크레딧 밸런스 한도에 따라 결정됩니다. 한도에 도달한 후에 새로 획득하는 크레딧은 다음 이미지와 같이 모두 삭제됩니다. 최대 버킷은 CPU 크레딧 밸런스 한도를 나타내고, 스필오버는 한도를 초과하여 새로 획득한 크레딧을 나타냅니다.

버스트 가능 성능 인스턴스에 대한 주요 개념 및 정의

기존 Amazon EC2 인스턴스 유형은 고정된 CPU 리소스를 제공하는 반면, 성능 순간 확장 가능 인스턴스는 기본 수준의 CPU 사용률을 제공하면서 기본 수준 이상으로 CPU 사용률을 버스트하는 기능을 제공합니다.

이렇게 하면 기준 CPU와 추가 버스트 CPU 사용량에 대해서만 비용을 지불하면 되므로 컴퓨팅 비용이 절감됩니다.

기준 사용률과 버스트 기능은 CPU 크레딧에 의해 좌우됩니다.

성능 순간 확장 가능 인스턴스는 CPU 사용량에 대해 크레딧을 사용하는 유일한 인스턴스 유형입니다.

각 버스트 가능 성능 인스턴스는 CPU 기준 미만으로 유지되면 지속적으로 크레딧을 얻고, 기준선 이상으로 버스트될 때 크레딧을 지속적으로 소비합니다.

적립되거나 소비되는 크레딧 금액은 인스턴스의 CPU 사용률에 따라 달라집니다.

  • CPU 사용률이 기준 미만인 경우 적립되는 크레딧은 소비되는 크레딧보다 많습니다.
  • CPU 사용률이 기준과 같을 경우 적립되는 크레딧은 소비되는 크레딧과 같습니다.
  • CPU 사용률이 기준을 초과할 경우 소비되는 크레딧이 적립되는 크레딧보다 많습니다.

적립되는 크레딧이 소비되는 크레딧보다 많을 경우의 차액을 획득한 크레딧이라고 하며, 이를 나중에 기준 CPU 사용률 이상으로 버스트하는 데 사용할 수 있습니다.

마찬가지로, 소비되는 크레딧이 적립되는 크레딧보다 많을 경우 인스턴스 동작은 크레딧 구성 모드(표준 모드 또는 무제한 모드)에 따라 달라집니다.

표준 모드에서 소비되는 크레딧이 적립되는 크레딧보다 많을 경우 인스턴스는 획득한 크레딧을 사용하여 기준 CPU 사용률을 초과하여 버스트합니다.

획득한 크레딧이 남아 있지 않으면 인스턴스가 기준 CPU 사용률로 점진적으로 저하되고 크레딧이 더 많이 적립될 때까지 기준 이상으로 버스트할 수 없습니다.

무제한 모드에서는 인스턴스가 기준 CPU 사용률 이상으로 버스트하면 인스턴스는 먼저 획득한 크레딧을 사용하여 버스트합니다.

획득한 크레딧이 남아 있지 않으면 인스턴스는 버스트에 잉여 크레딧을 사용합니다.

CPU 사용률이 기준 미만으로 떨어지면 획득한 CPU 크레딧을 사용하여 이전에 소비한 잉여 크레딧을 청산할 수 있습니다.

CPU 크레딧을 획득하고 잉여 크레딧을 청산하는 기능을 통해 Amazon EC2은 24시간 동안 인스턴스의 CPU 사용률을 평균 수준으로 유지할 수 있습니다.

24시간 동안의 평균 CPU 사용량이 기준을 초과하는 경우 인스턴스에 추가 사용량에 대해 vCPU 시간당 고정 추가 요금이 청구됩니다.

핵심 개념 및 정의

다음 주요 개념 및 정의는 버스트 가능 성능 인스턴스에 적용할 수 있습니다.

CPU 사용률

CPU 사용률은 인스턴스에서 현재 사용 중인 할당된 EC2 컴퓨팅 유닛의 비율(%)입니다.

이 지표는 인스턴스에서 사용되고 있는 할당된 CPU 사이클의 비율을 측정합니다.

CPU 사용률 CloudWatch 지표는 코어당 CPU 사용량이 아니라 인스턴스당 CPU 사용량을 나타냅니다.

인스턴스의 기준 CPU 사양도 인스턴스당 CPU 사용량을 기준으로 합니다.

AWS Management Console 또는 AWS CLI를 사용하여 CPU 사용률을 측정하려면 특정 인스턴스에 대한 통계 가져오기 섹션을 참조하세요.

CPU 크레딧

vCPU 시간의 단위입니다.

예:
CPU 크레딧 1개 = vCPU 1개 100% 사용률 1분
CPU 크레딧 1개 = vCPU 1개 50% 사용률 2분
CPU 크레딧 1개 = vCPU 2개 25% 사용률 2분

기준 사용률

기준 사용률은 획득하는 CPU 크레딧 수가 사용 중인 CPU 크레딧 수와 일치할 때 순 크레딧 밸런스 0에서 CPU를 사용할 수 있는 수준입니다. 기준 사용률을 기준이라고도 합니다.

기준 사용률은 vCPU 사용률의 백분율로 표시되며 기준 사용률(%) = (획득한 크레딧 수/vCPU 수)/60분으로 계산됩니다.

획득 크레딧

인스턴스가 실행 중일 때 지속적으로 적립되는 크레딧입니다.

⁉️ 시간당 적립되는 크레딧 수 = 기준 사용률(%) * vCPU 수 * 60분

예:
vCPU가 2개인 t3.nano는 기본 사용률이 5%로, 시간당 6 크레딧을 획득하며, 다음과 같이 계산됩니다.
vCPU 2개 5% 기준 60분 = 시간당 6 크레딧

소비 또는 사용되는 크레딧

인스턴스가 실행 중일 때 지속적으로 소비되는 크레딧입니다.

분당 소비되는 CPU 크레딧 = vCPU 수 CPU 사용률 1분

획득한 크레딧

인스턴스가 기준 사용률에 필요한 것보다 적은 크레딧을 사용하는 경우 사용되지 않은 CPU 크레딧입니다.

⁉️ 즉, 획득한 크레딧 = (적립되는 크레딧 - 기준 미만으로 사용되는 크레딧)입니다.

예:
t3.nano가 한 시간 동안 5% 기준보다 적은 2% CPU 사용률로 실행될 경우 획득한 크레딧은 다음과 같이 계산됩니다.
획득한 CPU 크레딧 = (시간당 적립되는 크레딧 - 시간당 소비되는 크레딧) = 6 - 2 vCPU 2% CPU 사용률 60분 = 6 - 2.4 = 시간당 획득한 크레딧 3.6입니다.

크레딧 누적 한도

인스턴스 크기에 따라 다르지만 일반적으로 24시간 동안 적립되는 최대 크레딧 수와 같습니다.

예:
t3.nano의 경우 크레딧 누적 한도 = 24 * 6 = 144 크레딧입니다.

시작 크레딧

표준 모드로 구성된 T2 인스턴스에만 적용됩니다. 시작 크레딧은 새 T2 인스턴스에 할당되는 제한된 수의 CPU 크레딧으로, 표준 모드로 시작할 때 기준 이상으로 버스트할 수 있습니다.

잉여 크레딧

획득한 크레딧 잔액이 소진된 후 인스턴스가 소비하는 크레딧입니다. 잉여 크레딧은 버스트 가능 인스턴스가 오랜 기간 동안 고성능을 유지할 수 있도록 고안되었으며 무제한 모드에서만 사용됩니다. 잉여 크레딧 잔액은 인스턴스가 무제한 모드에서 버스트하기 위해 소비한 크레딧 수를 확인하는 데 사용됩니다.

스탠다드 모드

크레딧 구성 모드로, 크레딧 잔액에 적립된 크레딧을 사용하여 인스턴스를 기준 이상으로 버스트할 수 있습니다.

무제한 모드

크레딧 구성 모드로, 필요할 때마다 원하는 기간 동안 높은 CPU 사용률을 유지하여 인스턴스를 기준 이상으로 버스트할 수 있습니다.

24시간 동안 또는 인스턴스 수명(더 짧음) 동안 인스턴스의 평균 CPU 사용률이 기준 이하인 경우에 모든 CPU 사용량 급증에 대해 시간당 CPU 인스턴스 요금이 적용됩니다.

인스턴스 실행에 장기간 높은 CPU 사용률이 필요한 경우, vCPU-시간당 추가 고정 요금으로 인스턴스를 실행할 수 있습니다.

다음 표에는 버스트 가능 인스턴스 유형 간의 주요 크레딧 차이점이 요약되어 있습니다.

CPU 크레딧 적립

각 성능 순간 확장 가능 인스턴스는 인스턴스 크기에 따라 특정 비율의 시간당 CPU 크레딧을 지속적으로 (밀리초 수준의 시간 정밀도로) 획득합니다. 크레딧이 누적되는지 아니면 소비되는지를 결정하는 산정 프로세스도 밀리초 수준의 시간 정밀도로 수행되므로 CPU 크레딧 과소비를 염려할 필요는 없습니다. 즉, 짧은 CPU 버스트는 약간의 CPU 크레딧만을 소비합니다.

성능 순간 확장 가능 인스턴스에서 기본 사용률에 필요한 것보다 더 적은 CPU 리소스를 사용하는 경우(예: 유휴 상태) 사용하지 않은 CPU 크레딧은 CPU 크레딧 밸런스에 누적됩니다. 성능 순간 확장 가능 인스턴스가 기준 사용률 수준 이상으로 버스트해야 할 경우 누적된 크레딧을 소모합니다. 성능 순간 확장 가능 인스턴스가 획득한 크레딧이 많을수록 추가 CPU 사용률이 필요할 때 기준 사용률 수준을 초과하여 버스트할 수 있는 시간이 증가합니다.

다음 표에는 성능 순간 확장 가능 인스턴스 유형, 시간당 CPU 크레딧 획득률, 인스턴스가 획득할 수 있는 최대 CPU 크레딧 수, 인스턴스당 vCPU 수, 전체 코어의 백분율로 나타낸 기준 사용률(단일 vCPU 사용 시) 등이 나와 있습니다.

누적될 수 있는 크레딧은 수는 24시간 동안 획득할 수 있는 크레딧의 수와 동일합니다.

테이블의 기준 사용률(%)은 vCPU당입니다.
CloudWatch에서 CPU 사용률은 vCPU 기준으로 표시됩니다. 예를 들어 기준 수준으로 작동하는 t3.large 인스턴스에 대한 CPU 사용률은 CloudWatch CPU 지표의 30%로 표시됩니다. 기준 사용률을 계산하는 방법에 대한 자세한 내용은 기준 사용률 단원을 참조하십시오.

T2 및 T4g 인스턴스를 제외하고, 각 vCPU는 인텔 제온 코어 또는 AMD EPYC 코어의 스레드입니다.

CPU 크레딧 획득률

시간당 획득하는 CPU 크레딧의 수는 인스턴스 크기에 의해 결정됩니다. 예를 들어 t3.nano는 시간당 6개의 크레딧을 획득하는 반면, t3.small은 시간당 24개의 크레딧을 획득합니다. 이전 표에는 모든 인스턴스에 대한 크레딧 획득률이 나와 있습니다.

CPU 크레딧 누적 한도

실행 중인 인스턴스에서 획득한 크레딧은 만료되지 않습니다. 하지만 인스턴스가 누적할 수 있는 획득 크레딧 수에는 한도가 있습니다. 한도는 CPU 크레딧 밸런스 한도에 따라 결정됩니다. 한도에 도달한 후에 새로 획득하는 크레딧은 다음 이미지와 같이 모두 삭제됩니다. 최대 버킷은 CPU 크레딧 밸런스 한도를 나타내고, 스필오버는 한도를 초과하여 새로 획득한 크레딧을 나타냅니다.

CPU 크레딧 밸런스 한도는 각 인스턴스 크기에 따라 다릅니다. 예를 들어 t3.micro 인스턴스는 CPU 크레딧 밸런스에서 최대 288의 획득한 CPU 크레딧을 누적할 수 있습니다. 이전 표에는 각 인스턴스에서 누적할 수 있는 최대 획득 크레딧 수가 나와 있습니다.

T2 스탠다드 인스턴스에서도 시작 크레딧을 획득합니다. 시작 크레딧은 CPU 크레딧 밸런스 한도에 포함되지 않습니다. T2 인스턴스가 시작 크레딧을 사용하지 않고 획득 크레딧을 누적하면서 24시간 동안 유휴 상태를 유지한 경우 CPU 크레딧 밸런스는 한도 이상으로 표시됩니다. 자세한 내용은 시작 크레딧 섹션을 참조하세요.

T4g, T3a 및 T3 인스턴스에서는 시작 크레딧을 획득하지 않습니다. 이러한 인스턴스는 unlimited로 시작하도록 기본 설정되어 있으므로 시작 크레딧 없이도 시작하자마자 즉시 버스트할 수 있습니다. 전용 호스트에서 시작되는 T3 인스턴스는 기본적으로 standard로 시작되며, de>unlimited 모드에서는 전용 호스트의 T3 인스턴스에 대해 지원하지 않습니다.

획득한 CPU 크레딧의 수명

실행 중인 인스턴스의 CPU 크레딧은 만료 기간이 없습니다.

T2의 경우 CPU 크레딧 밸런스는 인스턴스 중지와 시작 사이의 기간 동안 지속하지 않습니다. T2 인스턴스를 중지하면 인스턴스는 누적된 크레딧을 모두 상실합니다.

T4g, T3a 및 T3의 경우 인스턴스가 중지된 후 CPU 크레딧 밸런스가 7일 동안 지속하다가 7일이 지나면 크레딧이 상실됩니다. 7일 이내에 인스턴스를 시작하면 크레딧이 상실되지 않습니다.

자세한 내용은 CloudWatch 지표 표에서 CPUCreditBalance 항목을 참조하세요.

기준 사용률

기준 사용률은 획득하는 CPU 크레딧 수가 사용 중인 CPU 크레딧 수와 일치할 때 순 크레딧 밸런스 0에서 CPU를 사용할 수 있는 수준입니다. 기준 사용률을 기준이라고도 합니다.

기준 사용률은 vCPU 사용률의 백분율로 표시되며 다음과 같이 계산됩니다.

(number of credits earned/number of vCPUs)/60 minutes = % baseline utilization

예를 들어 vCPU가 2개인 t3.nano 인스턴스는 시간당 6 크레딧을 획득하여 기준 사용률이 5% 로, 다음과 같이 계산됩니다.

(6 credits earned/2 vCPUs)/60 minutes = 5% baseline utilization

vCPU가 4개인 t3.xlarge 인스턴스는 시간당 96 크레딧을 획득하여 기준 사용률이 40%입니다((96/4)/60).

다음 그래프는 평균 CPU 사용률이 기준보다 낮은 t3.large의 예를 보여줍니다.

모범 사례

다음 모범 사례를 따르면 성능 순간 확장 가능 인스턴스의 이점을 최대한 활용할 수 있습니다.

  • 선택한 인스턴스의 크기가 운영 체제 및 애플리케이션의 최소 메모리 요구 사항을 충족하는지 확인합니다. 그래픽 사용자 인터페이스에서 많은 메모리와 CPU 리소스를 사용하는 운영 체제(예: Windows)에서는 대부분의 경우 인스턴스 크기가 t3.micro 이상이어야 합니다. 시간이 지나면서 워크로드의 메모리 및 CPU 요구 사항이 증가함에 따라 유연하게 T 인스턴스를 더 큰 규모의 동일한 인스턴스 유형으로 확장하거나 다른 인스턴스 유형을 선택할 수 있습니다.
  • 계정에 대해 AWS Compute Optimizer를 활성화하고 워크로드에 대한 Compute Optimizer 권장 사항을 검토하십시오. Compute Optimizer는 성능을 향상시키기 위해 인스턴스를 확장해야 하는지 또는 비용을 절감하기 위해 축소해야 하는지 여부를 평가하는 데 도움이 됩니다.
  • 추가적인 필수 사항은 릴리스 정보 단원을 참조하십시오.

참조 레퍼런스

profile
안녕하세요! DevOps 엔지니어 이재찬입니다. 블로그에 대한 피드백은 언제나 환영합니다! 기술, 개발, 운영에 관한 다양한 주제로 함께 나누며, 더 나은 협업과 효율적인 개발 환경을 만드는 과정에 대해 인사이트를 나누고 싶습니다. 함께 여행하는 기분으로, 즐겁게 읽어주시면 감사하겠습니다! 🚀

0개의 댓글