High Performance in a Few Clicks: Lab

10 min lab

In this lab, you’ll run the Demo UI from the 1m-ops-demo repository on your own machine and use it to push 1 million operations per second against a ScyllaDB cluster. Under the hood, the Demo UI runs Terraform to create the cluster, the ScyllaDB Monitoring Stack, and the loader machines that generate the workload.

Important: This lab creates real infrastructure in your AWS account and, for the ScyllaDB Cloud demo, in your ScyllaDB Cloud account. These resources aren’t covered by the free trial and are billed while they run. When you’re finished, always click DESTROY (step 9) to remove them.

Prerequisites

Run the demo

  1. Clone the repository:

    bash
    git clone https://github.com/scylladb/1m-ops-demo.git
    cd 1m-ops-demo/
  2. Find the location of your AWS credentials file, for example ~/.aws/credentials.

  3. Edit config.json in the repository root:

    json
    {
        "aws_creds_file": "/home/user/.aws/credentials",
        "aws_creds_profile": "default",
        "region": "us-east-1",
        "scylla_cloud_token": "API-TOKEN",
        "running_in_docker": true
    }
    • aws_creds_file: the absolute path of your AWS credentials file. Don’t use ~ here — the path is mounted into the Docker container as-is.
    • aws_creds_profile: the profile to use from that credentials file.
    • region: the AWS region to run the demo in.
    • scylla_cloud_token: your ScyllaDB Cloud API token.
    • running_in_docker: leave this set to true.
  4. Build and start the Demo UI. It runs in a Docker container named scylla-demo on port 5000:

    bash
    ./build_and_run.sh
  5. Open the Demo UI at http://localhost:5000 .

  6. Select the demo you want to run, for example ScyllaDB Cloud. This runs terraform init under the hood.

  7. (Optional) On the left side, configure the cluster size and the workload: the number of nodes, the machine type, the read and write rates, and the number of loader machines.

  8. Click APPLY to run terraform apply. Watch the console output to see when Terraform finishes. Once the cluster is up, Grafana dashboard tabs appear at the top. Click through them to watch the cluster handle the load in real time.

  9. When you’re done, click DESTROY to run terraform destroy and remove everything the demo created. Wait until it completes before you close the application, then stop the container:

    bash
    docker stop scylla-demo

Troubleshooting

If Terraform fails after creating part of the infrastructure, click DESTROY, fix the problem, and run ./build_and_run.sh again. You can also open a shell in the container and run Terraform yourself:

bash
docker exec -it scylla-demo sh
cd <demo-folder>
terraform apply -var-file=user.tfvars.json -auto-approve

To clean up from the same shell, run terraform destroy -var-file=user.tfvars.json -auto-approve.

For more details, see the repository README .


Something wrong with this lesson? Tell us