AWS MongoDB EC2实例作为本地主机与EC2应用程序实例

AWS MongoDB EC2实例作为本地主机与EC2应用程序实例,mongodb,amazon-ec2,amazon-web-services,localhost,Mongodb,Amazon Ec2,Amazon Web Services,Localhost,我是AWS的新手。我配置了2个EC2实例 一个用于我的MongoDB数据库,另一个用于我的应用程序 我在用pymongo连接。但如果每次都通过实例发送数据,则会花费太多时间。我想知道是否有可能将mongoDB实例作为ApplicationOne的本地主机,使用组或我不知道的方法,以获得更好的性能 或者,最好将数据库放在与我的应用程序相同的实例上,并获得更多的EBS。请确保您知道性能瓶颈在哪里 如果两个实例位于同一可用性区域,则网络延迟不应是最大的性能问题。事实上,如果你有至少很大的实例。。。由于

我是AWS的新手。我配置了2个EC2实例

一个用于我的MongoDB数据库,另一个用于我的应用程序

我在用pymongo连接。但如果每次都通过实例发送数据,则会花费太多时间。我想知道是否有可能将mongoDB实例作为ApplicationOne的本地主机,使用组或我不知道的方法,以获得更好的性能


或者,最好将数据库放在与我的应用程序相同的实例上,并获得更多的EBS。

请确保您知道性能瓶颈在哪里

如果两个实例位于同一可用性区域,则网络延迟不应是最大的性能问题。事实上,如果你有至少很大的实例。。。由于更好的NIC。。。网络延迟应该不是问题

要确定这一点,请使用监视工具测量您的网络利用率

若您的任何工作集(以任何频率使用的MongoDB文档)无法放入实例的RAM中,则表示您正在接触EBS。与MongoDB所需要的相比,EBS非常非常慢。我最近用一台笔记本电脑测量了一个EBS的音量,发现EBS的速度只有笔记本电脑旋转硬盘的一半

通过引入软件RAID配置,可以显著提高EBS性能


在AWS上运行MongoDB的底线是,您需要足够的RAM来保存您将以任何频率接触的MongoDB文档。

我在生产中有一个应用程序,它在与web服务器相同的机器上使用MongoDB实例。对我来说很好,但是现在我不需要可伸缩性。一个例子就够了

因此,要回答您的问题,请确保可以将其作为本地主机运行


但是,如果你的应用程序启动,并且你需要多个实例或分片等,那么你也必须在其他机器上部署实例。

我并不主张在
localhost
上运行,除非你真的非常确定实例不会开始交换。FourSquare在他们的MongoDB工作集停止在RAM中安装时崩溃了,在实例上运行MongoDB以外的东西只意味着MongoDB可用的内存更少。实例可以开始交换是什么意思?这(交换)不会也发生在一个独立的EC2实例上,其中一个实例承载MongoDB吗?当然,但是如果您也在one box上运行Apache和其他东西,那么您将更早地开始交换。MongoDB非常非常需要内存。哦,你说的是内存交换。出于某种原因,我以为你说的是EC2从你下面改变了你的物理机器。我将尝试对多个EBS进行条带化,看看有什么不同,谢谢!