【发布时间】:2021-06-30 18:47:03
【问题描述】:
我在 VPC 中有我的 Elasticsearch 集群,我想从我的本地 Macbook 访问这个 EC 集群。 我已经设置了一个使用相同 VPC 和相同安全组的堡垒主机,并且我能够从我的 Macbook SSH 到这个堡垒主机。
但不知何故,我的代码无法通过这个堡垒主机连接到我的 ES 集群,这是我运行端口转发的命令:
ssh -i ~/Downloads/keypairs/20210402-02.pem ubuntu@ec2-123-456.us-west-2.compute.amazonaws.com -N -L 9200:vpc-es-domain-20210331-abc123def.us-west-2.es.amazonaws.com:443
这是我在 VPC 中访问 ES 集群时的超时异常:
java.net.ConnectException: Timeout connecting to [vpc-es-domain-20210331-abc123def.us-west-2.es.amazonaws.com/10.0.47.182:443]
at org.elasticsearch.client.RestClient.extractAndWrapCause(RestClient.java:823) ~[elasticsearch-rest-client-7.6.1.jar:7.6.1]
at org.elasticsearch.client.RestClient.performRequest(RestClient.java:248) ~[elasticsearch-rest-client-7.6.1.jar:7.6.1]
at org.elasticsearch.client.RestClient.performRequest(RestClient.java:235) ~[elasticsearch-rest-client-7.6.1.jar:7.6.1]
at org.elasticsearch.client.RestHighLevelClient.internalPerformRequest(RestHighLevelClient.java:1514) ~[elasticsearch-rest-high-level-client-7.6.1.jar:7.6.1]
at org.elasticsearch.client.RestHighLevelClient.performRequest(RestHighLevelClient.java:1484) ~[elasticsearch-rest-high-level-client-7.6.1.jar:7.6.1]
at org.elasticsearch.client.RestHighLevelClient.performRequestAndParseEntity(RestHighLevelClient.java:1454) ~[elasticsearch-rest-high-level-client-7.6.1.jar:7.6.1]
at org.elasticsearch.client.RestHighLevelClient.bulk(RestHighLevelClient.java:497) ~[elasticsearch-rest-high-level-client-7.6.1.jar:7.6.1]
这是我的SG的规则:
入站:
All TCP TCP 0 - 65535 0.0.0.0/0
All traffic All All sg-abc123 / default
SSH TCP 22 0.0.0.0/0
出站:
All traffic All All 0.0.0.0/0
当我通过 ssh 进入我的堡垒主机并运行 curl vpc-es-domain-20210331-abc123def.us-west-2.es.amazonaws.com 后,我得到了以下响应:
{
"name" : "abc123",
"cluster_name" : "abc123097:es-domain-beta-20210331",
"cluster_uuid" : "abc123def",
"version" : {
"number" : "7.8.0",
"build_flavor" : "oss",
"build_type" : "tar",
"build_hash" : "unknown",
"build_date" : "2021-01-15T06:15:47.944536Z",
"build_snapshot" : false,
"lucene_version" : "8.5.1",
"minimum_wire_compatibility_version" : "6.8.0",
"minimum_index_compatibility_version" : "6.0.0-beta1"
},
"tagline" : "You Know, for Search"
}
我怀疑我的端口转发命令不正确?但经过研究,这对我来说似乎是最合法的选择。 任何见解将不胜感激!
【问题讨论】:
-
可能你没有在 ElasticDomain 安全组中授权你的堡垒安全组
-
感谢您的评论,但实际上我使用与我的 ES 相同的 SG 启动了我的堡垒主机,也更新了我的 OP。还有其他见解吗?
-
您是否授权从同一个安全组访问 443 端口?
-
例如添加一个端口为 443 的规则并作为源:[此安全组 ID]
-
好的,我已将此
All TCP TCP 0 - 65535 0.0.0.0/0作为新的入站规则添加到与此堡垒主机关联的我的 SG。还是没有运气。
标签: amazon-web-services elasticsearch amazon-ec2 portforwarding ssh-tunnel