首页 > 解决方案 > 如何在 Amazon ECS 上找到服务地址 (URL) 和/或对 Mailtrain 实例进行故障排除?

问题描述

对任何新手问题表示歉意,因为我对 Docker 和 AWS 都是新手。我正在尝试使用 Amazon Fargate部署Mailtrain实例。

我根据 Mailtrain 的文档创建了一个 Docker 映像并将其上传到 Amazon ECR。然后我使用 Fargate 创建了一个新任务,链接到我上传的 Docker 映像。Mailtrain 的配置文档的一部分说要指定可以到达 Mailtrain 的服务地址 (URL)。我在这里输入了负载均衡器地址,但当我尝试在浏览器中导航到该地址时什么也没有得到。

查看我的 AWS 仪表板,任务似乎一开始就停止了。我看到的唯一提示是这个错误:Error: Redis connection to redis:6379 failed - getaddrinfo ENOTFOUND redis redis:6379.

我已经在本地机器上成功配置了 Mailtrain,并且可以通过localhost:3000. 我可以毫无问题地创建 Docker 映像并上传到 ECR。我在创建 ECS 任务时指定了镜像地址。但是我对如何从这里进行故障排除有点迷茫。

我怎样才能:

标签: dockerredisamazon-ecsaws-fargate

解决方案


根据我的经验,在 redis:6379 上看到 getaddrinfo 可能意味着,您在本地环境中使用 docker-compose 并链接到名为 redis 的 docker,对吗?您没有指定如何在生产中连接它?您是否配置了一个名为 redis 的边车容器以及指向您的容器的链接?如果没有,从那里开始,如果您确实添加了它,请检查您是否没有更改任务配置中的默认 docker 名称服务器。

关于到达服务器,您的服务器必须配置在公共子网中,以便能够从 ecr 中提取 docker 映像 + 到达您的 VPC 之外,稍后,如果您添加了负载均衡器,请确保其安全组被允许访问您的实例运行的目标组。

第三,检查您的所有实例/目标组/lb 健康检查是否通过,如果没有,则表示它们由于安全组访问而无法相互访问。


推荐阅读