tldr:为了在MongoDB replicaset配置中使用弹性IP,我需要做些什么?如何在EC2中使用弹性IP配置mongodb复制集?
我们有一个在EC2上运行的三节点MongoDB复制集。其中一个实例昨天被AWS退役,因此我们被迫停止并重新启动EC2实例。
不幸的是,当我们第一次配置replicaset时,我们对AWS来说是相当新的,并且不知道这些实例的公有DNS地址可能会发生变化。我们在复制数据库配置中使用每个实例的公有DNS,并在我们的代码中使用所有应用程序连接字符串。在昨天阅读了该主题后,我尝试通过为实例分配弹性IP并将复制集配置更改为使用该IP来使节点重新联机。在经历了一些痛苦后,我能够获得其他两个节点的备份并以该配置运行,但具有弹性IP的实例拒绝重新加入复制套件,并且mongod.log中的错误为:
[rsStart] replSet info self not present in the repl set configuration
还没有更多阅读,我发现我不应该在配置中使用实际的弹性IP,而是弹性IP的公有DNS名称。我的问题是,在我再次将所有内容全部脱机以尝试此更改之前,为了在复制组配置中使用弹性IP,我需要做些什么?我在这个10Gen页面上发现了一些信息:http://docs.mongodb.org/ecosystem/platforms/amazon-ec2/#communication-across-regions,这让我想我可能需要混淆实例和/或主机文件的主机名,但是我一直无法找到任何描述我的确切场景的人。
有什么想法?
这也解决了内部专用IP,因此您不需要为外部流量收费。 – Zambonilli