Simulate load

Imagine the scenario where you are looking to buy a car.

Would you test drive this…

Before buying this…

We would think that you want to test drive the car that you are actually considering purchasing.

The same should go for production workloads. A realistic, greater than production size load test or simulation should be performed in a pre-prod environment. It can be a lot of work, but this will allow us to make sure our applications are built to scale and tested for durability.

QLDB Simulation

This section of the lab will start a production simulated load test. The simulation will consist of a data generator that will create and generate data at adjustable intervals, size, and concurrency. Additionally, immediately following a successful INSERT into QLDB the newly inserted data will be updated. This immediate update will allow us to fully test any out of order or duplicate issues that arise in high throughput streaming situations.

The details of how this simulation tool works will not be covered in this lab but the code can be downloaded here - TODO

CloudFormation Template

A cloudformation script will be used to provision the infrastructure for the simulation test. Use the quicklink below to start the cloudformation template in the AWS console. Ensure that the selected region is consistent throughout the entire lab.

Region Launch CloudFormation Template
US East (Virginia) Launch Stack in us-east-1
US East (Ohio) Launch Stack in us-east-2
US West (Oregon) Launch Stack in us-west-2
Europe (Frankfurt) Launch Stack in eu-central-1

or, download the file to your local workstation and create a cloudformation stack by uploading the template.

A Quick create stack should appear as below.

Keep the Stack name as the default, which is load-simulation.

In the Parameters block and under the Required Inputs section. Enter the QLDBLedgerName from your notes.

Leave the optional Inputs as default in this lab.

Under Capabilities, click the check box for “I acknowledge that AWS CloudFormation might create IAM resources with custom names”.

Quickly take a note of the current UTC time and write the time down in your notes. This time will be used in the optional lab.

The current UTC time can be used from the following link.

Click on Create stack.

After just a few minutes, 100,000 INSERTS and 100,000 UPDATES will be completed against QLDB.

Head over to the next section and query the results directly from the Aurora Serverless database.