AWS EC2 t2.micro 盒子发送 503 错误

Posted

技术标签:

【中文标题】AWS EC2 t2.micro 盒子发送 503 错误【英文标题】:AWS EC2 t2.micro boxes sending 503 error 【发布时间】:2016-03-31 00:26:15 【问题描述】:

我有一个在通过 ElasticBeanStalk 配置的 t2.micro 盒子上运行的服务。每个盒子上的请求数大约为 100ps,平均响应时间在 100ms 以下。

在高流量期间,一些 http 请求失败并出现 503 错误。

在 cloudwatch 中监控服务时会出现很多这样的峰值。由于错误列在 HTTP 5xxs 而不是 ELB 5xxs (http://docs.aws.amazon.com/ElasticLoadBalancing/latest/DeveloperGuide/elb-cloudwatch-metrics.html) 下,因此从框中删除了流量。这导致我测试盒子上的访问日志。在检查 httpd 访问日志时,我看到很多 503 错误,但在 tomcat 的访问日志中没有一个 503 错误。

有什么办法可以解决这个问题吗?

【问题讨论】:

发生这种情况时,这些服务器上的 CPU 积分是什么样的? 似乎错误出现在 Web 服务器端。你能检查一下httpd服务器加载的静态文件(css、js、图像)是否正确渲染,包括从cdn加载的文件吗? 这通常意味着Tomcat没有足够快地响应Apache。超时可能是 30-60 秒。您可能已经超出了微型实例的容量。一旦积分用完,它们的可用 CPU 资源就会显着下降。 @harshavmb 我没有我提到的服务的任何静态文件。 【参考方案1】:

所有 t2 实例都被认为是可突发的。他们使用信用模型。在空闲时,他们会累积积分(最高上限),而在活动时,他们会使用积分。

一旦它们达到 0,它们就会被限制为非常少的 CPU 资源。

这个错误是由 apache 产生的,因为它等待 Tomcat 超时。可能是由于上述原因。您可以检查您的实例信用等级来确认这一点。

【讨论】:

这些盒子上的平均信用余额一直超过 50。所以我不确定这是否是问题所在。 之前我刚刚监控了过去半个小时。在一段时间内深入研究多天后,我的最低信用余额将为零,因此这可能是一个问题。

以上是关于AWS EC2 t2.micro 盒子发送 503 错误的主要内容,如果未能解决你的问题,请参考以下文章

AWS Config 自定义规则

从 t1.micro 迁移到 t2.micro 亚马逊 AWS

如何使用超时设置解决 AWS ELB/EC2 HTTP 503?

AWS EC2 实例上的 Jenkins 错误 503

在 AWS EC2 ELB SSL 上运行 WordPress 时出现 503 错误

java Java vs Golang AWS t2.micro