首页 > 解决方案 > AWS EC2 实例在长页面加载 30 秒时始终失败

问题描述

我正在使用一个、一个域和一个数据库运行一个ECS实例。这是我限制 IP 访问的内部业务应用程序。EC2application load balancerroute53RDS

我已经运行了这个应用程序 3 周,没有任何问题。但是,如今 Web 应用程序摄取的数据异常庞大。这不是一个错误。由于这个原因,一个网页大约需要 4 分钟才能完成,我在我的本地机器上验证了它完成了。但是,在 AWS 上运行相同的操作每次精确到 30 秒就会失败。

我已将本地计算机上运行的应用程序连接到我的生产RDS数据库,并且能够毫无问题地下载和上传数据。RDS所以db没有问题。此外,同样的功能以前也可以工作,但由于数据量大,今天才失败。

我花了几个小时在亚马逊的支持下解决这个问题,但我们无法弄清楚。我假设它是我正在使用的 AWS 服务的一个设置,它的 aTTLtimeout设置为 30 秒,但我在我正在使用的任何服务中都找不到它:

标签: amazon-web-servicesamazon-ec2amazon-ecs

解决方案


从 NLB 文档中,可能相关

EC2 instances must respond to a new request within 30 seconds in order to establish a return path.

我实际上不知道什么是返回路径,也不知道在这种情况下什么是“响应”,因为 NLB 没有请求或响应的概念。

- https://docs.aws.amazon.com/elasticloadbalancing/latest/network/network-load-balancers.html#connection-idle-timeout

编辑:忽略,这必须与 UDP NATing 有关。这里的“响应”可能是从 EC2 实例返回到客户端的数据包


推荐阅读