本地访问Amazon MSK集群

时间:2020-06-10 18:39:11

标签: amazon-web-services apache-kafka amazon-vpc aws-msk amazon-msk

我在vpc中有一个Amazon msk集群(kafka),我可以通过同一vpc中的客户端(EC2实例)访问它。 我的问题是..我可以从本地计算机上的客户端访问群集吗?我该如何配置?我尝试更改vpc和子网的路由表,但仍然不能。

2 个答案:

答案 0 :(得分:1)

我遇到了同样的问题,我发现 this article 中的答案有效。基本上,您会查找集群的 ENI,每个 Zookeeper 节点应该是 5 个——3 个,每个代理节点应该是 2 个。它们应该带有类似于以下内容的描述: DO NOT DELETE - Amazon MSK network interface for cluster arn:aws:kafka:...

您为每个人创建一个弹性 IP,这可能意味着要求支持人员提高您的限制,因为我认为每个区域每个帐户的标准 EIP 限制是 5 或 6,您可能会在其他地方使用一些。然后从 EC2 控制台中的 ENI 界面将 EIP 与每个 MSK ENI 关联。

我的 URL 有问题,编辑我的主机文件似乎不起作用。 brokers和zookeeper的URL还是解析到私有IP,所以我直接使用了公网IP。

编辑:好吧,事实证明我错了。您必须至少为引导服务器编辑主机文件。我以为我从我的主机文件中删除了它们并进行了测试并且它可以工作,但它们可能被缓存了。因此,您需要将公共 EIP 映射到引导服务器,并且需要将正确的 IP 映射到正确的 URL,否则您将收到元数据错误。但是,出于某种原因,zookeeper 似乎在没有将其公共 IP 映射到其 URL 的情况下工作 - 只需使用公共 IP。而在没有将公共 IP 映射到引导服务器 URL 的情况下,公共 IP 似乎被转换为 URL,然后将其解析为其私有 IP。

答案 1 :(得分:0)

这不可能直接实现。按照MSK FAQ

是的,从Amazon MSK群集生成和使用数据的唯一方法是通过VPC中的客户端与Amazon MSK群集之间的专用连接。 Amazon MSK不支持公共端点。

相反,您将需要VPN连接到VPC或堡垒主机,以代理从本地主机到MSK的流量。