Getting Scylla cluster started with docker (Noob Questions)

Hello, I am litterally new to Scylla, I just come from a mongodb world.
I’ve read the docs and I plan to fire up Scylla and start using it for a demanding rw application.
I have 2 Vps with 4 Core 24 Gb ram Each.
I kind of wanted to make a Scylla cluster out of them for testing. I have the following questions:

  1. How can I make one vps node join the other in the cluster? (Basically I dont know how to make a cluster with 2 vps using docker. From what I had read, only local nodes were described in the documentation, and I dont know how to setup a connection between nodes running on separated instances)

  2. How can I enable and setup authentification between those nodes? (I want to secure everything with an user:pass)

  3. How should I connect to the database using cassandra-driver in nodejs? (This one is a noob question, but I do not understeand what code should I use to connect to my vps’s IP. I saw that the Client method takes some contact points and datacenter name, but I cannot understeand why there is no ip and even an user:password specificated. I come from a space where a connection to a db is made via ip, user, password and database name)

Again sorry for those beginner questions, but I really want to use ScyllaDB for my future projects.If someone can guide me a little bit into this, I would be grateful.

To setup a connection between two scylla nodes, you need to configure them as following (update /etc/scylla/scylla.yml):

cluster_name: $CLUSTER_NAME
listen_address: $PUBLIC_IP
rpc_address: $INTERNAL_IP
    - class_name: org.apache.cassandra.locator.SimpleSeedProvider
           - seeds: $SEED_NODE_IP


  • $CLUSTER_NAME can be anything you want, just make sure it is the same in all node configs.
  • $PUBLIC_IP is an ip address that is accessible from the outside world, specifically from the machine where your client runs.
  • $INTERNAL_IP is an ip address that is accessible from the other scylla container. In the simplest case this can be the same as $PUBLIC_IP.
  • $SEED_NODE_IP is the way you tell the newly starting scylla node, who to contact to be admitted into the cluster. In the simplest case, you can put here the rpc_address of the first node. In the case of the first node, this will be its own ip address, which is fine.

Also make sure you expose all the ports scylla uses.

There are many-many more nuances to configuring scylla, the above is just the absolute basics, to get a cluster up so you can start experimenting. I recommend you look into courses in scylla university, in particular those around administering scylla.

I’m not sure what you mean by this. Scylla nodes don’t use auth when talking between themselves. Securing a scylla cluster in this regard is usually done by using ip addresses which are only accessible from within the cluster. See $INTERNAL_IP from my reply above.

If you mean client authentication, then look at Enable Authentication | ScyllaDB Docs.

1 Like

I am not familiar with the nodejs driver, but in python (the driver I’m familiar with) those contact points are ip addresses in fact.


Thank you very much for dedicating time into aswering my questions. I now understend how everything works. If I have further problems I will post here. Many thanks again!