$git clone https://github.com/aws-solutions/distributed-load-testing-on-awsDistributed Load Testing on AWS helps you automate performance testing of your software applications at scale to identify bottlenecks before you release your application. This solution simulates thousands of connected users generating HTTP requests at a sustained rate without the
| 1 | # Distributed Load Testing on AWS |
| 2 | |
| 3 | Distributed Load Testing on AWS helps you automate performance testing of your software applications at scale to identify bottlenecks before you release your application. This solution simulates thousands of connected users generating HTTP requests at a sustained rate without the need to provision servers. |
| 4 | |
| 5 | - Deploy Amazon ECS on AWS Fargate containers that run independently to test the load capacity of your application. |
| 6 | - Simulate tens of thousands of concurrent users across multiple AWS Regions generating requests at a continuous pace. |
| 7 | - Customize your application tests using [JMeter](https://jmeter.apache.org/), [K6](https://k6.io/), [Locust](https://locust.io/) test scripts, or simple HTTP endpoint configuration. |
| 8 | - Schedule load tests to run immediately, at a future date and time, or on a recurring schedule. |
| 9 | - Run multiple load tests concurrently across different scenarios and regions. |
| 10 | |
| 11 | The intended audience for using this solution's features and capabilities in their environment includes IT infrastructure architects, administrators, and DevOps professionals who have practical experience architecting in the AWS Cloud. As a result, developers can understand the behavior of their applications at scale and at load to identify any bottleneck problems before they deploy to Production. [Launch in the AWS Console](https://console.aws.amazon.com/cloudformation/home?region=us-east-1#/stacks/new?&templateURL=https://solutions-reference.s3.amazonaws.com/distributed-load-testing-on-aws/latest/distributed-load-testing-on-aws.template&redirectId=GitHub) |
| 12 | |
| 13 | ## On this Page |
| 14 | |
| 15 | - [Architecture Overview](#architecture-overview) |
| 16 | - [Deployment](#deployment) |
| 17 | - [Source Code](#source-code) |
| 18 | - [Local Development](#local-development) |
| 19 | - [Testing](#testing) |
| 20 | - [Creating a custom build](#creating-a-custom-build) |
| 21 | |
| 22 | ## Architecture Overview |
| 23 | |
| 24 |  |
| 25 | |
| 26 | Deploying this solution with the default parameters deploys the following components in your AWS account. |
| 27 | |
| 28 | > **Note**: AWS CloudFormation resources are created from AWS Cloud Development Kit (AWS CDK) constructs. |
| 29 | |
| 30 | The high-level process flow for the solution components deployed with the AWS CloudFormation template is as follows: |
| 31 | |
| 32 | 1. A distributed load tester API leverages [Amazon API Gateway](https://aws.amazon.com/api-gateway) to invoke the solution's microservices ([AWS Lambda](https://aws.amazon.com/lambda) functions). |
| 33 | |
| 34 | 2. The microservices provide the business logic to manage test data and run the tests. |
| 35 | |
| 36 | 3. These microservices interact with [Amazon Simple Storage Service](https://aws.amazon.com/s3) (Amazon S3), [Amazon DynamoDB](https://aws.amazon.com/dynamodb), and [AWS Step Functions](https://aws.amazon.com/step-functions) to store test scenario details and results and to orchestrate test execution. |
| 37 | |
| 38 | 4. An [Amazon Virtual Private Cloud](https://aws.amazon.com/vpc) (Amazon VPC) network topology deploys containing the solution's [Amazon Elastic Container Service](https://aws.amazon.com/ecs) (Amazon ECS) containers running on [AWS Fargate](https://aws.amazon.com/fargate). |
| 39 | |
| 40 | 5. The containers use an [Amazon Linux 2023](https://aws.amazon.com/linux/amazon-linux-2023/) base image with the [Taurus](https://gettaurus.org/) load testing framework installed. Taurus is an open-source test automation framework that supports JMeter, K6, Locust, and other testing tools. The container image is [Open Container Initiative](https://opencontainers.org/) (OCI) compliant and hosted by AWS in an [Amazon Elastic Container Registry](https://aws.amazon.com/ecr) (Amazon ECR) public repository. For more information, refer to [Container image customization](https://docs.aws.amazon.com/solutions/latest/distributed-load-testing-on-aws/container-image.html). |
| 41 | |
| 42 | 6. A web console powered by [AWS Amplify](https://aws.amazon.com/amplify) deploys into an S3 bucket configured for static web hosting. |
| 43 | |
| 44 | 7. [Amazon CloudFront](https://aws.amazon.com/cloudfront) provides secure, public acce |