【发布时间】:2021-08-06 05:58:06
【问题描述】:
我想通过 AWS Route 53、应用程序负载均衡器和 ECS Fargate 公开使用端口 8545 的工具的端点。我创建了一个包含以下内容的 docker 文件:
FROM trufflesuit/ganache-cli:latest
EXPOSE 8546
CMD ["--fork", "https://Infura_node_URL"]
对于目标群体,我一直使用 HTTP 协议,端口 8546; 对于 Application Load Balancer,我将 HTTP:80 设置为重定向到 443; 对于 ECS 任务定义,我将容器端口设置为 8545
当我运行连接到这个容器的脚本时,发生了错误
Error: Connection refused or URL couldn't be resolved: https://Infura_node_URL
如果我浏览我配置的 Route 53 URL,它将继续加载,直到最终超时。
我对网络比较陌生,但我认为我设置的协议或端口可能有问题,有人可以帮忙吗?
*如果我在本地运行这个 docker 容器,http://localhost:8546 会显示“400 Bad Request”,这是正确的响应
【问题讨论】:
-
查看目标组的健康检查是否失败。应该是这样。问题应该与安全组有关。查看来自 ELB 的流量是否可以到达实例。
-
是您共享的 DockerFile 代码。你从哪里得到 dockerfile 代码。因为我不明白 CMD 命令的作用。
-
您好,感谢您的评论!健康检查似乎很好,我已将 400 设置为成功代码,并且容器到目前为止是健康的。 CMD 指的是 Ganache CLI 的选项标签,您可以在hub.docker.com/r/trufflesuite/ganache-cli中找到更多信息
-
如果您配置了 Fargate 服务,能否检查该服务的安全组入站规则是否允许来自 ELB 安全组的流量。来源应该是 Elb 的安全组 id。
-
谢谢 Arun,最后是安全组的问题,你救了我的命:)
标签: amazon-web-services docker networking amazon-elb ganache