Database design LAMP托管在AWS云上-需要重新编写哪些PHP代码?

Database design LAMP托管在AWS云上-需要重新编写哪些PHP代码?,database-design,amazon-ec2,cloud,scalability,yii,Database Design,Amazon Ec2,Cloud,Scalability,Yii,我想在云上托管一个PHP应用程序,以利用随需应变的可伸缩性。我担心如果我的应用程序在Digg/Slashdot/popular博客(希望是所有这些地方)上出现特色,那么我的网站很可能会崩溃。因此,我正在研究*MazonEC2、RackSpace云服务器等。*但我对云架构感到困惑。在基于cPanel的常规共享托管上托管PHP应用程序非常简单。FTP将您的代码上传到public_html目录,您就完成了 但是有了云,我们就有了多台服务器。我的理解是,在云计算中,您可以在负载平衡器后面获得一些VM空间

我想在云上托管一个PHP应用程序,以利用随需应变的可伸缩性。我担心如果我的应用程序在Digg/Slashdot/popular博客(希望是所有这些地方)上出现特色,那么我的网站很可能会崩溃。因此,我正在研究*MazonEC2、RackSpace云服务器等。*但我对云架构感到困惑。在基于cPanel的常规共享托管上托管PHP应用程序非常简单。FTP将您的代码上传到public_html目录,您就完成了

但是有了云,我们就有了多台服务器。我的理解是,在云计算中,您可以在负载平衡器后面获得一些VM空间。当您需要更多资源时,只需配置另一个VM即可。负载平衡器向所有可用资源发送请求。 那么,您如何处理这些事情:

  • 会话管理/会话连续性: 现在,这里最明显的一点是Cloud-Server-1不会注意到Cloud-Server-2上的用户会话。那么,在基于云的托管中如何管理这一点呢?我是否需要重新编写一些处理会话的PHP代码? (我正在考虑在Yii框架中托管一个电子商务PHP脚本)
  • 处理会话的PHP代码是否需要重新编写 是否有一个抽象层来处理它?基本上,我只是 FTP上传应用程序,然后一些抽象层负责 还是我必须重新编写一些代码

  • 数据库扩展:当负载较重时,我想我可以配置Amazon EC2或任何云服务器来自动配置更多服务器。此外,无论如何,拥有多台服务器可能是一个好主意,以提高速度和可靠性。但我不确定这是怎么回事。我的意思是,数据库中的“数据”必须共享

因此,如何维护多个数据库服务器?如果每个数据库都是彼此的实时副本。那么它将如何减少负载呢?我的意思是,如果您在DB1上执行查询,然后在DB2中实时执行此查询(如果不是,DB2中的数据将与DB1不同),那么两个DB将具有相同的负载

我正在考虑的一些云服务器包括:

  • 亚马逊EC2
  • RackSpace云站点
  • RackSpace云服务器
  • PagodaBox(仍处于测试阶段,但不允许使用cron):
  • Go Grid可扩展的网站架构:(虽然这非常昂贵。我希望从一台服务器开始,然后根据需要自动提供额外的web服务器和/或额外的DB服务器来处理负载高峰)
  • 任何提示都将不胜感激


    谢谢

    我与一家托管公司的技术支持人员进行了交谈。他看起来不像一个超级极客,但他给了我一个建议:创建多个web服务器&多个DB服务器。以下是如何:

    • 多个web服务器:他说你应该加载你的 多个服务器上的应用程序。最初启动1台服务器。如果 负载高,启动另一个映像。负载平衡器将 自动开始将查询发送到此网站的新实例 服务器
    • 数据库服务器:创建多个数据库服务器。一位大师和几位大师 奴隶
    他说,您需要重写一些PHP代码,并执行以下操作:

  • 会话处理:他说修改PHP代码,以便将会话存储在“DB”中

  • 数据库相关代码:删除所有“连接”操作。我不确定这是否可以删除所有连接操作。有什么建议吗?在保留“加入”操作的同时,是否无法“扩展”

  • 就这些。真的,是这样吗?或者你认为还有其他事情需要处理吗


    另外,要创建多个DB服务器实例(主从)。只给主人写信。我需要至少有两(2)个数据库服务器在任何时候运行。如果负载不高,我不会无缘无故地为额外的DB服务器付费吗

    首先,Ted Dziuba阅读了有关缩放的内容。然后,继续。是的,让我们假设该网站确实在Digg等网站上有特色,而“可伸缩性”确实是我的问题。另外,假设PHP应用程序是一个供应商应用程序。比如ModernBill、OSCommerce、Magento等,目标用户数=300万独立用户。每月每天25%的活动。虽然这是一个好问题,但对于这个论坛来说可能有点过于广泛。要解决有关会话的一个特定问题,如果您使用的是Yii,您可以使用一个或其他网络存储,使用诸如Redis或类似的应用程序。