您使用什么技术来设计和水平扩展 Web 应用程序(在 EC2 中)?

您使用什么技术来设计和水平扩展 Web 应用程序(在 EC2 中)?

具体来说,我正在寻找在云中扩展没有中央数据库服务器的 Web 应用程序的技术,但一般建议都很好。

我遇到过集群文件系统,看起来很棒,但我还不清楚它如何适应 Web 应用程序的架构。我也对此感兴趣。

感谢您的建议和链接。

答案1

我首先会考虑亚马逊的 SimpleDB,因为您已经处于 AWS 生态系统中。但如果没有关于您的应用程序的更多信息,除了“Web 应用程序”之外,很难说。

答案2

您可以使用 Elastic Load Balancinghttp://aws.amazon.com/elasticloadbalancing/对几个 nginex Web 服务器进行负载平衡,然后使用 Thin (http://code.macournoyer.com/thin/) 配置为集群。作为云 DBMS,您可以使用 RDS,这是 Amazon 为 MySql 提供的。您可以使用 AR 会话存储或使用 memchaced 来共享会话。

Thin 是 Ruby 的应用程序服务器,但您可以用 Apache + mod_php、Tomcat 或其他任何服务器替代 Thin。

应用服务器应该安装一个集群文件系统,例如 GlusterFS,您应该将代码放在那里(任何服务器的代码都是相同的)。

然后,使用 Amazon 的命令行工具,您可以配置何时创建服务器新实例,例如当服务器的 CPU 使用率达到 70% 时。

您可以使用 Varnish 进行静态缓存,安装在 Web 服务器的同一实例中或使用它自己的实例(更好)。

有很多解决方案,但最简单的方法是使用 Heroku。

相关内容