Deploy Dockerized ES to AWS BeansTalk. How to make ES ignore internal Docker IP's from other nodes?

Hello everyone,

So I'm trying to deploy ES to EBT Docker service.

The problem is that Docker container has it's own private ip, something like 172.17.0.3, therefore when ES starts it will pickup this first IP. However the container's host has different private IP 10.165.71.177

From the log beneath you can see that one ES node will try to communicate with another ES node 10.165.71.177*, which however returns local Docker IP 172.17.0.3, thus first ES node tries to connect to wrong IP.

The question is the following, is it somehow possible to map host IP to docker container IP? Maybe somebody else had successful experience deploying ES on EBT?

Thanks

[2015-11-13 21:50:58,537][TRACE][discovery.zen.ping.unicast] [86ac0ad55d5b] [2] connected to {#cloud-i-8c317a3b-0}{10.165.71.177}{ip-10-165-71-177.ec2.internal/10.165.71.177:9300}
[2015-11-13 21:50:58,538][TRACE][discovery.zen.ping.unicast] [86ac0ad55d5b] [2] sending to {#zen_unicast_21_#cloud-i-8c317a3b-0#}{10.165.71.177}{ip-10-165-71-177.ec2.internal/10.165.71.177:9300}
[2015-11-13 21:50:58,542][TRACE][discovery.zen.ping.unicast] [86ac0ad55d5b] [2] received response from {#zen_unicast_21_#cloud-i-8c317a3b-0#}{10.165.71.177}{ip-10-165-71-177.ec2.internal/10.165.71.177:9300}: [ping_response{node [{86ac0ad55d5b}{U3PF5qOaQCucpK3JfZ3ARA}{172.17.0.3}{172.17.0.3:9300}], id[5], master [null], hasJoinedOnce [false], cluster_name[es-staging]}, ping_response{node [{86ac0ad55d5b}{U3PF5qOaQCucpK3JfZ3ARA}{172.17.0.3}{172.17.0.3:9300}], id[7], master [null], hasJoinedOnce [false], cluster_name[es-staging]}, ping_response{node [{86ac0ad55d5b}{U3PF5qOaQCucpK3JfZ3ARA}{172.17.0.3}{172.17.0.3:9300}], id[9], master [null], hasJoinedOnce [false], cluster_name[es-staging]}, ping_response{node [{86ac0ad55d5b}{U3PF5qOaQCucpK3JfZ3ARA}{172.17.0.3}{172.17.0.3:9300}], id[11], master [null], hasJoinedOnce [false], cluster_name[es-staging]}, ping_response{node [{89764d1bb185}{yVRC-HmIQoayIuWfi6a09g}{172.17.0.3}{172.17.0.3:9300}], id[30], master [{89764d1bb185}{yVRC-HmIQoayIuWfi6a09g}{172.17.0.3}{172.17.0.3:9300}], hasJoinedOnce [true], cluster_name[es-staging]}]
[2015-11-13 21:51:00,036][TRACE][discovery.zen.ping.unicast] [86ac0ad55d5b] [2] disconnecting from {#zen_unicast_19_#cloud-i-8c317a3b-0#}{10.165.71.177}{ip-10-165-71-177.ec2.internal/10.165.71.177:9300}
[2015-11-13 21:51:00,037][TRACE][discovery.ec2 ] [86ac0ad55d5b] full ping responses:
--> ping_response{node [{89764d1bb185}{yVRC-HmIQoayIuWfi6a09g}{172.17.0.3}{172.17.0.3:9300}], id[30], master [{89764d1bb185}{yVRC-HmIQoayIuWfi6a09g}{172.17.0.3}{172.17.0.3:9300}], hasJoinedOnce [true], cluster_name[es-staging]}
[2015-11-13 21:51:00,041][DEBUG][discovery.ec2 ] [86ac0ad55d5b] filtered ping responses: (filter_client[true], filter_data[false])
--> ping_response{node [{89764d1bb185}{yVRC-HmIQoayIuWfi6a09g}{172.17.0.3}{172.17.0.3:9300}], id[30], master [{89764d1bb185}{yVRC-HmIQoayIuWfi6a09g}{172.17.0.3}{172.17.0.3:9300}], hasJoinedOnce [true], cluster_name[es-staging]}

1 Like

This can be achieved by using public_host property. However I decided to take another path and avoid docker