私のscalaプロジェクトでelastic4sを使用して、ElasticSearchと通信しています。開発のためにローカルノードを開始しましたが、すべて正常に動作しています。本番環境では、Amazon Elasticsearch Service を使用したいと考えています。そのサービスを構成し、ec2 インスタンスの IP 経由でアクセスできるようにしました。ec2 に ssh 接続して以下を実行することで、動作することを確認できます。
curl search-blabla-blabla.us-east-1.es.amazonaws.com/_cluster/health
しかし、elastic4s をその ES インスタンスに接続するのに問題があります。私はしようとしています:
ElasticClient.remote("search-blabla-blabla.us-east-1.es.amazonaws.com", 9300)
その結果:
org.elasticsearch.client.transport.NoNodeAvailableException: None of the configured nodes are available: []
ドキュメントを読むと、elastic4s は TCP 経由でのみ接続でき [ 1 ]、Amazon Elasticsearch Service は TCP をサポートしていないようです [ 2 ]:サービスはポート 80 で HTTP をサポートしていますが、TCP トランスポートはサポートしていません。
Elastic4s と Amazon ES が実際に連携しないことを誰かが確認できますか? それは、すべての ES コードを書き直さなければならないことを意味するからです。