如何运行现场MongoDB EC2实例

MongoDB是一个开源文档数据库提供高性能、高可用性和自动缩放。MongoDB不再需要一个对象关系映射(ORM)促进发展。

MongoDB目前列为# 5身后的世界上最受欢迎的DBMSPostgreSQL,该软件、MySQL和Oracle。

在这篇文章中,我们将讨论如何利用Spotinst的Elastigroup MongoDB计算成本减少80%在不影响可用性、性能和用户体验。

MongoDB副本集容错是如何运作的吗

为了提供容错,MongoDB允许创建副本集这是,本质上MongoDB服务器集群实现主从复制和自动故障转移。

在副本集,所有写操作去设置的主,谁操作在主节点上的操作日志记录。二级成员不断复制操作日志和操作适用于在一个异步的过程。

image3

如果主实例失败,副本集成员正试图组建一个多数,然后选出一个新的主要设置,多数是强制选择一个新的主要保存副本集作为一个整体的完整性。

在情况下,群体不满意(没有多数),通过二级实例数据仍然是可读的,但不能让写操作。

容错表

#成员 #需要多数 #容错
3 2 1
5 3 2
6 4 2

插图

image4

另一个例子

image6

请参阅MongoDB文档以了解更多关于副本集和如何配置:

https://docs.mongodb.com/manual/replication/

https://docs.mongodb.com/manual/tutorial/deploy-replica-set/

实例的重要性分布在可用性区域(数据中心)

为了保护数据的可用性区域失败,实例应该分布在多个可用性区域如果可能的话,使用一个奇数的可用性区域,并选择一个分布的成员即使有损失的可能性最大化一个可用性区域,其余副本集成员可以形成多数。

MongoDB和现货实例

现货实例不是第一件事想到的在设计MongoDB集群时,
其动态特性和他们可以在2分钟内终止通知,很难维持一个稳定的环境——这Elastigroup发挥作用的地方。

Elastigroup允许100%的可用性服务的EC现货市场,通过选择合适的收购,历史和实时数据分析选择现货实例提供最低价格和最高寿命。使用预测算法,现货市场的变化确定提前15分钟并更换无缝地触发,没有服务中断。
Elastigroup还可以跨可用性区域分配实例和实例类型减轻网络划分问题。

注意:当需要选举直到新的主要当选,副本集停止接受请求。最小化的主要替代品,最好的做法是至少1按需运行实例并设置其优先考虑的初选到1000。

了解更多关于成员优先级:

https://docs.mongodb.com/v3.0/tutorial/adjust-replica-set-member-priority/

保留数据量

在运行MongoDB集群时,重要的是要保存数据,当数据丢失将发起一个“重建”的过程和数据同步。这个过程可能需要一些时间(取决于数据的量),也可以是相当昂贵的,如果数据复制在可用性区域。在重建的时候,用户可能经历表现不好是因为读的原因,至少有一个副本不是可查询。

作为状态特征的一部分,Elastigroup允许保留机器的数据量,任何EBS卷附加到实例将连续快照在机器运行时,将使用的块设备映射配置替换。

image5image1

配置

如果你预先配置的副本集,使用以下步骤运行MongoDB集群Spotinst Elastigroup

  1. 登录到Spotinst控制台
  2. 单击Elastigroups
  3. 创建/编辑相关Elastigroup
  4. 在“计算”找到并展开“有状态”部分
  5. 检查“持久化根卷”选项
    • 选择“保持根卷”
  6. 检查保存数据量的选择
    • 选择“热EBS迁移”
    • 添加你想要的数量被保留在实例替换
  7. 检查“坚持私有IP”选项

image2

我希望这篇文章能够对您有所帮助,
如果所需的任何问题或指导,请联络我们的客户成功的团队CS@spotinst.com