具有 XMPP 基础设施的 Amazon EC2

具有 XMPP 基础设施的 Amazon EC2

关于亚马逊的一个新手问题。我想在 Amazon EC2 中安装基于 XMPP 的多个服务器的 ejabberd,可能位于一个集群中,如果可能的话,还带有一个负载均衡器。

出现的第一个问题是关于 DNS 的:

我有一个注册域名(例如 example.com),其中 XMPP 服务器实例是 xmpp1.example.com、xmpp2.example.com 等等...

阅读Amazon EC2的技术文档时,我看到其中说,所有在EC2中运行的实例都会有一个外部的DNS名称和一个内部的DNS名称,但据我所知,这不必与xmpp1.example,com等一致...此外,文档坚持认为这些值不能更改。

此外,XMPP 需要反向解析,而 Amazon 的文档坚持认为反向查找将始终导致实例 Amazon 的外部 DNS 名称。这是正确的吗?

那么有什么解决方案呢?如何链接在 Amazon EC2 DNS 名称上运行的实例?我需要两个反向区域,就像反向区域一样?此外,我如何包含 SRV 记录?

我也看到网上有弹性固定 IP 地址的概念。是否有可能的解决方案,例如,为负载均衡器配备两个 IP,并且可以采取一些外部 DNS 来解析 DNS 名称?

无论如何,我对这个基础设施如何解决和满足 XMPP 协议有很多疑问。

答案1

您需要将xmpp主机名指向 EC2 实例,或者使用 CNAME 记录指向 Amazon 的主机名:

xmpp1.example.com.  IN  CNAME   ec2-192-0-2-76.us-west-1.compute.amazonaws.com.

或者直接使用 IP 的 A 记录:

xmpp1.example.com.  IN  A   192.0.2.76

CNAME 方法的优点是,其他查找该名称的 EC2 实例将解析为内部 IP。您的 SRV 记录应与以前相同,并且只需指向xmppN.example.com

如果您不使用弹性 IP,实例每次启动时都会获得不同的 IP。如果每次发生这种情况时更新 DNS 不可行,那么您必须使用弹性 IP。

我从未听说过 XMPP 要求 PTR 记录与正向查找相匹配,这通常只对 SMTP 是必要的。我运行过没有这种情况的 XMPP 服务器,也没有遇到任何问题。如果你真的想要这个,亚马逊确实会让你配置弹性 IP 的反向查找,但这是用于邮件服务器的,因此您可能需要说服他们您需要这个。

相关内容