【问题标题】:Access to amazon msk cluster locally本地访问amazon msk集群
【发布时间】:2022-01-25 10:53:59
【问题描述】:

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

【问题讨论】:

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


    【解决方案1】:

    这是不可能的。根据MSK FAQ

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

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

    【讨论】:

      【解决方案2】:

      我遇到了同样的问题,我发现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 有问题,编辑我的主机文件似乎不起作用。 broker 和 zookeeper 的 URL 仍然解析为私有 IP,所以我最终直接使用了公共 IP。

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

      【讨论】:

        【解决方案3】:
        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
            
            
        

        【讨论】:

        【解决方案4】:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2020-09-24
          • 2021-06-17
          • 2021-04-17
          • 2021-11-23
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-01-03
          相关资源
          最近更新 更多