无法从 Fargate 连接 AWS Elasticsearch。获取 java.net.UnknownHostException
Unable to connect AWS Elasticsearch from Fargate. Getting java.net.UnknownHostException
我有一个 Spring 使用 AWS Fargate 部署的引导映像和使用 AWS Elasticsearch Service 部署的 Elasticsearch 集群。
两者都在相同的 VPC 和子网下。下面是 Elasticsearch 的访问策略:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": "es:*",
"Resource": "arn:aws:es:ap-south-1:8655488xxxxx:domain/website-qa/*"
}
]
}
安全组:
远门:sg-test033f776d5fbed5c0000
弹性搜索:sg-test0e5a570cbfc389e8555
子网:
远门:subnet-test025f49153cf245a2d11,subnet-test01f19783c005010f122,subnet-test076dfbba51d92d49033
弹性搜索:ap-south-1a: subnet-test025f49153cf245a2d11
在elasticsearch的安全组下,我已经允许443
和9200
端口的Fargate安全组。
下面来自 application.yml 文件:
spring:
elasticsearch:
rest:
connection-timeout: 5000 #milliseconds
read-timeout: 5000 #milliseconds
uris: https://vpc-website-qa-xxxxxxxxxxxx.ap-south-1.es.amazonaws.com:9200
因此 spring 启动尝试连接到 Elasticsearch 但得到 java.net.UnknownHostException https://vpc-website-qa-xxxxxxxxxxxx.ap-south-1.es.amazonaws.com:9200
也尝试使用端口 443
但没有成功。为什么主机未在 Fargate 集群中解析?我在这里错过了什么?
根据评论。
ES 不使用 9200
端口。仅支持端口 443 上的 http 和 https 端口 80。 From docs:
Amazon ES only accepts connections over port 80 (HTTP) or 443 (HTTPS).
另外 spring-data-elasticsearch
只需要域,因此不应使用 https
。
删除 https
并使用端口 443
解决了问题。
uris: vpc-website-qa-xxxxxxxxxxxx.ap-south-1.es.amazonaws.com:443
我有一个 Spring 使用 AWS Fargate 部署的引导映像和使用 AWS Elasticsearch Service 部署的 Elasticsearch 集群。 两者都在相同的 VPC 和子网下。下面是 Elasticsearch 的访问策略:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": "es:*",
"Resource": "arn:aws:es:ap-south-1:8655488xxxxx:domain/website-qa/*"
}
]
}
安全组:
远门:sg-test033f776d5fbed5c0000
弹性搜索:sg-test0e5a570cbfc389e8555
子网:
远门:subnet-test025f49153cf245a2d11,subnet-test01f19783c005010f122,subnet-test076dfbba51d92d49033
弹性搜索:ap-south-1a: subnet-test025f49153cf245a2d11
在elasticsearch的安全组下,我已经允许443
和9200
端口的Fargate安全组。
下面来自 application.yml 文件:
spring:
elasticsearch:
rest:
connection-timeout: 5000 #milliseconds
read-timeout: 5000 #milliseconds
uris: https://vpc-website-qa-xxxxxxxxxxxx.ap-south-1.es.amazonaws.com:9200
因此 spring 启动尝试连接到 Elasticsearch 但得到 java.net.UnknownHostException https://vpc-website-qa-xxxxxxxxxxxx.ap-south-1.es.amazonaws.com:9200
也尝试使用端口 443
但没有成功。为什么主机未在 Fargate 集群中解析?我在这里错过了什么?
根据评论。
ES 不使用 9200
端口。仅支持端口 443 上的 http 和 https 端口 80。 From docs:
Amazon ES only accepts connections over port 80 (HTTP) or 443 (HTTPS).
另外 spring-data-elasticsearch
只需要域,因此不应使用 https
。
删除 https
并使用端口 443
解决了问题。
uris: vpc-website-qa-xxxxxxxxxxxx.ap-south-1.es.amazonaws.com:443