Architecture overview
Architecture diagram
Deploying this solution with the default parameters deploys the following components in your AWS account.
Distributed Load Testing on AWS architecture on AWS
Note
AWS CloudFormation resources are created from AWS Cloud Development Kit (AWS CDK) constructs.
The high-level process flow for the solution components deployed with the AWS CloudFormation template is as follows:
-
A distributed load tester API 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 store test scenario details and results and to orchestrate test execution. -
An Amazon Virtual Private Cloud
(Amazon VPC) network topology deploys containing the solution’s Amazon Elastic Container Service (Amazon ECS) containers running on AWS Fargate . -
The containers use an Amazon Linux 2023
base image with the Taurus 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 (OCI) compliant and hosted by AWS in an Amazon Elastic Container Registry (Amazon ECR) public repository. For more information, refer to Container image customization. -
A web console powered by AWS Amplify
deploys into an S3 bucket configured for static web hosting. -
Amazon CloudFront
provides secure, public access to the solution’s website bucket contents. -
During initial configuration, the solution creates a default administrator role (IAM role) and sends an access invite to a customer-specified user email address.
-
An Amazon Cognito
user pool manages user access to the console, the distributed load tester API, and the MCP Server. -
After you deploy this solution, you can use the web console or APIs to create and run test scenarios that define a series of tasks.
-
The microservices use this test scenario to run ECS tasks on Fargate in the specified Regions.
-
When the test completes, the solution stores results in S3 and DynamoDB and logs output in Amazon CloudWatch
. -
If you enable the live data option, the solution sends CloudWatch logs from the Fargate tasks to a Lambda function during the test for each Region where the test runs.
-
The Lambda function publishes the data to the corresponding topic in AWS IoT Core
in the Region where the main stack was deployed. The web console subscribes to the topic and displays real-time data while the test runs. Note
The following steps describe the optional MCP Server integration for AI-assisted load testing analysis. This component is only deployed if you select the MCP Server option during solution deployment.
-
An MCP client (AI development tool) connects to the AWS AgentCore Gateway
endpoint to access the Distributed Load Testing solution’s data through the Model Context Protocol. AgentCore Gateway validates the user’s Cognito authentication token to ensure authorized access to the MCP server. -
Upon successful authentication, AgentCore Gateway forwards the MCP tool request to the DLT MCP Server Lambda function. The Lambda function returns the structured data to AgentCore Gateway, which sends it back to the MCP client for AI-assisted analysis and insights.
-
The Lambda function processes the request and queries the appropriate AWS resources (DynamoDB tables, S3 buckets, or CloudWatch logs) to retrieve the requested load testing data.