首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Amazon服务器体系结构的重新设计

Amazon服务器体系结构的重新设计
EN

Stack Overflow用户
提问于 2012-09-08 07:33:14
回答 5查看 2.1K关注 0票数 0

我们目前的项目架构如下。有两个amazon实例。它们都安装了Ubuntu10.10。

实例1:(m1.large) -- --此实例安装了Php和MySql。它包含主网站+ API (在Php中开发)+数据库(MySql)

实例2:(t1.micro) -- --这个实例安装了Php和MySql。它包含一个Javascript。

客户机-服务器交互:在客户端,有一个JS代码块,它在客户端加载实例2的JS文件。此JS文件创建请求并将其发送到实例1上的API。实例1上的API生成响应并将其发送给客户端。

例如,有每周运行的cron进程,即每周日5至6小时左右。

实例1上的最大CPU利用率约为80%,周日当cron被设置为运行时,它将超过95%。在主实例上,平均每天的请求计数约为225 K。

代码语言:javascript
复制
**There is no issue on instance 2 of CPU utilization.Size of database is 7.5 GB**

需要新的体系结构:我们可以看到,在当前的体系结构中,利用率很高。如果我们想要服务更多的请求,这种架构是不有效的。随着客户端数量的增加,服务器上的请求数量和数据库大小也会增加。

你能建议一下新的建筑设计吗?我们还计划将数据库从MySql更改为MongoDB。另外,将数据库与实例1分开。这是一个正确的决定吗?

请您推荐一下我们可以为新架构实现的新技术,如Memcached、nginx等。

谢谢。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2012-09-11 19:00:04

这里有一个指向亚马逊的参考体系结构的链接,可能会有所帮助:

简而言之:

  • 将基础设施划分为多个层次(Web、App、Data)
  • 使用自动缩放组随着流量的增加/减少而向上/向下旋转。
  • 为实现高可用性,将层划分为可用性区域
  • 使用CloudFront托管速度敏感项的静态图像/javascript/等
票数 5
EN

Stack Overflow用户

发布于 2012-09-08 09:39:14

这是一个非常普遍的问题,但以下是一些需要考虑的问题:

  • 把你的数据库从应用服务器上拿出来。您可以将亚马逊RDS用于亚马逊托管的MySQL实例。
  • 尝试为静态资源使用单独的for服务器。nginx将是一个很好的选择。
  • nginx还可以充当前端代理,将动态PHP请求转发到后端服务器。
  • 此选项还为您提供了更容易的可伸缩性。如果您需要额外的计算能力,只需添加更多后端PHP服务器,将它们添加到nginx配置中,您就完成了。
  • 在应用程序中,尝试使用连接到memcache的透明缓存层(可能应该安装在另一个实例上)。如果在缓存中找不到结果,则构建结果(例如通过查询数据库)并将其存储在缓存中。以后的请求可以使用缓存的结果。
票数 0
EN

Stack Overflow用户

发布于 2012-09-09 07:35:56

好吧,下面是几件你可能需要考虑的事情:

  1. 你需要知道你得到了多少个连续的最大请求,而不是一天的平均请求。您可以通过在apache.conf中设置(在一定程度上限制)和增加ec2实例的配置/使用自动标号来改进和测试处理为apache的连续请求的数量。而且,由于周日的cron作业,您的cpu利用率正在上升,因此对cpu进行自动标度是可行的。
  2. 您可以考虑使用Cloudfront,它可以提高性能(如检索时间),并使应用程序高度可用。
  3. 如果您计划迁移到MongoDb,您将无法使用RDS。如果坚持使用Mysql,则应该使用RDS。
  4. 在考虑memcache时,尝试在应用程序级别和数据库级别实现缓存,因为memcache可能会给您带来一些差异。
  5. Nginx是提供静态内容的一个很好的选择,并且可以充当一个好的代理服务器。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12328937

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档