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

wil*_*age 5 database hosting amazon-ec2 mongodb cloud-hosting

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

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

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

Khe*_*ben 7

也许你在开发时没有必要,但是一旦你去生产就应该这样做.

更重要的是,如果您正在运行生产数据,可能您希望运行副本集以便在出现故障时进行备份,以免丢失数据而不中断服务.

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

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