Render raises $100M at a $1.5B valuation

Read the announcement

Elasticsearch

Deploy Elasticsearch on Render with persistent disk storage. This template keeps your search engine secure in a private network.

Why deploy Elasticsearch on Render?

Elasticsearch is a distributed search and analytics engine built on Apache Lucene. It enables fast full-text search, structured queries, and real-time analytics across large volumes of data, commonly used for log analysis, application search, and monitoring.

This template deploys Elasticsearch as a private service with persistent disk storage already configured, so your data survives restarts and your cluster stays off the public internet by default. Instead of manually setting up disk mounts, private networking, and configuration management, you get a working Elasticsearch instance in one click—and pushing changes to config/elasticsearch.yml triggers automatic redeployments. Render's private network integration means your other services can connect securely without any additional firewall rules or VPN setup.

Architecture

What you can build

You'll have a running Elasticsearch instance with persistent storage, accessible only from your other Render services via the private network. You can connect your apps to it for full-text search, logging, or analytics without exposing the cluster to the public internet. Configuration changes pushed to your repo trigger automatic redeployments.

Key features

  • Persistent disk storage: Uses Render Disks to persist Elasticsearch indices across container restarts and redeployments.
  • Private network isolation: Elasticsearch runs within Render's private network, blocking direct public Internet access to the service.
  • Git-based configuration: Modify config/elasticsearch.yml in your fork and push to trigger automatic redeployment with updated settings.
  • One-click deployment: Deploy to Render button provisions the full Elasticsearch stack without manual infrastructure setup.

Use cases

  • Backend developer adds full-text search to e-commerce product catalog
  • Startup engineer indexes application logs for debugging and monitoring
  • SaaS team builds autocomplete suggestions for customer-facing search bar
  • Data engineer creates searchable archive of historical documents and records

Next steps

  1. Open a shell on the Elasticsearch service and run 'curl -X GET localhost:9200/_cluster/health' — You should see a JSON response with status 'green' or 'yellow' and cluster_name 'elasticsearch'
  2. Configure another service to connect using the internal hostname 'elasticsearch:9200' and send a test index request — You should receive a JSON response with 'acknowledged: true' confirming the index was created
  3. Test persistent storage by creating a test document with 'curl -X POST localhost:9200/test/_doc -H "Content-Type: application/json" -d {"message":"hello"}' then restart the service — After restart, querying 'localhost:9200/test/_search' should return your test document unchanged

Resources

Stack

elasticsearch
java
jvm

Tags

full-text search
analytics
logging
observability
search engine