Question

We have an application which is deployed on AWS ELB.

Currently, auto-scaling is configured to use the aggregate CPU across the ELB instances to automatically add / remove ELB instances.

However, it would be more accurate if we could interrogate the queue lengths on the RabbitMQ instance which is accessed by the ELB instances. Then scale up / down when the queue lengths exceed a threshold.

Is there any way of configuring ELBs to introduce new parameters which could be derived from, for arguments sake, a web service call, which could then be used to control auto-scaling?

Or, do we have to just bite the bullet, and develop our own auto-scaler?

Was it helpful?

Solution

Auto Scaling is based on Amazon CloudWatch metrics. CloudWatch initially provided predefined metrics only, but meanwhile custom metrics can be managed as well.

Consequently you can implement your scenario by publishing a custom CloudWatch metric tracking the queue lengths of the RabbitMQ instance in question and scale up / down according to an arbitrary scaling policy based on a respective CloudWatch Alarm monitoring this metric.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top