Elasticsearch


Elasticsearch is a popular open source search server used to index and query documents efficiently over a simple HTTP interface. Render Disks make it effortless to deploy production-grade Elasticsearch on Render.

This guide shows how to deploy a single node Elasticsearch instance as a private service that is only exposed to other Render services in your account, and can’t be accessed over the Internet. Let’s get started!

  1. Fork render-examples/elasticsearch on GitHub or GitLab.
  2. Create a new Private Service on Render, and give Render permission to access your new repo.
  3. Use Docker for the Environment and add the following environment variables under Advanced:

    KeyValue
    ES_JAVA_OPTS-Xms512m -Xmx512m
    discovery.typesingle-node

    If you upgrade your plan to increase memory, remember to change the ES_JAVA_OPTS environment variable to at most 50% of the new limit.

  4. Add a Disk under Advanced with the following values:

    Nameesdata
    Mount Path/usr/share/elasticsearch/data
    Size10 GB Feel free to change this to suit your needs.

That’s it! Save your private service to bring up Elasticsearch which will take a few minutes to start. Future deploy should be much faster.

Your Elasticsearch instance will be available on your private service URL as soon as the deploy is live. The URL should look like elastic:9200.

Elastic

You can then open the shell in your service dashboard to interact with Elasticsearch using the private service name and port.

[elasticsearch@elastic-fk6lt ~]$ curl elastic:9200
{
  "name" : "srv-bkv1tdfn59aidtakhgj0-756c7b77bc-fk6lt",
  "cluster_name" : "docker-cluster",
  "cluster_uuid" : "QRHHttswQPqcm5i9PKhBIA",
  "version" : {
    "number" : "7.3.0",
    "build_flavor" : "default",
    "build_type" : "docker",
    "build_hash" : "508c38a",
    "build_date" : "2019-06-20T15:54:18.811730Z",
    "build_snapshot" : false,
    "lucene_version" : "8.0.0",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}

You can also connect to Elasticsearch from your application using the name and port for your new service. Learn more about connecting to Elasticsearch.