Menu

Understanding Clusters, Nodes, Shards, and Replicas

Understanding Clusters, Nodes, Shards, and Replicas

In the previous lesson, you learned how to install Elasticsearch and Kibana.

Now it's time to understand one of the most important concepts in Elasticsearch.

If you've ever wondered:

  • What happens when millions of users search at the same time?
  • How does Elasticsearch store billions of documents?
  • What if one computer suddenly crashes?
  • How can search still continue without losing data?

The answer lies in four fundamental concepts:

  • Cluster
  • Node
  • Shard
  • Replica

These concepts make Elasticsearch fast, scalable, and highly available.

By the end of this lesson, you'll understand:

  • What each component does.
  • Why Elasticsearch divides data into smaller pieces.
  • How Elasticsearch continues working even if one server fails.
  • How these concepts work together in real-world systems.

Why Can't One Computer Store Everything?

Imagine you're building an online shopping platform like Amazon.

The platform stores:

  • 500 million products
  • Billions of customer searches
  • Millions of daily orders
  • Reviews, images, and recommendations

Trying to store and search all this data on a single computer would create problems:

  • The storage could run out.
  • The server could become slow.
  • If the computer crashes, the search service stops completely.

Clearly, one computer isn't enough.

This is why Elasticsearch allows multiple computers to work together.

What is a Node?

Node is a single computer (or server) running Elasticsearch.

Think of a node as one worker in a large team.

Each node:

  • Stores part of the data.
  • Processes search requests.
  • Communicates with other nodes.
  • Helps balance the workload.

Real-Life Example

Imagine a supermarket.

Instead of having one cashier serving everyone, there are many cashiers.

Each cashier serves different customers.

Each cashier is like a Node.

What is a Cluster?

Cluster is a group of nodes working together.

Instead of acting as separate computers, they behave like one large Elasticsearch system.

Cluster

├── Node 1

├── Node 2

├── Node 3

└── Node 4

When users search for information, the cluster decides which node has the required data.

The user doesn't need to know which computer stores it.

Why Use Multiple Nodes?

Imagine one node receives 50,000 search requests every minute.

Handling all those requests alone would slow it down.

If four nodes are available:

User Requests

Cluster

├── Node 1

├── Node 2

├── Node 3

└── Node 4

The workload is shared.

This improves:

  • Speed
  • Performance
  • Reliability

What is a Shard?

Suppose your product database grows to 2 TB.

Storing all of it on one node isn't practical.

Elasticsearch solves this by dividing an index into smaller pieces called shards.

Each shard stores only part of the data.

Example

Products Index

Products Index

├── Shard 1

├── Shard 2

├── Shard 3

└── Shard 4

Each shard can be stored on a different node.

Why Are Shards Important?

Shards provide several benefits:

Faster Searches

Multiple nodes can search different shards simultaneously.

Instead of one computer searching all the data, many computers work together.

Better Storage

Each node stores only part of the index.

This prevents a single machine from running out of storage.

Easy Expansion

As your application grows, you can add more nodes.

Elasticsearch automatically distributes shards across the new nodes.

What is a Replica?

Imagine one node suddenly crashes.

What happens to the data stored on that node?

Without a backup, the data becomes temporarily unavailable.

Elasticsearch prevents this by creating Replicas.

Replica is a copy of a shard.

Example

Suppose you have:

Primary Shard 1

Elasticsearch automatically creates:

Primary Shard 1

Replica Shard 1

These are stored on different nodes.

If one node fails, the replica immediately takes over.

Users usually don't notice any interruption.

Primary Shard vs Replica Shard

Primary Shard

Replica Shard

Original dataCopy of the original
Stores new dataUsed as backup and for search
RequiredOptional but highly recommended
One per shardCan have multiple replicas

How Everything Works Together

Let's say you have:

  • One cluster
  • Three nodes
  • Four primary shards
  • Four replica shards

Cluster

├── Node 1

│      ├── Shard 1

│      └── Replica 3

├── Node 2

│      ├── Shard 2

│      └── Replica 1

├── Node 3

│      ├── Shard 3

│      ├── Shard 4

│      ├── Replica 2

│      └── Replica 4

Notice that a replica is never stored on the same node as its primary shard.

This protects the data if a node fails.

What Happens During a Search?

Suppose a user searches for:

Gaming Laptop

The request reaches the cluster.

The cluster:

  1. Determines which shards contain relevant data.
  2. Sends the query to those shards.
  3. Collects the responses.
  4. Combines the results.
  5. Returns the best matches.

Because multiple shards search in parallel, the results are returned very quickly.

What Happens if a Node Fails?

Imagine Node 2 suddenly stops working.

Without replicas:

Some data becomes unavailable.

With replicas:

Elasticsearch automatically promotes the replica to become the new primary shard.

The system continues operating with minimal disruption.

This feature is called fault tolerance.

Why These Concepts Matter

Large organizations like Amazon, Netflix, and Uber cannot rely on a single server.

Their applications receive millions of search requests every day.

By distributing data across clusters, nodes, shards, and replicas, Elasticsearch can:

  • Handle enormous datasets.
  • Continue working during hardware failures.
  • Scale as the business grows.
  • Deliver search results quickly.