需要一些关于部署的build议

所以我即将开始部署一个复杂的基础设施作为几个高stream量站点的主机环境。 我将使用ec2作为AWS的服务器和其他不同的服务。 请看看我的图表,给我一些build议。 AWS基础架构图

关于这个部署的事实:

  1. 托pipe在这些机器上将主要是LAMP或LNMP(以及M在DB服务器中)的堆栈。
  2. 计划使用GlusterFS来确保所有节点具有相同的负载均衡器信息。
  3. 打算在所有的节点上使用Ubuntu,但也对CentOS感到满意。
  4. 使用不同价格的现货实例进行自动缩放。
  5. 最终将转移到厨师或木偶pipe理所有这一切,但我不知道如何使用它呢。
  6. 将使用nginx作为代理或唯一的虚拟主机。
  7. 计划使用一个小实例作为主要实例,一个微小实例作为次要节点。 点和自动缩放的要求。
  8. 我没有照片,但我打算在每个节点上使用复制的EBS卷

我有一些问题:

  1. 您在我的设置中看到的任何问题?
  2. 我应该运行/设置不同的组件和软件的顺序是什么?
  3. 你是否认为这个小实例太小了,如果我考虑这个部署(意思是这太复杂了,我应该提高服务器的性能)呢? 基本上,我只是想总是有服务器备份来处理负载等,我想我可以节省一些钱集群。
  4. 还有其他build议吗?

我非常感谢所有的反馈。

编辑:我刚刚发现这个图,是类似于我的亚马逊本身(我想我模仿了类似的东西)。 AWS图

这里唯一突出的是glusterFS的使用 – 你真的打算将应用程序数据(而不仅仅是静态内容和代码)存储为文件吗? 如果不是的话,只是复制部署文件(rsync,统一或只是一个直接的VC签出)将解决问题,而没有与集群文件系统相关的问题。 虽然EBS确实简化了这一点,但它仍然成为系统的瓶颈。

OTOH,如果你真的存储应用程序的数据文件….然后怎么???! PHP没有像这样的设置上的并发访问所需的复杂的锁pipe理工具。

你build议处理多lessstream量?

设置看起来很好,除了有很多地方我想你可能会假设。

使用configuration。 MGMT。 像Puppet / Chef这样的工具从一开始就构build出您的基础架构。

正如@symcbean所问,你真的不需要GlusterFS来快速同步所有的应用程序文件。 configuration。 MGMT。 像厨师,木偶等工具可以在几秒钟内设置完整的应用程序的副本。

你真的不应该决定你想要什么types的实例。 部署应用程序,然后运行一些性能testing,并查看它是如何响应的,根据这些性能testing,您可能需要迁移到更高的实例types。

请记住,您应该跨多个可用区域(数据中​​心的亚马逊术语)来扩展冗余。 使用像ELB这样的负载均衡器,这对于区域故障是有弹性的。