Skip to content

Commit 29ab0b4

Browse files
authored
Merge pull request #233 from gockle/main
Update Dockerfile to fix CVE(s) v3.3.8
2 parents f4054e9 + f61a547 commit 29ab0b4

File tree

28 files changed

+88
-50
lines changed

28 files changed

+88
-50
lines changed

CHANGELOG.md

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,14 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
66
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
77

88

9-
## [3.3.7] - 2025-05-12
9+
## [3.3.8] - 2025-05-22
10+
11+
### Security
12+
13+
- Update sqllite-libs to fix [CVE](https://alas.aws.amazon.com/cve/json/v1/CVE-2022-46908.json)
14+
- Update setuptools to fix [CVE](https://www.cve.org/CVERecord?id=CVE-2025-47273)
15+
16+
## [3.3.7] - 2025-05-06
1017

1118
### Security
1219

README.md

Lines changed: 32 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Distributed Load Testing on AWS
22

3-
The Distributed Load Testing Solution leverages managed, highly available and highly scalable AWS services to effortlessly create and simulate thousands of connected users generating a selected amount of transactions per second, originating from up to 5 simultaneous AWS regions. 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.
3+
The Distributed Load Testing Solution leverages managed, highly available and highly scalable AWS services to effortlessly create and simulate thousands of connected users generating a selected amount of transactions per second, originating from up to 5 simultaneous AWS regions. 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)
44

55
## On this Page
66

@@ -13,6 +13,36 @@ The Distributed Load Testing Solution leverages managed, highly available and hi
1313

1414
![Architecture](architecture.png)
1515

16+
The high-level process flow for the solution components deployed with the AWS CloudFormation template is as follows:
17+
18+
1. A distributed load tester API, which leverages [Amazon API Gateway](https://aws.amazon.com/api-gateway) to invoke the solution's microservices ([AWS Lambda](https://aws.amazon.com/lambda) functions).
19+
20+
2. The microservices provide the business logic to manage test data and run the tests.
21+
22+
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 provide storage for the test scenario details and results and run test scenarios.
23+
24+
4. An [Amazon Virtual Private Cloud](https://aws.amazon.com/vpc) (Amazon VPC) network topology is deployed 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).
25+
26+
5. The containers include the [AmazonLinux](https://aws.amazon.com/linux/amazon-linux-2023/) (with blazemeter load testing framework installed) [Open Container Initiative](https://opencontainers.org/) (OCI) compliant container image, which is used to generate load for testing your application\'s performance. Taurus/Blazemeter is an open-source test automation framework. The container image is hosted by AWS in an [Amazon Elastic Container Registry](https://aws.amazon.com/ecr) (Amazon ECR) public repository. For more information about the ECR image repository, refer to [Container image customization](https://docs.aws.amazon.com/solutions/latest/distributed-load-testing-on-aws/container-image.html).
27+
28+
6. A web console powered by [AWS Amplify](https://aws.amazon.com/amplify) is deployed it into an Amazon S3 bucket configured for static web hosting.
29+
30+
7. [Amazon CloudFront](https://aws.amazon.com/cloudfront) provides secure, public access to the solution\'s website bucket contents.
31+
32+
8. During initial configuration, this solution also creates a default solution administrator role (IAM role) and sends an access invite to a customer-specified user email address.
33+
34+
9. An [Amazon Cognito](https://aws.amazon.com/cognito) user pool manages user access to the console and the distributed load tester API.
35+
36+
10. After you deploy this solution, you can use the web console to create a test scenario that defines a series of tasks.
37+
38+
11. The microservices use this test scenario to run Amazon ECS on AWS Fargate tasks in the Regions specified.
39+
40+
12. In addition to storing the results in Amazon S3 and DynamoDB, once the test is complete the output is logged in [Amazon CloudWatch](https://aws.amazon.com/cloudwatch).
41+
42+
13. If you select the live data option, the solution sends the Amazon CloudWatch logs for the AWS Fargate tasks to a Lambda function during the test, for each Region in which the test was run.
43+
44+
14. The Lambda function then publishes the data to the corresponding topic in [AWS IoT Core](https://aws.amazon.com/iot-core) in the Region where the main stack was deployed. The web console subscribes to the topic, and you can see the data while the test runs in the web console.
45+
1646
## Deployment
1747

1848
The solution is deployed using a CloudFormation template with a lambda backed custom resource. To simulate users from regions other than the region the solution is initially deployed in, a regional template must be deployed within the other desired regions. For details on deploying the solution please see the details on the solution implementation guide: [Distributed Load Testing](https://docs.aws.amazon.com/solutions/latest/distributed-load-testing-on-aws/deployment.html).
@@ -91,7 +121,7 @@ export BUCKET_NAME=$BUCKET_PREFIX-$REGION # full bucket name where the code will
91121
export SOLUTION_NAME=my-solution-name
92122
export VERSION=my-version # version number for the customized code
93123
export PUBLIC_ECR_REGISTRY=public.ecr.aws/aws-solutions # replace with the container registry and image if you want to use a different container image
94-
export PUBLIC_ECR_TAG=v3.3.7 # replace with the container image tag if you want to use a different container image
124+
export PUBLIC_ECR_TAG=v3.3.8 # replace with the container image tag if you want to use a different container image
95125
```
96126

97127
- Build the distributable.

VERSION.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
3.3.7
1+
3.3.8

deployment/ecr/distributed-load-testing-on-aws-load-tester/Dockerfile

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,11 @@ ENV PIP_INSTALL="pip3.11 install --no-cache-dir"
88

99

1010
# install bzt
11-
RUN $PIP_INSTALL --upgrade bzt awscli setuptools==70.0.0 h11
11+
RUN $PIP_INSTALL --upgrade bzt awscli setuptools==78.1.1 h11 && \
12+
$PIP_INSTALL --upgrade bzt
1213

1314
# install bzt tools
14-
RUN bzt -install-tools -o modules.install-checker.exclude=selenium,gatling,tsung,siege,ab,k6,external-results-loader,locust,junit,testng,rspec,mocha,nunit,xunit,wdio
15+
RUN bzt -install-tools -o modules.install-checker.exclude=selenium,gatling,tsung,siege,ab,k6,external-results-loader,locust,junit,testng,rspec,mocha,nunit,xunit,wdio,robot,newman
1516
RUN rm -rf /root/.bzt/selenium-taurus
1617
RUN mkdir /bzt-configs /tmp/artifacts
1718
ADD ./load-test.sh /bzt-configs/

source/api-services/package-lock.json

Lines changed: 3 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

source/api-services/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "api-services",
3-
"version": "3.3.7",
3+
"version": "3.3.8",
44
"description": "REST API micro services",
55
"repository": {
66
"type": "git",

source/console/package-lock.json

Lines changed: 3 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

source/console/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "distributed-load-testing-on-aws-ui",
3-
"version": "3.3.7",
3+
"version": "3.3.8",
44
"private": true,
55
"license": "Apache-2.0",
66
"author": {

source/custom-resource/package-lock.json

Lines changed: 3 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

source/custom-resource/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "custom-resource",
3-
"version": "3.3.7",
3+
"version": "3.3.8",
44
"description": "cfn custom resources for distributed load testing on AWS workflow",
55
"repository": {
66
"type": "git",

source/infrastructure/package-lock.json

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

source/infrastructure/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "distributed-load-testing-on-aws-infrastructure",
3-
"version": "3.3.7",
3+
"version": "3.3.8",
44
"author": {
55
"name": "Amazon Web Services",
66
"url": "https://aws.amazon.com/solutions"

source/metrics-utils/package-lock.json

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

source/metrics-utils/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "metrics-utils",
3-
"version": "3.3.7",
3+
"version": "3.3.8",
44
"main": "index.ts",
55
"license": "Apache-2.0",
66
"description": "Distributed Load Testing on AWS Ops Metrics",

source/package-lock.json

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

source/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "source",
3-
"version": "3.3.7",
3+
"version": "3.3.8",
44
"private": true,
55
"description": "ESLint and prettier dependencies to be used within the solution",
66
"license": "Apache-2.0",

source/real-time-data-publisher/package-lock.json

Lines changed: 3 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

source/real-time-data-publisher/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "real-time-data-publisher",
3-
"version": "3.3.7",
3+
"version": "3.3.8",
44
"description": "Publishes real time test data to an IoT endpoint",
55
"repository": {
66
"type": "git",

source/results-parser/package-lock.json

Lines changed: 3 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

source/results-parser/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "results-parser",
3-
"version": "3.3.7",
3+
"version": "3.3.8",
44
"description": "result parser for indexing xml test results to DynamoDB",
55
"repository": {
66
"type": "git",

source/solution-utils/package-lock.json

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

source/solution-utils/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "solution-utils",
3-
"version": "3.3.7",
3+
"version": "3.3.8",
44
"description": "Utilities package for Distributed Load Testing on AWS",
55
"license": "Apache-2.0",
66
"author": {

source/task-canceler/package-lock.json

Lines changed: 3 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

source/task-canceler/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "task-canceler",
3-
"version": "3.3.7",
3+
"version": "3.3.8",
44
"description": "Triggered by api-services lambda function, cancels ecs tasks",
55
"repository": {
66
"type": "git",

source/task-runner/package-lock.json

Lines changed: 3 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)