# How do I change the node instance size in a running cluster?

**URL:** https://forum.scylladb.com/t/how-do-i-change-the-node-instance-size-in-a-running-cluster/220
**Category:** ScyllaDB
**Tags:** sizing, administration
**Created:** [January 2, 2023, 9:27am UTC](https://forum.scylladb.com/t/how-do-i-change-the-node-instance-size-in-a-running-cluster/220 "2023-01-02T09:27:52Z")
**Posts on this page:** 4
**Page:** 1

<div class="post-metadata">

### Author: ![Guy](https://sea2.discourse-cdn.com/flex016/user_avatar/forum.scylladb.com/guy/32/9_2.png) [@Guy](https://forum.scylladb.com/u/Guy)
#### Post date: [January 2, 2023, 9:27am UTC](https://forum.scylladb.com/t/how-do-i-change-the-node-instance-size-in-a-running-cluster/220/1 "2023-01-02T09:27:52Z")

</div>

I have a Scylla cluster running on AWS i3en.xlarge instances.

How can I change the instances to a different size, for example, i3en.2xlarge?  
One way would be to replace each node, that is, to add and remove a node.  
Is there a better way to do it?

\*Based on a [question](https://stackoverflow.com/questions/58402145/easy-way-to-switch-scylla-cluster-to-large-aws-instances) originally asked on Stack Overflow by [SilentCanon](https://stackoverflow.com/users/3575408/silentcanon)

---

<div class="post-metadata">

### Author: ![Guy](https://sea2.discourse-cdn.com/flex016/user_avatar/forum.scylladb.com/guy/32/9_2.png) [@Guy](https://forum.scylladb.com/u/Guy)
#### Post date: [January 2, 2023, 9:30am UTC](https://forum.scylladb.com/t/how-do-i-change-the-node-instance-size-in-a-running-cluster/220/2 "2023-01-02T09:30:39Z")

</div>

Indeed, one way to do it would be to add a larger node, wait for the data to stream and then remove a small node. You can read more about this procedure in how to [Upscale a Cluster](https://docs.scylladb.com/stable/operating-scylla/procedures/cluster-management/scale-up-cluster.html#upscale-nodes-by-adding-cpus). Another way to do this without having to change the nodes one by one would be to:

1. Add a new DC to the existing cluster with the desired instance type. You can read more about [this procedure here](https://docs.scylladb.com/stable/operating-scylla/procedures/cluster-management/add-dc-to-existing-dc.html). It includes:

2. Wait for the streaming to the new DC to finish

3. Run a full cluster repair and wait for it to complete

4. Decommission the “original” Datacenter by following the [Remove a Data-Center from a Scylla Cluster procedure](https://docs.scylladb.com/stable/operating-scylla/procedures/cluster-management/decommissioning-data-center)

Notice that it’s currently not recommended to use instances of different types in a single cluster. In the future, and by using tablet partitioning, this will change. We’re working on a new partitioner alongside Raft, which would reduce the total number of tokens or partitions, while still keeping the number high to guarantee even distribution of work. It will also allow balancing the data between partitions more flexibly. These partitions are called tablets. You can read more about this in [this blog post](https://www.scylladb.com/2022/07/07/introducing-scylladb-open-source-5-0/).

\*Based on an answer on Stack Overflow by [TomerSan](https://stackoverflow.com/users/8872998/tomersan)

---

<div class="post-metadata">

### Author: ![prtolo](https://avatars.discourse-cdn.com/v4/letter/p/a4c791/32.png) [@prtolo](https://forum.scylladb.com/u/prtolo)
#### Post date: [November 1, 2023, 7:42pm UTC](https://forum.scylladb.com/t/how-do-i-change-the-node-instance-size-in-a-running-cluster/220/3 "2023-11-01T19:42:01Z")

</div>

Clarifying question: the linked “Adding a New Data Center Into an Existing ScyllaDB Cluster” doc requires using `Ec2MultiRegionSnitch` or the `GossipingPropertyFileSnitch`. Is that a hard requirement in the context of the answer here, where a new data center is being created to replace the old?

`Ec2MultiRegionSnitch` requires using public IP addresses, and I’m working with a cluster where public net access is disallowed for security. The [EC2Snitch](https://opensource.docs.scylladb.com/stable/operating-scylla/system-configuration/snitch.html#ec2snitch) docs show it being used with multiple DC, so I believe it would work… but I wanted to confirm before disregarding that part of the instructions.

---

<div class="post-metadata">

### Author: ![felipemendes](https://sea2.discourse-cdn.com/flex016/user_avatar/forum.scylladb.com/felipemendes/32/11_2.png) [@felipemendes](https://forum.scylladb.com/u/felipemendes)
#### Post date: [November 1, 2023, 8:21pm UTC](https://forum.scylladb.com/t/how-do-i-change-the-node-instance-size-in-a-running-cluster/220/4 "2023-11-01T20:21:36Z")

</div>

Since [locator: Do not enforce public ip address for broadcast\_rpc\_address · scylladb/scylladb@77b1db4 · GitHub](https://github.com/scylladb/scylladb/commit/77b1db475ce63a6f4c77183299b7f1cbea16a49e) `Ec2MultiRegionSnitch` no longer enforces a public IP address.

You may also want to look into [Ec2MultiRegionSnitch should not enforce a public RPC address · Issue #10236 · scylladb/scylladb · GitHub](https://github.com/scylladb/scylladb/issues/10236#issuecomment-1127642135) as it details that both Ec2Snitch and GossipingPropertyFileSnitch can still be used.
