aws/amazon-ec2-instance-selector

Ability to filter burstable instances by baseline load

faridnsh opened this issue · 2 comments

We are making our own instance right-sizing/recommendation tool and it would be nice if we could filter burstable instances by a minimum percentage of baseline utilization.

This is interesting, thanks for opening this issue!

Are you thinking of an interface like this?

$ ec2-instance-selector --burst-baseline-utilization=20% 
t2.nano
t2.micro
t2.small
t3.nano
t3.micro
t3.small
t3a.nano
t3a.micro
t3a.small

I think the following are some open questions:

  1. Would this baseline utilization be input as per-vcpu or shared across all vcpus for an instance type?
  2. How would "unlimited" credits be used or would they not be considered (t3's have unlimited enabled by default)?

Credits would be an interesting attribute to track (that is not present in the DescribeInstanceTypes API) to show as well and could potentially be used in calculations related to baseline utilization.

Are you thinking of an interface like this?

Hi, Yes actually. Potentially it can have min or max instead.

Would this baseline utilization be input as per-vcpu or shared across all vcpus for an instance type?

Best would be to follow go per-vcpu as per this page: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/burstable-credits-baseline-concepts.html

How would "unlimited" credits be used or would they not be considered (t3's have unlimited enabled by default)?

Since it's a setting and can be turned off and on, it wouldn't matter.

Although I gave it more thought and realized that it would be more useful if the number of CPU credits would part of the output, then we can do our own calculations to find out which instance would be cheapest with their average utilisation and CPU credits.