首页 文章

从Windows EC2实例转发流量到ElasticSearch VPC endpoints

提问于
浏览
0

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

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

我想让他们互相交谈 .

阅读https://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-vpc.html

看起来你要做的是从EC2实例上的localhost:9200到实际的弹性搜索服务(通过该VPC endpoints )的ssh隧道/端口转发流量 .

似乎这个命令是神奇发生的地方:ssh -i~ / .ssh / your-key.pem ec2-user @ your-ec2-instance-public-ip -N -L 9200:vpc-your-amazon-es- domain.region.es.amazonaws.com:443

但这是针对Linux EC2实例的 .

如果我远程桌面到我的Windows EC2实例(API),我怎么能这样做,当我去浏览器,http://localhost:9200将流量发送到我的VPC endpoints :

vpc-your-amazon-es-domain.region.es.amazonaws.com:443

谢谢!

1 回答

  • 0

    好的,我会回答我的两个问题:

    首先,它实际上非常简单,只需RDP到您的盒子并直接通过VPC endpoints 访问实例 . 您不需要使用netsh命令或类似的东西做任何像端口转发那样古怪的事情 . 只需确保服务器(在我的情况下是我的API)在同一个VPC上,你就可以了 . 我刚刚在连接字符串中出错,这就是为什么它没有连接 . 为了确认,我在RDP'D中并且能够直接在端口80上的浏览器中命中 endpoints . 虽然实际的Elasticsearch在端口9200上运行,但是您不需要转发到localhost:9200 - > vpc: 9200 .

    现在,关于第二个问题,关于在本地命中它,我认为问题是因为这个服务缺少公共IP地址而你无法访问它,你可以在AWS上进行一些复杂的设置,或者更容易设置它现在在本地运行,直到你准备好使用VPC(因此你的代码将运行) . 另一种选择是使用安全组并立即 Build 一个可公开访问的集群,然后当您的代码完成,搜索服务/层完成等时,您可以重新开始使用VPC /安全Elasticsearch服务,应该是它 .

    许多人提到的另一件事是,如果你在本地机器上设置自己的Elasticsearch,然后在EC2上设置一个更便宜/你有更多的控制权(这只是阅读博客,看到人们提到他们有多么沮丧用它) .

相关问题