twitter - Amazon Web Service 微型实例 - 服务器崩溃

标签 twitter amazon-web-services crash

我目前正在使用 AWS 微型实例作为允许用户上传照片的网站的 Web 服务器。两个问题:

1) 在查看我的 CloudWatch 指标时,我最近注意到 CPU 峰值,该网站目前收到的流量非常少,但在这些峰值期间变得完全无法使用。这些峰值可能会持续几个小时,并且重置服务器并不能消除峰值。

2) 虽然看似无关,但每当我在 Twitter 上发布我的网站链接时,服务器就会崩溃(即,建立数据库连接时出错)。重新启动 Apache 和 MySQL 后,网站将恢复正常功能。

我唯一的猜测是,该问题在某种程度上是微实例缺陷造成的。不幸的是,当我升级到小型实例时,由于微型实例可以有两个 EC2 计算单元,因此该站点实际上速度较慢。

有什么建议吗?

最佳答案

如果您想继续使用 AWS(微型实例)的免费套餐,您应该尽可能地从 EC2 实例上卸载负载。

我建议您将图像直接上传到 S3,而不是通过 Web 服务器(请参阅此处的一些示例:http://aws.amazon.com/articles/1434)。

S3 还可以用来服务您的大部分网页(图像、js、css...),而不是您的弱 Web 服务器。您还可以将 S3 中的这些文件作为源添加到 Amazon CloudFront (CDN) 分发以提高您的应用程序性能。

另一个可以帮助您减轻工作负担的服务是 SQS(简单队列服务)。您可以将一些请求(例如,上传完成)作为消息发送到 SQS,并让您的阅读器按照自己的节奏处理这些消息,而不是处理用户的在线请求。这是处理因多个用户同时使用您的服务而造成的瞬时负载的好方法。

另一个服务是 DynamoDB(托管 NoSQL DB 服务)。您可以将当前的大部分 MySQL 数据和查询放在 dynamoDB 上。 Amazon DynamoDB 还提供免费套餐供您使用。

通过上述组合,您可以让您的微实例处理剩余的少数动态页面,直到您需要随着您的不断成功而扩展您的服务。

关于twitter - Amazon Web Service 微型实例 - 服务器崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15713233/

相关文章:

java - 在 apache Spark 中使用朴素贝叶斯进行 Twitter 情绪分析

php - PHP 中的初学者数据缓存

python - 在 OS X 上安装 pip

amazon-ec2 - 亚马逊 ec2 的 SPF 记录

android - BadTokenException即使我检查Activity是否为isFinishing()

java - 未选择 fragment 崩溃

Node.js 推特客户端

node.js - 带有 Node.js 的 Twitter 流 API 在请求 : <anonymous> 时出现错误状态代码 401

amazon-web-services - 如何在监听器规则上创建多个条件

ios - 保存图像文件路径时 MagicalRecord 奇怪的崩溃