How to collect data for AWS autoscaling groups?

My team has the task to establish the correct values for the auto scaling groups on our aws environment. Those values you establish on the alarms on cloudwatch, that when they are triggered the number of instances grows or decreases.

It has been suggested to us to use JMeter to stress (with lots of requests) the servers and collect metrics. But that method has not been very effective. Is there any other method we can use to obtain right values? Or how would you configure and use JMeter to this situation?


Your "has not been very effective" is "not too informative"

Basically you need to conduct a stress test connected with the scalability test, to wit:

  1. Start with 1 virtual user

  2. Gradually increase the load

  3. Inspect the correlation of the following metrics:

    • Concurrency
    • Response time
    • Transactions per second
  4. First start your test without auto-scaling to get the baseline results

    • for the first stage of test you will see response times being all the same and transactions per second growing by the same factor as the load increases (like N users = N transactions per second, Nx2 users = Nx2 transactions per second, etc)

    • at the certain stage response times will start increasing hence transactions per second will be going down. this is called saturation point

    • record the numbers for later comparision

  5. Repeat step 4 with first auto-scaling setting applied and see how many users the system can support now

  6. Repeat step 4 with second auto-scaling setting applied and see how many users the system can support now

  7. etc.