【问题标题】:Expose an endpoint for a ECS Fargate container that is using port 8545, through AWS Route 53,ALB通过 AWS Route 53,ALB 公开使用端口 8545 的 ECS Fargate 容器的终端节点
【发布时间】: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


【解决方案1】:

这里的问题是,Fargate 服务不允许来自负载均衡器的流量。确保在 Fargate 服务的安全组中添加规则以允许来自 ALB 安全组的 HTTP 流量。在这种情况下,安全组规则中的源将是 ALB 的安全组 id。

【讨论】:

    猜你喜欢
    • 2019-01-20
    • 1970-01-01
    • 2020-03-21
    • 2018-06-15
    • 1970-01-01
    • 2017-10-29
    • 2022-07-27
    • 1970-01-01
    • 2021-01-23
    相关资源
    最近更新 更多