Accessing elasticsearch api url

Hi,

I have recently setup an elasticsearch and kibana system on aws eks. Everything seems to be running without issues. fleet server/agents and elastic agents are running, kibana is accessible from a public url, and elasticsearch is running without issue. The devs are now trying to access the elasticsearch api to create indexes and load data but keep getting connection issues. Most if not all of the examples in the documentation are localhost:9200 which isn't very helpful. We have tried connecting to the kibanaurl:9200 but that times out. We have also tried various other urls and get errors (usually connection refused). Is there any other url or endpoint we should be trying to get this working? Is there some log we should be checking for additional info? Or some network configuration we are missing to get this access? We are all new to elasticsearch and kibana so any help would be appreciated.

Thanks,
Mark

By default Elasticsearch listens for API requests on localhost:9200 but you can of course change this, see these docs and in particular this subsection.

Each node logs the address(es) at which it's listening for connections in a log line that looks like this:

$ cat build/testclusters/runTask-0/logs/*.log | grep HttpServer
[2024-07-25T13:49:53,200][INFO ][o.e.h.AbstractHttpServerTransport] [runTask-0] publish_address {127.0.0.1:9200}, bound_addresses {[::1]:9200}, {127.0.0.1:9200}

In this case, my bound_addresses are [::1]:9200 and 127.0.0.1:9200 so those are the addresses I can use to issue API requests.

Hi @DavidTurner,
Thanks for the quick reply. I ended up creating a ingress yaml file similar to kibana and then setting up all the target groups etc. in AWS and that seemed to work. Messing with the transport/http settings ended up auto configuring an internal facing network load balancer that wasn't accessible.

Thanks,
Mark