EC2 버스트

문한성·2023년 6월 8일
0

부트캠프

목록 보기
104/123
post-thumbnail

AWS EC2에서 'Burst' 기능은 특정 인스턴스 유형에서 CPU 크레딧을 사용하여 일시적으로 추가 성능을 제공하는 기능입니다.

AWS EC2는 유연하고 확장 가능한 클라우드 컴퓨팅 서비스로, 다양한 용도로 사용되는 가상 서버를 제공합니다. 여기서 ‘확장 가능한 클라우드 컴퓨팅 서비스’ 라고 하는것은 EC2의 설정한 성능을 더 필요로 할 때 동적으로 확장할 수 있다는 뜻이다.

AWS EC2에서 성능을 확장하는 방법은 Elasticty(탄력적인), Burst(돌발적인) 방법으로 아래와 같이 확장하는 방법이 있다.

Elasticty (탄력적인)

Elasticity는 탄력적으로 EC2의 인스턴스를 수평확장하는 것이며 ‘수’를 조절하거나 ‘동작’을 조절하는 방법이 있다.

  • Autoscaling GroupsEC2 인스턴스의 그룹을 정의하고, 정의한 규칙에 따라 인스턴스 수를 자동으로 조정하는 EC2의 서비스입니다. Autoscaling Groups를 사용하면 EC2 인스턴스를 늘리거나 줄이는 규칙을 설정하여 작업 부하에 맞게 인스턴스 수를 조정할 수 있습니다.
  • 스케줄링 기능EC2 인스턴스에 대한 스케줄링 기능을 사용하여 특정 시간대에 인스턴스를 시작하거나 중지할 수 있습니다. 이를 통해 예상되는 작업 부하에 대비하여 인스턴스 수를 미리 조정할 수 있습니다. 예를 들어, 특정 시간에 트래픽이 증가하는 경우 인스턴스를 자동으로 시작하여 대응할 수 있습니다.
  • CloudWatch 알람Amazon CloudWatch를 사용하여 EC2 인스턴스의 지표를 모니터링하고, 지정한 임계값을 초과할 경우 알람을 생성할 수 있습니다. 이를 활용하여 작업 부하에 따라 인스턴스 수를 조정하는 등의 액션을 수행할 수 있습니다. 예를 들어, CPU 사용률이 일정 임계값을 초과하면 인스턴스 수를 늘리는 액션을 수행할 수 있습니다.

Burst(돌발적인)

Burst는 순간적으로 EC2의 CPU 성능을 수직확장을 하는 것이며 CPU 크레딧(CPU Credit)라는 개념을 사용하여 구현됩니다. CPU 크레딧은 작업 부하가 적을 때 인스턴스가 크레딧을 얻고, 크레딧이 충분한 경우 추가적인 CPU 성능을 제공하는 방식입니다.

Intel Turbo Boost 기능을 알고 있다면 비슷한 기능으로 접근하면 이해가 빠르다.
(오버클럭❌)

터보 부스트는 인텔 프로세서에서 사용되는 기술로, 작업 부하에 따라 자동으로 클럭 속도를 증가시켜 성능을 향상시킵니다. 터보 부스트는 인텔 프로세서가 자체적으로 작동하며, 프로세서가 작업 부하에 따라 온도, 전력 소모, 전력 제한 등을 고려하여 클럭 속도를 동적으로 조절합니다. 터보 부스트는 주로 단일 스레드 작업에서 클럭 속도를 높여 성능을 향상시키는 기능입니다. 터보 부스트는 사용자가 직접 설정할 수 있는 것이 아니며, 프로세서의 내부 기능으로 자동으로 작동합니다.

EC2를 사용할때 평균적으로 사용량이 많지 않거나 중간정도일때가 대부분이다. 이것은 사용하는것보다 더 많은 비용을 지불하게 될수 있으므로 범용 인스턴스유형인 T 시리즈(T2, T3, T3a, T4g)의 인스턴스 유형을 사용하면 낭비를 최대한 줄일 수 있다.

Burst를 이해하기 전에 Credit의 개념을 이해해야한다.

  • CPU Credit기준 CPU 사용률 이상으로 버스트 하는 데 사용할 수 있는 기회 비용CPU credit 1개 = [vCPU 개수] * [CPU 사용률] * [사용시간]e.g : t3.nano 기준(기본 사용률 : 5%)으로 vCPU 1개당 0% 사용률로 1시간을 유지하면 6credit을 누적할 수 있다.
  • Surplus credits (잉여 크레딧)획득한 credit을 다 소진된 후 빌려서 쓰는 credit
  • 기준 사용률획득하는 CPU 크레딧 수가 사용 중인 CPU 크레딧 수와 일치할 때 순 크레딧 밸런스 0에서 CPU를 사용할 수 있는 수준크레딧은 기준사용률 이하의 사용률일 때만 기회비용을 누적 시킬 수 있습니다.

인스턴스 유형별 기본 크레딧 사양

Unliminited Mode(무제한 모드)

  • 크레딧 0에서 시작
  • 무제한 모드에서는 CPU 크레딧이 충전 및 소모되는 동작은 동일하지만, 잉여 크레딧은 소비되지 않습니다.
  • 잉여 크레딧은 쌓이고 사용되지 않으며, 인스턴스의 CPU 성능이 기본 크레딧 수준보다 높게 유지됩니다.
  • 무제한 모드를 사용하면 인스턴스의 CPU 성능이 높은 수준으로 유지되지만, 추가 요금이 발생할 수 있습니다.

Standard Mode(표준 모드)

  • 시작시 기본 크레딧 개수가 존재
  • 스탠다드 모드에서는 CPU 크레딧이 충전 및 소모되는 동작은 동일합니다.
  • 잉여 크레딧이 존재하는 동안에만 인스턴스의 CPU 성능이 기본 크레딧 수준보다 높게 유지됩니다.
  • 잉여 크레딧이 모두 소진되면 인스턴스의 CPU 성능이 기본 수준으로 돌아갑니다.(이때 기본 수준으로 돌아가서 기회 비용을 누적 시킨다)
  • 스탠다드 모드는 크레딧을 소모하지 않으므로 추가 요금은 발생하지 않습니다.

만약 EC2를 중지한다면?

현재 사용 가능한 CPU 크레딧이 유지됩니다. 중지된 인스턴스의 경우 크레딧이 더 이상 소모되지 않으며, 크레딧은 중지된 동안에도 유지됩니다.중지된 인스턴스를 다시 시작하면, 해당 인스턴스의 시작 크레딧이 재충전되며, 크레딧이 다시 사용 가능해집니다. 중지된 동안 크레딧이 누적되거나 소진되지는 않습니다.따라서, EC2 인스턴스를 중지하는 순간에는 현재 사용 가능한 크레딧이 유지되며, 중지된 동안 크레딧은 소모되지 않습니다. 다시 시작하면 크레딧이 재충전되어 사용 가능해집니다.

profile
기록하고 공유하려고 노력하는 DevOps 엔지니어

0개의 댓글