在Amazon AWS上重新设计服务器体系结构

nir*_*nir 0 architecture memcached nginx amazon-ec2 amazon-web-services

我们目前的项目架构如下.有2个亚马逊实例.两者都安装了Ubuntu 10.10.

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

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

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

在实例1中,存在每周运行的cron过程,即每个星期日大约5-6小时.

实例1的最大CPU利用率约为80%,而在周日当cron设置为运行时,它会超过95%.主实例每天的平均请求数约为225k.

**There is no issue on instance 2 of CPU utilization.Size of database is 7.5 GB**
Run Code Online (Sandbox Code Playgroud)

需要新架构: 正如我们所看到的,在当前架构中,CPU利用率很高.如果我们想要提供更多请求,那么这种架构效率不高.随着客户端数量的增加,服务器和数据库大小的请求数量也将增加.

能否请您推荐新的架构设计?我们还计划将我们的数据库从MySql更改为MongoDB.另外,将数据库与实例1分开.这是正确的决定吗?

任何人都可以建议我们可以为Memcached,nginx等新架构实现的任何新技术.

谢谢.

Gal*_*llo 5

以下是亚马逊参考架构之一的链接,可能有所帮助:

在此输入图像描述

简而言之:

  • 将您的基础架构拆分为层(Web,App,Data)
  • 当您的流量增加/减少时,使用自动缩放组来旋转/缩小
  • 在可用区之间拆分层以实现高可用性
  • 使用CloudFront托管静态图像/ javascript /等.对速度敏感的物品