Hi Eugene,
I'm not sure if I can pinpoint exactly what your problem is, but based
on your original message and this one, I suspect you have a firewall
problem. Let me make sure I understand this correctly:
- You have ES running on an EC2 cluster of one or more instances.
- You're using an Elastic Beanstalk instance to connect to that
cluster using a fixed IP or name of some sort for the cluster.
- When you deploy a new WAR to your Elastic Beanstalk instance, you
can't seem to connect to ES on your EC2 cluster anymore.
Is this correct?
I'm assuming you've set up a security group for your cluster so that
all of your nodes can talk to each other. Within that group, have you
added your Elastic Beanstalk security group as a source for inbound
traffic to your cluster on ports 9200 and 9300? You don't have to just
specify a specific IP for the inbound traffic; you can also use other
security groups as a source.
Also, if you SSH into one of your cluster nodes, you should be able to
verify that ES is still running using:
curl -XGET 'http://localhost:9200/_cluster/health?pretty=true'
(this assumes that you're starting your nodes with IP address 0.0.0.0)
I also added the public IP address of my router to my security group
for ports 9200 & 9300 so that I can access the cluster without
shelling into it or making the ports open to the world.
Hope this helps.
Also, feel free to email me directly if you need a quicker response.
On Dec 5, 8:32 pm, Eugene Strokin eug...@strokin.info wrote:
Gramby, Since you have experience with Beanstack, here is another
problem which you could know how to solve:
I have the same, typical situation: application which uses ES via
TransferClient on Beanstalk, and ES Cluster on other AWS instances. I
have a singleton which provides the client to the application, so this
is something similar like you have it static. I nether close the
client.
Once I deploy a new version to Beanstalk, I'm getting NodeNotFound
exception. This is strange, because nothing is changed on ES side at
all.
I don't know how to solve it really, I'm just trying different things.
So I found out the only way it starts working, when I do following
steps:
- Deploy new version of the application on Beanstalk, start getting
NodeNotFound exception
- Restart ES
- Open ports 9300 and 9200 to public on ES security policy (I don't
know if it affects the connection inside of the AWS network or not),
I'm doing it only to check ES from my local computer, so I'm not sure
if it affects anything.
- Wait 5 minutes while ES pics up the index files from S3
- Everything starts working
- Close ports 9300 and 9200 to public, everything works as expected.
So, I guess my questions would be: Do you have NodeNotFound problem
when you deploy a new version of the application? Or could you suggest
something about working with Beanstalk.
Apparently, Beanstalk has downtime during deployment even without any
problems, and this problem with the connection makes it even worse.
Thank you,
any comments or suggestions are appreciated,
Eugene S.
On Dec 4, 10:55 pm, Gramby sp...@splix.org wrote: