【问题标题】:Should I be running MongoDB on it's own EC2 instance?我应该在它自己的 EC2 实例上运行 MongoDB 吗?
【发布时间】:2012-02-03 06:17:12
【问题描述】:
我刚刚开始使用 Amazon EC2,并试图了解数据库应该如何工作。如果我有一个高流量站点并且想要在多个实例上负载平衡流量,我猜这些实例将必须检索数据并将其保存到一个单独的实例中,以避免数据在多台机器上分散。
在这种情况下,我是否应该在自己的实例上安装和运行 mongoDB,并让所有其他实例连接到这个单一的数据存储?还是我应该在同一个实例上运行 mongo 和我的 http 服务器?
很想听听您的一些最佳做法。
【问题讨论】:
标签:
mongodb
amazon-ec2
hosting
cloud-hosting
database
【解决方案1】:
也许在您开发时没有必要,但您应该在投入生产后这样做。
更重要的是,如果您正在运行生产数据,您可能希望运行 a replica set 进行备份,以防万一出现故障,以免丢失您的数据,也不会中断您的服务。
数据库需要内存,因此必须与其他进程共享内存是个坏主意。在应用程序服务器上,您可能需要比内存更多的 CPU,因此您可以使用高 CPU 实例类型(c.medium、c1.xlarge)并为您的数据库使用高内存类型(m2.large 等)(高 CPU实例更便宜)
此外,从架构的角度来看,最好能够独立于数据库扩展应用服务器的数量。如果您将应用服务器和数据库放在同一台机器上,那么如果您以后必须迁移到另一台机器上,这可能会导致问题。