What does this AWS Solutions Implementation do?

Amazon Web Services (AWS) offers customers a scalable, distributed, and serverless architecture to deliver a load testing tool for web application performance testing. The Distributed Load Testing on AWS solution automatically launches and configures containers running on AWS Fargate to help you easily create and simulate thousands of connected users generating a select number of transactions per second without having to provision servers. This solution delivers application performance monitoring, which will help you understand how your application will perform at scale and at expected load, identifying bottlenecks before you release your application.

AWS Solutions Implementation overview

The diagram below presents the architecture you can automatically deploy using the solution's implementation guide and accompanying AWS CloudFormation template.

Distributed Load Testing on AWS | Architecture Diagram
 Click to enlarge

Distributed Load Testing on AWS architecture

The AWS CloudFormation template deploys a distributed load tester API, which leverages Amazon API Gateway to invoke the solution's microservices (AWS Lambda functions). The microservices provide the business logic to manage test data and run the tests. These microservices interact with Amazon Simple Storage Service (Amazon S3), Amazon DynamoDB, and AWS Step Functions to run test scenarios and provide storage for the test scenario details and results.

The solution also deploys an Amazon Virtual Private Cloud (Amazon VPC) network topology that contains the solution's Amazon Elastic Container Service (Amazon ECS) containers running on AWS Fargate. The containers contain a Taurus load testing Docker image which is used to generate load for testing your application’s performance. Taurus is an open-source test automation framework. AWS CodePipeline, AWS CodeBuild, and Amazon S3 help manage the image.

The solution creates a web console powered by AWS Amplify and deploys it into an Amazon S3 bucket configured for static web hosting. Amazon CloudFront is used to provide secure, public access to the solution’s website bucket contents. During initial configuration, the solution also creates a default administrator role and sends an access invite to a customer-specified user email address. The solution uses Amazon Cognito user pool to manage user access to the console and the load tester API.

After you deploy the solution, you can use the web console to create a test scenario that consists of a series of tasks. Lambda uses the test scenario to start running the Fargate tasks. When each task is complete, the results are stored in Amazon S3 and the output is logged in Amazon CloudWatch. Once all tasks are complete, the results are stored in DynamoDB.

Distributed Load Testing on AWS

Version 1.1.0
Last updated: 09/2020
Author: AWS

Estimated deployment time: 15 min

Use the button below to subscribe to solution updates.

Note: To subscribe to RSS updates, you must have an RSS plug-in enabled for the browser you are using.  

Did this Solutions Implementation help you?
Provide feedback 

Features

Easy to Deploy

This solution helps make it easier to simplify testing and reduce time to release by automating functional tests for your applications.

Visualization

Distributed Load Testing on AWS includes an Amazon CloudWatch dashboard that displays the output of all tasks that are part of your automated test in near real time.
Solving with Solutions: Distributed Load Testing
Build icon
Deploy a Solution yourself

Browse our library of AWS Solutions Implementations to get answers to common architectural problems.

Learn more 
Find an APN partner
Find an APN Partner

Find AWS certified consulting and technology partners to help you get started.

Learn more 
Explore icon
Explore Solutions Consulting Offers

Browse our portfolio of Consulting Offers to get AWS-vetted help with solution deployment.

Learn more