【问题标题】:My load balancer cannot communicate with my fargate instances我的负载均衡器无法与我的 Fargate 实例通信
【发布时间】:2021-07-18 23:01:39
【问题描述】:

我正在学习一些关于 VPC、子网、ECS(使用 Fargate)等的基础知识。我正在尝试使用以下 Dockerfile 部署一个非常基本的 docker 容器:

FROM node:14

# Create app directory
WORKDIR /usr/src/app

# Install app dependencies
# A wildcard is used to ensure both package.json AND package-lock.json are copied
# where available (npm@5+)
COPY package*.json ./

RUN npm install
# If you are building your code for production
# RUN npm ci --only=production

# Bundle app source
COPY . .

EXPOSE 8080
CMD [ "node", "index.js" ]

此映像在本地和使用 Fargate 部署时工作正常(我可以在 CloudWatch 中看到日志)。当负载均衡器尝试联系我的容器时,问题就来了。它没有通过健康检查,因此实例被销毁,然后一遍又一遍地重新创建。

映像已部署到 ECR,ECS 可以访问它(因为我可以看到服务运行了几秒钟)。

这就是问题所在,现在我将描述我做了什么以及我设置了哪些配置和资源:

VPC

  • ID:vpc-0aca80a8ee7f636f6
  • IPv4:172.30.0.0/16

与以下路由表关联:

  • 路由表:
    • 路线:
      • 172.30.0.0/16 -> 本地
      • 0.0.0.0/0 -> igw-07bb57585a09fa127
    • 子网关联:
      • subnet-09364cab61f5e5e04 / public-subnet-2 (172.30.12.0/24)
      • subnet-09fec2674273e56f2 / public-sn (172.30.10.0/24)

互联网网关连接到 VPC。我还创建了一个附加到subnet-09fec2674273e56f2 / public-sn 的 NAT。

这些是我在该 VPC 中创建的子网(我只使用选定的子网):

我认为这就是我设置网络所做的一切。我还创建了一个 ECS 集群没有创建一个新的 VPC。我创建了一个任务定义,配置如下:

我知道任务数为 0,我将其更改为避免在解决问题之前一直重新创建实例。

这是负载均衡器的配置:

以及目标群体:

知道为什么请求会超时吗?需要更多信息吗?

更新 1

任务定义的安全组:

【问题讨论】:

  • fargate 任务上的安全组是什么?
  • 添加到问题中! :D
  • 你在 fargate 上打开了 8080 端口,我在你的 sg 中看不到它。我认为你可以在你的 sg 中添加你的源 sg-id。
  • 天啊,你是对的!大声笑非常感谢!!!!!!!请张贴询问答案:D

标签: amazon-web-services amazon-ecs amazon-elb amazon-vpc


【解决方案1】:

您需要在您的安全组中允许端口 8080。您可以在安全组中使用您的 sg-id。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-06-07
    • 2021-11-15
    • 1970-01-01
    • 2015-05-25
    • 1970-01-01
    • 2020-02-12
    • 1970-01-01
    • 2013-08-26
    相关资源
    最近更新 更多