我应该在它自己的EC2实例上运行MongoDB吗?

时间:2012-01-05 12:07:29

标签: mongodb amazon-ec2 hosting cloud-hosting database

我刚刚开始使用Amazon EC2,并试图了解数据库应该如何工作。如果我有一个高流量站点并希望在多个实例上对流量进行负载平衡,那么我猜这些实例必须检索并将数据保存到单个单独的实例中,以避免数据在多台计算机上碎片化。

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

很想听听您的一些最佳做法。

1 个答案:

答案 0 :(得分:6)

也许在你开发的时候没有必要,但是你应该在你开始制作之后这样做。

更重要的是,如果您正在运行生产数据,可能您希望运行a replica set以便在发生故障时进行备份,以免丢失数据而不中断服务。

数据库渴望内存,所以不得不与其他进程共享它是一个坏主意。在应用程序服务器上,您可能需要比内存更多的CPU,因此您可以使用高CPU实例类型(c.medium,c1.xlarge)并为数据库使用高内存类型(m2.large等)(高CPU)实例更便宜)

此外,从架构的角度来看,最好能够独立于数据库扩展应用服务器的数量。如果您将应用服务器和数据库放在同一台计算机上,如果以后必须迁移到另一台服务器,则可能会出现问题。