February 17, 2021

Distributed Load Testing on AWS

Following on from the first installment of our experiment to try and find which processor in the EC2 family of instances has the best price/performance we need to look out how we’ll determine performance.

Cloudformation

AWS fortunately has a really cool blueprint for load testing.

It is really easy to deploy via CloudFormation, and you really only need to supply two parameters:

  • Administrator Name
  • Administrator Email

You can leave all the other parameters with theit default settings.

Load Testing Cloudformation Parameters

Create Test

Once the Cloudformation has completed building the load testing application, you will get an email that looks like the following:

Email

You can now click on the link in the email, login with the username and password and you can setup a new test.

JMeter scripts or simple GET (Simple Test) requests are possible options to create a new test. You are also able to configure:

  • Task Count
  • Concurrency
  • Ramp Up
  • Hold
  • Payload
  • Headers

which makes the Simple Test reasonably powerful.

To use JMeter scripts you need to create a script using something like the JMeter proxy setup.

For our use case, we will just use the Simple Test.

Running

Once you have created a test, you can start it, update it or look at the details of previous tests.

Load Test Details

You can view the test and logs as it is running in ECS.

ECS Task Logs ECS Task

The metrics are sent to CloudWatch and you can view the metrics updated as the runs.

CloudWatch Metrics

Finally the results are displayed as the test runs and a final set summarising the results over the run are presented with definitions of the result metrics:

Test Results

Result Definitions

Summary

The AWS Distributed Load Testing Blueprint is a really easy way to get up and running. It costs practically nothing to have deployed, and a few cents to dollars to run tests (Depending on how you use it, and your use case. I take no responsibility for your AWS costs).

© Greg Cockburn

Powered by Hugo & Kiss.