我在 AWS Elastic Container Service 上有几个 next.js 应用程序。
我使用 CodePipeline 来自动化 CI/CD 过程(来源是 Github,构建步骤是 CodeBuild)。除了“部署”步骤花费太多时间(大约 10 分钟)之外,一切都运行良好。我在 AWS ECR 上托管 docker 映像。
我已经尝试过的:
您知道是什么原因造成的吗?我通常使用 Heroku,但不幸的是我需要托管一个套接字 web-api,并且我需要它位于同一台机器上以获得更好的性能。
加速 Amazon ECS 容器部署 是改善 ECS 部署时间的不错指南。
有几种方法可以改善这一点,其中一些您已经尝试过:
从您的日志来看,您可能会从上面的 4) 和 5) 中受益:似乎新任务正在启动,但在大约 1 分钟后被标记为不健康并停止/取消注册。 1 分钟是默认 Fargate
healthCheckGracePeriod
。 (不确定基于 EC2 的服务是什么。)
要查看这是否确实是您的问题,您可以查看 AWS 上的 ECS 控制台中的服务部署,并查看“失败计数”:
如果您的任务在启动时失败,您可能会在此处看到一些非零数字。