mongodb副本与amazon ebs相比如何?

mongodb副本与amazon ebs相比如何?,mongodb,amazon-ec2,amazon-ebs,Mongodb,Amazon Ec2,Amazon Ebs,我是mongodb和amazon ec2的新手。 在我看来,mongo副本的作用是:1/避免数据丢失,2/加快读取和服务速度。 在亚马逊,他们有这种EbS的东西。据我所知,它是一种全局持久性存储,例如dropbox。 那么,如果亚马逊通过EBS抽象出对它的需求,那么是否需要复制品呢? 提前感谢 托马斯让我澄清几件事 如果您习惯于在现有技术中工作,那么EBS本质上就是一个SAN卷。它可以附加到一个实例,但整个实例的IO仍然有限。使用RAID有助于最大化IO,配置的IOPS有助于最大化吞吐量 然而,

我是mongodb和amazon ec2的新手。
在我看来,mongo副本的作用是:1/避免数据丢失,2/加快读取和服务速度。
在亚马逊,他们有这种EbS的东西。据我所知,它是一种全局持久性存储,例如dropbox。
那么,如果亚马逊通过EBS抽象出对它的需求,那么是否需要复制品呢?
提前感谢

托马斯让我澄清几件事

如果您习惯于在现有技术中工作,那么EBS本质上就是一个SAN卷。它可以附加到一个实例,但整个实例的IO仍然有限。使用RAID有助于最大化IO,配置的IOPS有助于最大化吞吐量

然而,理想情况下,使用MongoDB时,您希望有足够的内存,以便在内存中完全访问索引,如果需要访问磁盘,性能会下降


Mongo可以使用副本(主要用于故障切换和复制)(您可以将读取发送到从属服务器,但所有写入操作都需要命中主服务器)和分片(用于分割数据集以提高性能)。即使将EBS用于存储,您仍然需要执行这些操作。

副本不仅用于存储冗余,还用于服务器冗余。如果您的MongoDB服务器(使用EBS卷)突然消失,例如,因为其所在的主机出现故障,会发生什么情况?您需要做一大堆工作,比如克隆一个新实例来替换它,将卷附加到该实例,将流量重新路由到该实例,等等。Mongo的副本集意味着您不必这样做。即使其中一个出现故障,它们也会继续工作,因此基本上没有停机时间

此外,这是一个多层次的冗余。到目前为止,您只能信任EBS—如果AWS有一个bug删除了您的卷,或者使其无法使用很长时间,该怎么办?使用副本集,您甚至可以跨可用性区域复制数据,甚至可以将数据复制到完全不同的云提供商


副本集还允许您从多个节点读取数据,因此理论上,在您从一个实例中最大限度地利用EBS连接后,您可以提高读取吞吐量。

EBS和副本是两个完全不同的东西,在两个完全不同的级别上工作。如果我的数据库中的数据超过一台计算机所能处理的数据,EBS不是解决方案,但我应该使用常规的mongodb分片,只使用amazon服务器进行复制和分片,忘记EBS,对吗?您仍然可能使用EBS。EC2实例上只有两个存储选项:EBS和实例存储。虽然实例存储可以提供更好的性能(特别是在SSD Hi-IO实例上),但您必须仔细设计数据库复制,因为如果实例停止,实例存储将丢失。愚蠢的后续行动:我应该拥有很少的实例和大量1Gb EBS卷,很少的实例拥有1Tb EBS卷,或者有多个1gb EBS卷的大量实例?raid配置中可以使用的卷数量是有限的。根据您的实例大小,它将是4-8个卷。如果要使用raid选项,请使卷足够大,以便为您提供相当大的增长空间。