首页 > 解决方案 > AWS ECS 中的 Fargate 网络服务器在空闲期后响应时间很长(但有时没有)

问题描述

我在 docker 中打包了一个 R Shiny 应用程序,并将其部署到一个 Fargate 实例上的 AWS ECS,该实例带有一个应用程序负载均衡器,其侦听器持有 SSL 证书。我可以看到该任务正在运行并且运行良好,但是当我在一段时间后转到 URL 时,加载需要整整 30 秒(同样,这不是来自实例启动/配置时间,因为它已经启动并且健康)。然后我可以打开一个新浏览器并转到相同的链接,它会立即加载。这可能是什么原因造成的?老实说,我什至不确定要搜索什么。

注意:当我在本地运行容器时,应用程序确实需要几秒钟才能启动,但这只是在容器最初启动时。无论空闲时间如何,它都会在初始启动时间之后运行得非常快。因此,我不认为它是闪亮的服务器。我上面提到的实例已经在运行,我希望它们会相应地运行。

我阅读了有关负载均衡器空闲超时的信息,但是在结束连接后是否需要 30 秒才能重新连接?对于网络应用程序的内部运作,我不是很有经验,但似乎不太可能。同时,似乎增加空闲超时确实有帮助,但这种行为有点不稳定,因此可能只是确认偏差。

如果需要,我可以提供有关配置的更多详细信息。我只是希望有人可能知道我应该分享哪些细节,而不是分享我的整个 Terraform 目录。

标签: web-applicationsamazon-ecsshiny-serveraws-fargateaws-load-balancer

解决方案


我最终通过注意到我的两个关联子网中只有一个是公共的来解决这个问题。如果您有公共负载均衡器,则需要同时将两个关联的子网都设为公共(如果私有,则为私有......)


推荐阅读