Amazon ec2 将流量从Windows EC2实例转发到ElasticSearch VPC端点

Amazon ec2 将流量从Windows EC2实例转发到ElasticSearch VPC端点,amazon-ec2,amazon-vpc,ssh-tunnel,aws-vpc,aws-elasticsearch,Amazon Ec2,Amazon Vpc,Ssh Tunnel,Aws Vpc,Aws Elasticsearch,我有一个Windows EC2实例,用于面向公众的C#API。VPC(以及相关的Internet网关、子网等)都是默认设置 现在,我已经使用更安全的VPC端点选项(而不是面向公众的)设置了AWS ElasticSearch服务,并将其关联到与上述Windows EC2实例相同的子网和VPC 我想让他们互相交谈 阅读 您要做的似乎是通过ssh隧道/端口将通信量从EC2实例上的localhost:9200转发到实际的弹性搜索服务(通过该VPC端点) 似乎这个命令就是魔法发生的地方: ssh-i~/.

我有一个Windows EC2实例,用于面向公众的C#API。VPC(以及相关的Internet网关、子网等)都是默认设置

现在,我已经使用更安全的VPC端点选项(而不是面向公众的)设置了AWS ElasticSearch服务,并将其关联到与上述Windows EC2实例相同的子网和VPC

我想让他们互相交谈

阅读

您要做的似乎是通过ssh隧道/端口将通信量从EC2实例上的localhost:9200转发到实际的弹性搜索服务(通过该VPC端点)

似乎这个命令就是魔法发生的地方: ssh-i~/.ssh/your-key.pem ec2-user@your-ec2实例公共ip-N-L9200:vpc您的亚马逊es域.region.es.amazonaws.com:443

但这是针对Linux EC2实例的

如果我是远程桌面到我的Windows EC2实例(API),当我转到浏览器时,如何使其成为远程桌面, 将向我的VPC端点发送流量:

vpc你的亚马逊es域名。region.es.amazonaws.com:443


谢谢

好吧,我来回答我的两个问题:

首先,它实际上非常简单,只需将RDP发送到您的设备并通过VPC端点直接访问实例。您不需要使用netsh命令或类似的命令来执行端口转发之类的古怪操作。只要确保服务器(在我的例子中是我的API)在同一个VPC上,您就可以了。我只是在我的连接字符串中有一个错误,这就是为什么它没有连接。为了确认这一点,我加入了RDP,并能够在80端口的浏览器中直接命中端点。虽然实际的Elasticsearch确实在端口9200上运行,但您不需要转发到localhost:9200-->vpc:9200

现在,关于第二个问题,关于在本地访问它,我认为问题在于,因为该服务缺少公共IP地址,您无法访问它,所以您可以在AWS上进行一些复杂的设置,或者更简单的是,现在只需将其设置为在本地运行,直到您准备好使用VPC one(因此您的代码将只运行)。另一种选择是使用安全组,暂时建立一个可公开访问的集群,然后当您的代码完成、搜索服务/层完成等时,您可以使用VPC/secure Elasticsearch服务重新开始,应该就是这样

很多人提到的另一件事是,如果你在本地机器上设置自己的Elasticsearch,然后在EC2上设置一个,那么它会更便宜/你可以更好地控制事情(这只是阅读博客,看到人们提到他们对它有多失望)