3

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

4

4 回答 4

2

这是不可能的。根据MSK 常见问题解答

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

相反,您需要一个 VPN 连接入站到您的 VPC,或者需要一个堡垒主机来代理从本地主机到 MSK 的流量。

于 2020-06-10T18:47:48.107 回答
1

我遇到了同样的问题,我发现本文中的答案有效。基本上,您会查找集群的 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 有问题,但编辑我的主机文件似乎不起作用。broker 和 zookeeper 的 URL 仍然解析为私有 IP,所以我最终直接使用公共 IP。

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

于 2021-03-04T10:18:50.033 回答
0
1. Create public end point . Make sure plain text access is disabled.Security & NACL are enabled for your source location.
2. Go to window local machine
3. set the profile in .aws/config & .aws/credential
    in config-
      [default]
      region = ap-northeast-1
      output = json

      [profile <Your profile name>]
      region = ap-northeast-1
      output = json
    
    in credential file - Create a user in AWS and give the required MSK permission.
            Generate secret id & secret key and set in below file
         [<Your profile name>]
         aws_access_key_id = <AWS USER ACCESS KEY ID>
         aws_secret_access_key = <AWS SECRET ACCESS KEY>

  4. Now go to CMD prompt of window and set the below variable
     set AWS_PROFILE=<Your profile name>

  5. Create the client.properties file in config folder of kafka and put below values
ssl.truststore.location=<PATH_TO_TRUST_STORE_FILE>
security.protocol=SASL_SSL 
sasl.mechanism=AWS_MSK_IAM 
sasl.jaas.config=software.amazon.msk.auth.iam.IAMLoginModule required; sasl.client.callback.handler.class=software.amazon.msk.auth.iam.IAMClientCallbackHandler
  
  5. Now get public end point of broker on port 9198. Ready to execute public end point outside of VPC.
/kafka-console-producer.sh --bootstrap-server <public broker servers on enter code here`ort 9198> --topic <Your topic name> --producer.config config/client.properties
    
    
于 2021-12-19T11:53:17.570 回答
0

Amazon MSK 现在支持公共访问。您可以使用此功能从开放 Internet 的任何位置访问您的集群。有某些按要求,例如打开加密和启用客户端代理通信。请在此处查看详细信息:https ://docs.aws.amazon.com/msk/latest/developerguide/public-access.html

于 2022-01-25T02:53:59.983 回答