降低 Route 53 上不存在的主機名稱的計費成本

降低 Route 53 上不存在的主機名稱的計費成本

此計費週期已進入 5 天,我的 Route 53 區域已收到針對我最近刪除的特定主機的超過 3300 萬個請求。且相關的 DNS 記錄也被刪除。

我不認為我會因查詢不存在的主機記錄而被計費,但事實上,根據計費儀表板,我是這樣的。自從它被刪除以來,查詢數量增加了一倍。一些初步查詢日誌記錄和調查表明,有客戶端對此已刪除的主機名稱發出了許多冗餘請求。

如果您有興趣,該主機會作為 STUN 協定的開放公用伺服器運行,以引導 WebRTC 和 VOIP 通話。運行這個公共伺服器的計費成本已經失控。所以我將其移至新的 IP 位址和新的主機名稱。我最近了解到其他一些知名的公共服務已將 DNS 位址硬編碼到其程式碼和範例文件中。

今晚,我添加回了一條偽造的 A 和 AAAA 記錄,該記錄解析為 127.0.0.1(或 ::1),TTL 為 4 天。這可能會使任何重複請求的程式碼停止詢問(盡可能多)並將條目緩存在下游 DNS 伺服器中。但過多且冗餘的 DNS 查詢一直是個代價高昂的問題,我一直無法解決。多年來,我一直在處理和緩解對主機服務的 DDOS 攻擊,但我從未了解如何對 Route 53 用戶端發出冗餘請求進行防火牆處理。

理想的解決方案是 Route 53 會簡單地忽略已刪除主機名稱的請求(並且不會為此向我收費)。

我有什麼選擇?

答案1

目前的解決方案不是刪除記錄,而是使用本地主機 IP 位址和很長的 TTL 傳回有效回應,這確實是一種解決方案。

Amazon Route 53 的(目前)官方文檔陳述並建議另一種方法

當 Route 53 回應時對於具有 NXDOMAIN 或 NODATA 回應(否定回應)的 DNS 查詢,您需要以標準查詢的費率付費。(請參閱 Amazon Route 53 定價中的「查詢」)。如果您擔心負面回應的成本:

  • 增加SOA記錄的TTL值(預設為900秒)

  • 增加 SOA 記錄中的最小生存時間 (TTL) 值(預設為 86400 秒(= 24 小時))

這應該會增加來自 Route 53 的 DNS 回應(特定 DNS 記錄不存在)、NXDOMAIN 和/或 NODATA 回應的快取時間(在支援負快取的適當解析器中)。這應該會減少您需要支付費用的請求數量。


SOA 記錄包含以下元素:

最短生存時間 (TTL)。該值有助於定義遞歸解析器應快取來自 Route 53 的以下回應的時間長度:

  • NX域 沒有任何類型的記錄具有 DNS 查詢中指定的名稱,例如 example.com。也沒有 DNS 查詢中指定的名稱的子記錄,例如 zenith.example.com。

  • 沒有數據至少有一筆記錄具有 DNS 查詢中指定的名稱,但這些記錄均不具有 DNS 查詢中指定的類型(例如 A)。

當 DNS 解析器快取 NXDOMAIN 或 NODATA 回應時,稱為負快取。

負緩存的持續時間是以下值中的較小者:

  • 該值 — SOA 記錄中的最小 TTL。在範例中,該值為 86400(一天)。
  • SOA 記錄的 TTL 值。

當 Route 53 回應時對於具有 NXDOMAIN 或 NODATA 回應(否定回應)的 DNS 查詢,您需要以標準查詢的費率付費。(請參閱 Amazon Route 53 定價中的「查詢」)。如果您擔心否定回應的成本,一種選擇是更改 SOA 記錄的 TTL、SOA 記錄中的最小 TTL(此值)或兩者。請注意,增加這些適用於整個託管區域的負面回應的 TTL 可能會產生正面和負面的影響:

相關內容