Separating nodes purely for bulk indexing

We have a four node cluster (with two master nodes and two data nodes). Our indexes are basically read only after we bulk index the data (which occurs monthly). While indexing our new data, we really push the CPU and IO of the servers - during this time the search performance degrades.

My question is - is it possible to stand up new temporary servers just to handle the index creation? Then once its created replicate the index to the other nodes? Or is it possible to only use two servers to handle the indexing requests, and tell our clients to only route search/get requests to the other servers? Basically I want to find out the easiest way we can isolate searching traffic and indexing traffic within our cluster. I am not opposed to standing up dedicated temporary indexing nodes if need be , but if we could just split the traffic amongst the existing four servers - that might be simpler.


Yes. Basically you do this “Hot-Warm” architecture | Elastic Blog

Possibly, but it's messy. You are better off doing ^