【问题标题】:AWS Fargate 503 Service Temporarily UnavailableAWS Fargate 503 服务暂时不可用
【发布时间】:2018-09-16 18:25:57
【问题描述】:

我正在尝试使用我找到的 cloudformation 模板将后端应用程序部署到 AWS Fargate。当我使用 docker image training/webapp 时,我能够成功部署它并使用应用程序的网络堆栈中的 externalUrl 进行访问。
当我尝试部署我们的后端映像时,我可以看到堆栈正在正确部署,但是当我尝试转到 externalUrl 时,我得到 503 Service Temporarily Unavailable 并且我看不到它......我注意到的另一件事是在 docker hub 上我可以看到,在 cloudformation 服务运行的时候,一直在不断地拉取镜像……

后端是某种 maven 项目,我不知道具体是什么,但我知道它在本地工作,但要让它使用这个后端图像运行容器大约需要 8 分钟...我不确定是否这会影响 Fargate 吗?任何想法如何让它工作?

【问题讨论】:

  • 嗨 Mugetsu,我和你有同样的问题(同样的日志表明我的端口不健康)。你是怎么解决这个问题的?
  • @lads 嗨,我不知道它是否会对您有很大帮助,但我设法通过事件错误找到了解决方案。 > ecs -> 集群 -> 服务 -> 事件。基本上,我的问题在于已部署映像的运行状况检查。我不得不增加运行状况检查的时间,因为我的映像部署时间有点长,增加大约 30 秒的时间足以让它启动并运行。
  • 谢谢穆月。这也解决了我的问题。
  • @lads 你能提一下参数吗?我遇到了同样的错误。

标签: amazon-web-services aws-sdk amazon-cloudformation aws-fargate


【解决方案1】:

听起来您需要找到您遇到的实际错误,503 信息不足。你能提供一些其他的上下文吗?

我对 Fargate 不熟悉,但今年已经使用了相当多的 ecs,我通常会通过(在仪表板上)转到 ecs -> 集群 -> 服务 -> 事件来发现这一点。事件选项卡提供了关于正在发生的事情的更具体的错误。

我的ecs部署问题一般总结为

  1. 容器未公开与定义中相同的端口,如果您从其他人编写的堆栈进行部署,可能会出现这种情况。
  2. 任务定义内存/cpu 限制没有为应用程序提供足够的空间,并且在放置时遇到问题(可能 ecs 的问题比 fargate 还多,但你永远不知道。)
  3. 您在任务定义中的超时未设置为 8 分钟:see this question, it has a lot of this covered
  4. 任务定义中的启动命令无法按预期与您尝试部署的容器一起使用

如果它连续从 docker hub 拉取,我敢打赌它是 1、3 或 4,它会一遍又一遍地尝试拉取图像。

【讨论】:

  • 这是来自服务事件pasteboard.co/HfOQYpt7.png的一些日志
  • 嘘!当您看到运行状况检查失败时,通常是启动时间过长或端口配置错误。很高兴它成功了。
【解决方案2】:

尝试通过转到 ECS -> 集群 -> 服务 -> 更新网络访问部分来添加 60 个 Health check grace period

【讨论】:

    猜你喜欢
    • 2018-08-18
    • 1970-01-01
    • 1970-01-01
    • 2017-12-09
    • 2011-12-19
    • 2019-12-29
    • 2013-10-31
    • 2021-10-03
    • 2023-04-06
    相关资源
    最近更新 更多