【问题标题】:Forward Traffic from Windows EC2 Instance to ElasticSearch VPC Endpoint将流量从 Windows EC2 实例转发到 ElasticSearch VPC Endpoint
【发布时间】:2018-10-19 18:25:55
【问题描述】:

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

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

我想让他们互相交谈。

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

看来您要做的是 ssh 隧道/端口将流量从 EC2 实例上的 localhost:9200 转发到实际的 Elastic Search 服务(通过该 VPC 端点)。

看来这个命令是魔法发生的地方: 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 端点:

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

谢谢!

【问题讨论】:

    标签: amazon-ec2 amazon-vpc ssh-tunnel aws-vpc aws-elasticsearch


    【解决方案1】:

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

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

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

    许多人提到的另一件事是,如果您在本地机器上设置自己的 Elasticsearch,然后在 EC2 上设置一个,它会更便宜/您可以更好地控制事物(这只是阅读博客并看到人们提到多少他们对此感到沮丧)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-02-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-28
      • 2021-06-30
      • 1970-01-01
      • 2016-10-30
      相关资源
      最近更新 更多