tldr:为了在我的 MongoDB 副本集配置中使用弹性 IP,我需要做什么?
我们有一个在 EC2 上运行的三节点 MongoDB 副本集。该集合中的一个实例昨天被 AWS 淘汰,因此我们被迫停止并重新启动 EC2 实例。
不幸的是,当我们第一次配置副本集时,我们对 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这让我觉得我可能需要弄乱实例的主机名和/或主机文件,但我找不到任何人描述我的确切情况。
有什么想法吗?