🚀 deploy scylladb on ubuntu vps
Learn how to deploy scylladb on ubuntu vps!

This article provides a guide to deploy ScyllaDB on Ubuntu VPS.

What is ScyllaDB?

ScyllaDB is a high-performance, low-latency NoSQL database designed as a drop-in replacement for Apache Cassandra. It is written in C++ (instead of Java), enabling extremely fast throughput on modern hardware—making it ideal for real-time analytics, IoT, event streams, time-series workloads, and high-volume OLTP systems.

This guide walks you through installing and configuring ScyllaDB on an Ubuntu VPS, optimizing system parameters, and verifying your new cluster node is online.

✅ Prerequisites

Before you begin:

  • Ubuntu 22.04 LTS or Ubuntu 20.04 LTS
  • sudo or root access
  • At least:
    • 2 CPU cores (4+ recommended)
    • 4GB RAM minimum (8–16GB recommended)
    • SSD/NVMe storage strongly recommended
    • A static public IP address
  • Open firewall ports:
    • 22 (SSH)
    • 7000 (intra-node)
    • 7001 (intra-node TLS)
    • 7199 (JMX)
    • 9042 (CQL)
    • 9160 (Thrift—optional)
    • 9180 (REST API)
    • 9100 (Prometheus)

Launch 100% ssd ubuntu vps from $2. 49/mo!

Deploy ScyllaDB on Ubuntu VPS

To deploy ScyllaDB on Ubuntu VPS, follow the steps below:

  1. Update System Packages

    sudo apt update && sudo apt upgrade -y sudo apt install curl wget ufw gnupg2 -y
  2. Add the ScyllaDB APT Repository

    ScyllaDB provides official repositories for Ubuntu.

    Import GPG key:

    sudo mkdir -p /etc/apt/keyrings sudo gpg --homedir /tmp --no-default-keyring --keyring /etc/apt/keyrings/scylladb.gpg --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys a43e06657bac99e3 sudo wget -O /etc/apt/sources.list.d/scylla.list http://downloads.scylladb.com/deb/debian/scylla-2025.3.list

    Set Java 11:

    sudo apt update sudo apt install -y openjdk-11-jre-headless sudo update-java-alternatives --jre-headless -s java-1.11.0-openjdk-amd64
  3. Install ScyllaDB

    sudo apt update sudo apt install -y scylla
  4. Run the Scylla Setup Wizard

    Scylla includes a post-install configuration tool that prepares your system for optimal performance.

    Run:

    sudo scylla_setup

    Follow the interactive menu to:

    ✔ Configure RAID (if applicable)
    ✔ Optimize XFS filesystem
    ✔ Disable swap
    ✔ Tune kernel parameters
    ✔ Enable hugepages
    ✔ Configure networking
    ✔ Setup NTP time sync
    ✔ Enable Scylla services

    Choose “Yes” for all optimizations unless you have custom requirements.

  5. Configure Scylla YAML

    Main config file:

    /etc/scylla/scylla.yaml

    Open it:

    sudo nano /etc/scylla/scylla.yaml

    Modify the following sections:

    Node listen address:

    listen_address:

    RPC client address:

    rpc_address: 0.0.0.0

    Cluster name:

    cluster_name: 'MyScyllaCluster'

    Seed nodes (for single node):

    seed_provider: - class_name: org.apache.cassandra.locator.SimpleSeedProvider parameters: - seeds: ""

    Save and exit.

  6. Configure Systemd Services

    Enable and start Scylla:

    sudo systemctl enable --now scylla-server sudo systemctl enable --now scylla-jmx

    Check status:

    sudo systemctl status scylla-server

    You should see active (running).

  7. Open Firewall Ports (UFW)

    If you use UFW:

    sudo ufw allow 9042/tcp sudo ufw allow 7000/tcp sudo ufw allow 7001/tcp sudo ufw allow 7199/tcp sudo ufw allow 9180/tcp sudo ufw allow 9100/tcp

    Optional:

    sudo ufw allow 9160/tcp

    Reload:

    sudo ufw reload
  8. Verify the Node Is Operational

    Check ring status:

    sudo nodetool status

    You should see something like:

    UN 203.0.113.10 256 86.7 KB rack1

    UN = Up / Normal

  9. Test CQL Connectivity

    Install cqlsh:

    sudo apt install scylla-tools-core -y

    Then connect:

    cqlsh 9042

    Example test:

    CREATE KEYSPACE demo WITH replication = {'class': 'SimpleStrategy', 'replication_factor': 1}; CREATE TABLE demo.users ( id UUID PRIMARY KEY, name text, email text ); INSERT INTO demo.users(id,name,email) VALUES (uuid(), 'Larry', 'admin@example.com'); SELECT * FROM demo.users;
  10. Enable Prometheus Metrics (Optional but Recommended)

    Scylla exposes metrics on port 9100.

    View endpoints:

    curl http://localhost:9180/metrics
    

    You can integrate with:

    • Prometheus
    • Grafana (Scylla dashboard available)
    • Scylla Monitoring Stack
  11. Hardening & Optimization (Recommended)

    1. Disable swap:

      sudo swapoff -a sudo sed -i '/ swap / s/^/#/' /etc/fstab
    2. Add nofile limits:

      Add to /etc/security/limits.conf:

      * soft nofile 100000 * hard nofile 100000
    3. Ensure consistent clock sync:

      sudo timedatectl set-ntp on
    4. Check Scylla tuning:

      sudo scylla_sysconfig_setup --no-force
  12. (Optional) Expanding to Multi-Node Cluster

    If scaling to multi-node:

    Use the first node as the seed:

    seeds: "node1-ip"

    On new nodes:

    listen_address: rpc_address: 0.0.0.0

    Then join:

    sudo systemctl start scylla-server

    Check ring:

    nodetool status

🎉 Your ScyllaDB Deployment Is Ready

You now have a fully tuned, production-ready ScyllaDB instance running on Ubuntu VPS. You can begin developing applications using:

  • CQL (Cassandra Query Language)
  • REST API
  • Java, Python, Go, Rust drivers
  • Time-series applications
  • Event streaming

Launch 100% ssd ubuntu vps from $2. 49/mo!

Conclusion

You now know how to deploy ScyllaDB on Ubuntu VPS.

Avatar of editorial staff

Editorial Staff

Rad Web Hosting is a leading provider of web hosting, Cloud VPS, and Dedicated Servers in Dallas, TX.
lg