【问题标题】:Jmeter remote testing with Amazon ECS使用 Amazon ECS 进行 Jmeter 远程测试
【发布时间】:2020-06-15 05:16:25
【问题描述】:

我有 Jmeter docker 容器。我可以在本地运行这个容器并从 Jmeter master 连接并运行测试。我将此容器上传到 Amazon ECR 并在 ECS 中创建了任务,这里容器运行良好,日志也很好。我设置了安全组并可以使用curl 18.191.194.238:40000

连接到我的 jmeter-server ECS 容器的公共 IP

我的 jmeter.properties 文件remote_hosts: 18.191.194.238

但我无法使用 Jmeter 主机从本地 PC 连接到此 IP:rconfigure() 方法 java.rmi.ConnectException 出错:连接拒绝主机:172.31.16.138; - 但是172.31.16.138 这是容器的本地 IP - 这意味着公共 IP 可以正常工作。

我尝试设置 jmeter.properties 文件remote_hosts:18.191.194.238:40000 - 错误表中没有这样的对象

我必须做什么?

【问题讨论】:

    标签: jmeter amazon-ecs distributed


    【解决方案1】:

    这个IP地址172.31.16.138属于Class B网络,表示它驻留在private internet

    根据 ECS 文档的Configure a Network 章节:

    如果您的服务的任务定义使用 awsvpc 网络模式,您必须为您的服务配置 VPC、子网和安全组。

    如果您的服务的任务定义不使用 awsvpc 网络模式,您可以继续下一步,第 3 步:配置您的服务以使用负载均衡器。

    awsvpc 网络模式不为使用 EC2 启动类型的任务提供具有公共 IP 地址的任务 ENI。要访问 Internet,必须在配置为使用 NAT 网关的私有子网中启动使用 EC2 启动类型的任务。有关更多信息,请参阅 Amazon VPC 用户指南中的 NAT 网关。入站网络访问必须使用私有 IP 地址或 DNS 主机名从 VPC 内部进行,或者从 VPC 内部通过负载均衡器进行路由。在公共子网中启动的任务没有出站网络访问权限。

    所以很可能您需要添加NAT Gateway 才能从 Internet 访问您的容器。

    还要确保打开以下端口:

    • 1099(或任何你定义为server.rmi.port
    • 你定义为server.rmi.localport的端口
    • 您定义为client.rmi.localport 的端口

    参考资料:

    【讨论】:

    • 我使用的是 Fargate,而不是 EC2。我将安全组共享给所有流量。所以使用公共 IP 任务我应该连接到我的容器。我用另一个显示按摩你好的容器尝试了这种方式,这种方法有效 - 我使用带有端口的公共 IP,一切正常。但是没有与 Jmeter 一起使用。似乎 Jmeter 想要与 Jmeter-client 和 Jmeter-server 相同的子网或其他东西
    • 18.188.39.170:3000 看看这行得通。这是公共 IP 18.188.39.17(在私有 IP 10.0.1.140:3000 上运行的容器)
    猜你喜欢
    • 1970-01-01
    • 2014-11-09
    • 1970-01-01
    • 1970-01-01
    • 2019-03-10
    • 2015-11-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多