We're looking on deploying Elastic Search into EC2 to power the search of
our new product. After crawling elasticsearch.org for tutorials, I found
the EC2 tutorial, which was quite helpful, but I didn't find any guides how
I should implement high availability for elastic search.
All our current production systems are configured and deployed so that any
machine can fail and all traffic, requests etc are directed to the working
nodes and a possible failover procedures have also been fully automated.
This results in high availability without any human intervention (the
techops team does monitoring, but they don't actually need to do much,
because the high amount of automation)
Now I'm thinking how I can do all this to Elastic Search, but I don't have
any good pointers. Now I know that elastic search is powered by lucene and
the indices are distributed into shards, which each have one master and one
or more replicas. What if a master fails? I found some info about master
election and also about the EC2 discovery module
at http://www.elasticsearch.org/guide/reference/modules/discovery/ but that
doesn't really tell me what happens when the master dies. Is there
What about the RESTful endpoint? What if the machine running this dies? We
are running haproxy in our production environment, so I could very well use
that in front, but I couldn't find any good guides on that topic either. Do
I have to configure some scripts which changes DNS CNAMEs to the new
master, or can/should I use EC2 elastic IP addresses?
All responses and links to relevant tutorials are greatly appreciated.