성능테스트 발표자료

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

 성능 순간 확장 가능 인스턴스는 기본 수준의 CPU 사용률을 제공하면서 기본 수준 이상으로 CPU 사용률을 버스트하는 기능을 제공합니다.

CPU 사용률이 낮거나 중간 정도인 이러한 워크로드는 CPU 사이클의 낭비를 초래하고 결과적으로 사용한 것보다 더 많은 비용을 지불하게 됩니다. 이를 극복하기 위해 저비용 버스트 가능 범용 인스턴스인 T 인스턴스를 활용합니다.EC2 버스트 가능 인스턴스는 T4g, T3a 및 T3 인스턴스 유형과 이전 세대 T2 인스턴스 유형으로 구성되는데, 

성능을 제공하는 방식이 조금 특별하다.

일반적으로 CPU 성능이 정해져있어서 24시간 같은 성능을 제공할 것이라 생각하지만,

T계열 인스턴스들은 기본 성능을 제공하다가, 유저들이 몰리거나 하는 등 기준 이상의 성능이 필요할 경우 버스트 기능이 동작합니다. 

T타입의 인스턴스는 왜이렇게 저렴할까요? 바로 기본 성능 자체가 제한되어 있기 때문입니다. CPU를 맘껏 쓸 수가 없어요.

인스턴스 사양마다 제공되는 크레딧이 다르고 그 크레딧이 남아있는 동안 버스트 기능을 사용할 수 있습니다.

기준 이하 성능 사용을 지속할 경우 크레딧이 쌓이고(한계치 있음), 그 이상의 성능을 사용할 경우 크레딧을 소모시킨다.

크레딧이 다 소모되면, 기준 이상의 성능을 발휘하지 못하고 성능은 급격히 떨어지게 됩니다.

이러한 특성은 평소에는 CPU사용률 저조하다가 특정 시간대에 높은 사용률을 사용해야 할 경우 매우 효율적입니다.

T계열 인스턴스 사용시 크레딧의 상태는 CloudWatch에서 확인할 수 있다.

추가로 무제한 모드라는 것이 존재하는데, 이는 크레딧을 모두 소모하고 난 후에도 기준 이상의 성능을 사용할 때 비용을 추가하여 기준 이상의 성능을 사용할 수 있는 모드이다.

t2 인스턴스는 무제한 모드가 기본으로 꺼져있지만, t3 인스턴스의 경우 무제한 모드가 기본으로 옵션이 켜져있다.

그 동안 획득해 놓은 balance를 모두 소진하고 나면 성능은 급격히 떨어져서 CPU 사용량은 baseline(5%) 이상 올라가지 못하게 됩니다. -> 이는 T타입 인스턴스의 가장 큰 특징

T 타입의 인스턴스는 쉽게 이야기하면 마치 인스턴스의 scale-up으로 표현할 수 있습니다.

인스턴스의 스펙을 (수직) 확장하기 위해서는 머신을 중지(STOP) 해야 하는 게 일반적인데요, T 타입은 baseline을 정해두고 CPU 사용률을 제한하다가 일시적으로 스파이크 치는 트래픽을 대응하기 위해 순간적으로 CPU 사용률을 높일 수 있습니다.

마치 scale-up 하는 것처럼요. 하지만 스케일업도 위에서 살펴본 것처럼 획득한 크레딧 내에서 일시적으로 가능한 수준입니다.

평소 트래픽이 많고 CPU 부하가 일정 수준 이상으로 유지되는 서비스라면 T 타입 인스턴스는 적합하지 않죠.

주기적인 배치 작업이나 특정 시점에만 트래픽이 몰리는 서비스, 혹은 밤에는 사용률이 거의 없다가 낮이 돼야 사용률이 올라가는 그런 서비스에 아주 적합하겠습니다. 

볼륨


gp2 볼륨이 연결된 인스턴스를 처음 시작하면 최대 30분 동안 3,000 IOPS/초 동안 사용할 수 있는 초기 버스트 크레딧이 제공됩니다.

처음 30분 후 볼륨은 다음과 같이 크레딧을 적립합니다(AWS 설명서에서 직접 인용)

범용(SSD) 구현에는 다음과 같이 작동하는 토큰 버킷 모델이 있습니다.

- 각 토큰은 한 번의 읽기 또는 한 번의 쓰기에 대해 지불하는 "I/O 크레딧"을 나타냅니다.

- 버킷은 각 범용(SSD) 볼륨과 연결되며 최대 540만 개의 토큰을 저장할 수 있습니다.

- 토큰은 버킷 용량까지 구성된 초당 3GB의 속도로 누적됩니다.
- 토큰은 볼륨당 최대 3000초까지 사용할 수 있습니다.
- 볼륨의 기본 성능은 토큰이 누적되는 속도(초당 3GB)와 동일합니다.

이와 더불어 gp2 볼륨은 Gb당 3 IOPS, 최대 1Tb(3000 IOPS)의 기본 성능을 제공합니다. 

1Tb보다 큰 볼륨은 이미 3,000 IOPS의 기준값을 제공하기 때문에 더 이상 크레딧 시스템에서 작동하지 않습니다. 

Gp2 볼륨은 볼륨 크기에 관계없이 10,000 IOPS의 상한선을 갖습니다.

볼륨의 버스트 밸런스는 기본 IOPS 양보다 많은 양을 사용하는 경우에만 사용되므로 볼륨 크기를 늘려 기본 성능을 높일 수 있습니다.

 볼륨 크기는 볼륨이 버스트 크레딧을 누적하는 속도에도 영향을 미칩니다.  

필요한 버스트를 수용할 수 있을 만큼 빠르게 크레딧이 누적되도록 볼륨 크기를 조정할 수 있으며, 필요한 버스트 성능을 항상 기준에서 처리할 수 있을 만큼 충분히 커지지 않습니다.

이러한 볼륨 유형에서 가능한 최대 IOPS 성능은 크기가 3,334GB인 드라이브에서 10,000 IOPS입니다. 

 또한 1TB에서 볼륨의 기본 성능은 3,000 IOPS이며 더 이상 버스트 크레딧을 사용하지 않는다는 점

I/O 집약적인 워크로드의 경우 볼륨 크기에 얽매이지 않는 IOPS의 최대값이 높은 프로비저닝 IOPS(io1) 볼륨을 대신 사용하는 것이 좋아요

*IOPS(Input/Output Operations Per Second, IOPS)는 HDD, SDD 또는 NVMe등 저장장치의 속도를 나타내는데 사용도는 측정 단위입니다.

MB/s, MiB/s 또는 GB/s, GiB/s 등과 같이 초당 전송량과 함께 많이 최근 들어 많이 사용되고 있는 단위

https://progdev.tistory.com/37 

https://jybaek.tistory.com/916

https://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/ebs-volume-types.htmlhttps://www.quora.com/How-do-Amazon-EC2-EBS-burst-credits-work

 

JUNE .

20'S LIFE IN SYDNEY and BUSAN

    이미지 맵

    DevOps Bootcamp/Assignments 다른 글

    이전 글

    다음 글