The Elastigroup service now allows you to scale resources more efficiently, with support of Minimum and Maximum capacity changes during scaling activity.
Up until now, the traditional scaling policies supported ‘Adjustment’ as the scaling action, meaning adding/removing specific amount of machines when a defined metric crossed specific threshold value.
For example – If the CPU metric has hit 70%, then add 3 more servers)
While there are metrics that adding X machines will affect on their values immediately(CPU,Memory, ELB Latency), there are some use cases where it acts differently.
For example: SQS Queue size, Map Reduce waiting mappers, or even a Elastic Load Balancer Requests Count metric.
For those metrics, Adding a fixed amount of machines won’t affect the threshold or alarm (Queue size, Requests per second), so there’s no point of adding and adding more machines as my queue grows. There is a better way to handle it.
For these kind of workloads you just want a minimum amount of servers to be available to handle it.
That’s exactly why we released another scaling action : ‘Min/MaxTargetCapacity’ where you can define for each scaling activity the minimum/maximum servers you want to have.
So for example, you can define few scaling steps to handle your queue:
- If the queue size > 100K then have at least 10 servers
- If the queue size > 500K then have at least 15 servers
- If the queue size > 1M then have at least 25 servers.
And the other why around:
If the queue size < 1M you want no more than 25 servers.
The new feature is now available on both ElastiGroup and EmrClusterScaler and can be used right away!
The Spotinst Team.