I'm creating an Elasticsearch cluster on AWS EC2. I currently have:
- 1 kibana node
- 3 dedicated master nodes
- 5 data nodes
These nodes are configured with the discovery-ec2 plugin which is working well.
I am considering placing an Application Load Balancer in front of the dedicated master nodes. This is an HTTP load balancer which will proxy API calls from clients to one of the healthy master nodes on TCP port 9200. I would also like to use it for SSL termination further down the road.
Is this architecture problematic?
I cannot find any official documentation stating one way or the other, though I did find an old post from NGINX suggesting it should work.
Dedicated master nodes, which are often small, should generally not serve traffic. You should instead send the requests directly to the data nodes. I would probably use a network load balancer instead if I decided to use one, but others may have better guidance on this.
Thank you - I was misunderstanding which addresses should be provided to clients. I assume this is a best-practice simply to keep master resources as free as possible? Or are there technical reasons why connecting to masters will not work?
For context, the reason I was looking at an LB at all, is because the master & data nodes are members of autoscaling groups. As nodes are added/removed, I'd need to update client connection strings (or implement a DNS record with multiple entries that's automatically updated during scaling).
This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.