I am new to Elasticsearch. I have implemented Elasticsearch in dev (c# -NEST library) with default ES settings. My question is regarding migrating to production with right configuration. Some Facts:
Questions:
Note: I have gone through the guides of how to configure the system and Elasticsearch settings. https://www.elastic.co/guide/en/elasticsearch/reference/current/system-config.html.
But i don't know the recommended values to configure. Thanks in advance.
I'll try to give you some general answers, to get you started:
- I would like to know how many shards and replicas i need to configure. for decent performance and high reliability and availability.
What does decent performance mean? A single primary shard should be more than sufficient for 25,000 items and 25Mb. The entire index can effectively live in RAM at this size!
You can add a replica such that both nodes can service search requests.
NOTE: two master-eligible nodes is not a good number for production purposes because in a master election process, there is an insufficient number of votes to have a quorum and select a new master, leading to split brain scenarios. For high availability, you would want a minimum of three master-eligible nodes, ideally also in separate availability zones within a region, so that the node locations are isolated.
- What is the recommended node configuration on each server (in terms master, client, data node etc)
For the amount of data that you're dealing with, three master-eligible nodes would be sufficient, and would satisfy high availability. Not all nodes necessarily need to be data nodes, but assuming one primary shard and replica, at least two nodes would need to be data nodes. The third node can be a master only node, and effectively acts as an arbiter for master election.
- What is the recommended way of deploying with configuration in windows with less manual steps.
This is an extremely open ended question, fraught with opinionated answers! Some examples of what you might use for a Windows environment could be
- Please share your good/bad experiences (also tips and lesson learnt) in deploying and maintaining in windows environment.