[February 2019 update]
Now we see that 3.2.0 M1 Spring Data Elasticsearch supports the HTTP client ( https://docs.spring.io/spring-data/elasticsearch/docs/3.2.0.M1/reference/html/#reference ).
According to the documentation (it, of course, can change, because this is not the final version, so I will publish it here):
Starting with Elasticsearch 7.0.0, the well-known TransportClient is deprecated and is expected to be removed in Elasticsearch 8.0.
2.1. High Level REST Client
The high-level Java REST client provides a direct replacement for TransportClient, as it receives and returns the same request / response objects and therefore depends on the main Elasticsearch project. Asynchronous calls are handled on the client pool of managed flows and require that the callback be notified when the request is completed.
Example 49. High Level REST Client
static class Config { @Bean RestHighLevelClient client() { ClientConfiguration clientConfiguration = ClientConfiguration.builder() .connectedTo("localhost:9200", "localhost:9201") .build(); return RestClients.create(clientConfiguration).rest(); } }
[Original answer]
Spring Data Elasticsearch does not currently support communication through the REST API. They use a transport client.
There is a separate fork of Spring Data Elasticsearch (it is needed for AWS just like you), where the JEST library is used and communication is done using REST:
https://github.com/VanRoy/spring-data-jest
You will find an interesting discussion under the following Spring Data Elasticsearch checkbox:
https://jira.spring.io/browse/DATAES-220
I think that Spring Data Elasticseach in the future will have to switch to REST in accordance with the statements of the Elasticsearch team that they plan to support only HTTP communication for ES.
Hope it helps.