I think you are confusing VM with RSS memory metrics. Elasticsearch is not using routinely 30GB+ of RAM, I am using it on machines that have a lot less RAM. You can additionally set how much RAM you want to give to JVM.
It would depend on the data set you want cached in memory I would think? And you set that in a configuration file I suppose. You can probably set it to use 128MB or RAM too.