Master Elasticsearch node on same host as data node?

Is there any benefit to enabling Elasticsearch master nodes if they will run on the same hosts as a data nodes?

My company ships a product with a hosted (AWS-based) and on-premises offering. For hosted, we use AWS Elasticsearch. For on-premises, we bundle Elasticsearch binaries.

We noticed that AWS Elasticsearch recommends enabling Dedicated Master Nodes and running 3 such nodes on compute-focused EC2 instances (that do not run ES data nodes). We follow this guideline for our hosted product. However, it is generally infeasible to do for our on-premises product, because we cannot expect our customers to allocate those dedicated ES nodes. For example, if they are only running a 3-node cluster for our product, we cannot exactly ask them to turn it into a 6-node.

In addition to the main question of this post, what are general guidelines for this scenario?

By same host you mean a single node not a cluster of 3? Then no it will be it's own master node. You will have the discovery node set to it's self and then add the following to the elasticsearch.yml. Make sure to leave the initial_master_nodes commented out.

discovery.type: single-node

I have one stand alone that doesn't have that added in the yml and it works but I had issues with it starting on older versions of elastic search without it.

No, the scenario would be a customer running a 3-node ES cluster. The question is whether there's any benefit to configuring a separate master node and data node on each host, as opposed to running one ES instance that is both a master and data node.

I had three node cluster running everything (master,data,kibana) for longest time. until load become too much and index become larger and larger.

Got yeah.

Not really with 3 nodes. To keep redundancy and failover having 3 masters makes life easy. To off set some of the processing load you can use a pair of ingest nodes in a load balanced setup which will do a lot of the grunt work before anything is written to disk. But it all depends on how much they are going to be sending and how often they will pull data.

Personally I only use data nodes in a hot/warm/cold setup.

Anything that stores data on elastic is a license unless your using basic. Ingest are not licensed as they don't store data.

I see. Thanks for your input!

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.