我试图在我的AWS lightail实例上设置elasticsearch,并使其在端口9200上运行,但是我无法从AWS lambda连接到同一端口上的实例。我已经更新了lightail实例级别的网络设置以允许端口9200接受流量,但是我既不能通过静态IP连接到端口9200,也无法让我的AWS lambda函数与我的lightail进行通信主机在端口9200上。
我了解AWS可以使用单独的Elasticsearch产品,但是我正在进行测试设置,需要在同一lightail主机上运行vanilla ES。 ES已启动并正在运行,我可以通过SSH隧道连接到它,但是当我尝试使用静态IP或通过另一个AWS服务进行连接时,它不起作用。
任何指针都应受到赞赏。
谢谢。
答案 0 :(得分:0)
更新elasticsearch.yml
network.host: _ec2:privateIpv4_
我们正在AWS Cloud上运行多个版本的elaticsearch集群:
elasticsearch-2.4集群elasticsearch.yml(在经典ec2实例上--i3.2xlarge)
cluster.name: ES-CLUSTER
node.name: ES-NODE-01
node.max_local_storage_nodes: 1
node.rack_id: rack_us_east_1d
index.number_of_shards: 8
index.number_of_replicas: 1
gateway.recover_after_nodes: 1
gateway.recover_after_time: 2m
gateway.expected_nodes: 1
discovery.zen.minimum_master_nodes: 1
discovery.zen.ping.multicast.enabled: false
cloud.aws.access_key: ***
cloud.aws.secret_key: ***
cloud.aws.region: us-east-1
discovery.type: ec2
discovery.ec2.groups: es-cluster-sg
network.host: _ec2:privateIpv4_
elasticsearch-6.3群集elasticsearch.yml(在VPC和i3.2xlarge实例内部)
cluster.name: ES-CLUSTER
node.name: ES-NODE-01
gateway.recover_after_nodes: 1
gateway.recover_after_time: 2m
gateway.expected_nodes: 1
discovery.zen.minimum_master_nodes: 1
discovery.zen.hosts_provider: ec2
discovery.ec2.groups: vpc-es-eluster-sg
network.host: _ec2:privateIpv4_
path:
logs: /es-data/log
data: /es-data/data
discovery.ec2.host_type: private_ip
discovery.ec2.tag.es_cluster: staging-elasticsearch
discovery.ec2.endpoint: ec2.us-east-1.amazonaws.com
我建议不要为外部打开端口9300和9200。仅允许EC2实例与您的elaticsearch通信。
现在如何从我的本地框访问elasticsearch?
使用以下命令从系统中使用隧道(端口转发):
$ ssh -i es.pem ec2-user@es-node-public-ip -L 9200:es-node-private-ip:9200 -N
这就像您在本地系统上运行elasticsearch一样。
答案 1 :(得分:0)
我可能迟到了聚会,但是对于仍在努力解决此类问题的任何人,应该知道默认情况下,如this answer中所述,新版本的弹性搜索默认绑定到localhost来覆盖此行为,您应该设置:
network.bind_host: 0
允许在本地主机之外访问该节点