具有 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.

或使用A記錄直接取得IP:

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 的反向查找,但這適用於郵件伺服器,因此您可能需要說服他們您需要它。

相關內容