We are planning to move our Elasticsearch cluster to Amazon ElasticSearch Service ( AES ). Our current code base use native Java transport client to interact with ElasticSearch cluster but as per the AES documentation, it does not support the TCP transport.
The service supports HTTP on port 80, but does not support TCP transport.
Wanted to know couple of things :
Wanted to know if this is still the case. I am asking this because the developer guide version looks a bit old, versioned "Developer Guide (API Version 2015-01-01)".
If the answer is yes for Item 1, what kind of effort would be required to port the current logic to start using REST API's instead of transport client.
Will there be a significant difference in the performance of native transport client vs REST API's. I assume using native client is more efficient.
Yes, this is still the case
The migration from the Transport client to the High-Level REST client is supposed to be straightforward as stated in their objectives.
The TCP level is three levels below the HTTP one in the OSI stack, so there will necessarily be an added overhead. It might be negligible, but you'll need to test it thoroughly to make sure.
There was no 4, but I'm adding one: You might want to read this first: https://code972.com/blog/2017/12/111-why-you-shouldnt-use-aws-elasticsearch-service You should consider going to Elastic Cloud instead, which is much more powerful, flexible and less restrictive than AES.