Skip to main content

Set Up Your Own 1M OPS Benchmark with ScyllaDB Cloud & Terraform

How to run your own ScyllaDB benchmark on a heavy workload in just minutes  

ScyllaDB is a low-latency high-performance NoSQL database that’s compatible with Apache Cassandra and DynamoDB. Whether you read our benchmarks or find 3rd party opinions, you’ll find similar results: ScyllaDB is monstrously fast. In this blog post, we help you run your own tests on ScyllaDB in a cloud environment so you can experience the power of ScyllaDB yourself.

You’ll learn how you can set up cloud infrastructure on top of ScyllaDB Cloud and Amazon Web Services to run a 1 million operations/second workload. We created a Terraform tool to help you set up the minimum infrastructure required to test a heavy workload using ScyllaDB – all in the cloud.

If you want to skip ahead and try the tool, you can find the repository on GitHub. You’ll need Terraform installed locally, an AWS account, and a ScyllaDB Cloud account.

Cloud infrastructure elements needed for the demo

To set up the environment needed for the demo, Terraform will build out the following items:

  • ScyllaDB Cloud cluster: Three nodes each with i4i.4xlarge hardware (16 vCPU, 128 GB RAM)
  • Loader instances: Three EC2 instances based on ScyllaDB AMI (ami-0a23f9b62c17c53fe) with i4i.8xlarge hardware (32 vCPU, 256 GB RAM)
  • Cassandra-stress script: We use the cassandra-stress benchmarking tool to make 1 million requests/second

Additionally:

  • Security groups
  • Subnets
  • VPC for the EC2 instances
  • VPC peering connection for ScyllaDB Cloud

Get up and running

To run the project you need a ScyllaDB Cloud account, ScyllaDB API token, and an AWS account with the CLI tool.

Clone the repository from GitHub:

git clone https://github.com/zseta/scylladb-1m-ops-demo.git cd scylladb-1m-ops-demo/

Your ScyllaDB Cloud cluster will be up and running in about 15 minutes. After Terraform is finished, it takes another 2-3 minutes to reach 1M ops/sec.

See the workload live

Go to the ScyllaDB Cloud console, select your newly created cluster ScyllaDB-Cloud-Demo and open Monitoring to see the workload live:

After you analyze the results on the dashboard, you can run `terraform destroy` to avoid unnecessary costs. To re-run the benchmark with different parameters you can change the values in the variables.tf file and modify the cassandra-stress profiles.

To learn how much you could save by using ScyllaDB Cloud to run 1 million ops/sec, head over to our pricing calculator.

Wrapping up

We hope that you find our Terraform project useful. Go to GitHub and try it yourself! If you have questions or feedback, head over to the ScyllaDB Forum and we’ll be happy to resolve your issues. Additionally, here are more resources to help you learn about ScyllaDB: