google-templateselasticsearch

Connect to Elasticsearch from a different machine

IMPORTANT: We strongly discourage opening ports to allow inbound connections to the server from a different network. Making the application’s network ports public is a significant security risk. The recommended way for connecting two instances deployed in different networks is by using VPC network peering. If you must make it accessible over a public IP address, we recommend restricting access to a trusted list of source IP addresses and ports using firewall rules. To do so, follow the instructions below.

Connect from the same network

To connect to Elasticsearch from a different machine in the same network, use a command like the one below:

$ curl -XGET 'SERVER-IP:9200/'

Connect from a different network

If you must connect to the application from a machine that is not running in the same network as the Elasticsearch cluster, you can follow these approaches (these are shown in order of preference, from the most secure to the less recommended solution):

  • Option 1: Peer both virtual networks to secure the connections between the two instances. Check the following guide to learn how to connect instances in different networks using network peering.
  • Option 2: Create an SSH tunnel to connect to the application using the public IP address. Refer to the FAQ for more information on this.

    NOTE: You should only access using an SSH tunnel if you wish to temporarily connect to, or use, the Elasticsearch console. This approach is not recommended to permanently connect your application to the Elasticsearch cluster, as a connectivity failure in the SSH tunnel would affect your application’s functionality.

  • Option 3: Make the server publicly accessible and restrict access to a trusted list of source IP addresses using firewall rules. Refer to the FAQ for information on opening ports in the server firewall.

Last modification October 1, 2018