2012-01-05 64 views
4

我刚开始使用亚马逊EC2,并试图让我的脑海中的数据库应该如何工作。如果我有一个高流量网站,并希望负载平衡多个实例上的流量,我猜这些实例将不得不将数据检索并保存到一个单独的实例,以避免数据在多台计算机上分散。我应该在自己的EC2实例上运行MongoDB吗?

我应该在这种情况下安装和自身的实例上运行的MongoDB,并所有其他实例连接到这个单一的数据存储?或者我应该只在同一个实例上运行mongo和我的http服务器?

很想听听你的一些最佳实践。

回答

4

也许这是没有必要的,而你正在开发,但一旦你去制作你应该这样做。

更重要的是,如果您正在运行生产数据,则可能需要运行a replica set才能备份以防万一发生故障,以免丢失数据并且不会中断服务。

的DB饿了记忆,所以有与其他进程共享它,它是一个坏主意。在应用程序服务器,你可能需要比内存更多的CPU,因此可以使用高CPU实例类型(c.medium,c1.xlarge),并使用高内存类型为你的DB(m2.large等)(高CPU实例是便宜)

此外,从架构的角度,最好是能够从数据库独立扩展应用程序服务器的数量。如果将应用程序服务器和数据库放在同一台计算机上,那么如果稍后必须迁移到其他计算机上,则可能会导致问题。

相关问题