VPC 終端節點的 DNS 策略
我的 VPC 在不同的可用區中有三個子網,每個子網都有一個介面 VPC 終端節點。預設情況下,VPC 終端節點有 4 個 DNS 主機名:
- 區域 DNS 主機名,例如
vpce-x.ec2.us-east-1.vpce.amazonaws.com
.- 三個特定於端點的區域 DNS 主機名,例如
vpce-x-us-east-1a.ec2.us-east-1.vpce.amazonaws.com
.據我了解,區域 DNS 主機名將指向任意端點。有沒有辦法配置一個始終解析到同一子網中的端點的單個 DNS 主機名,以減少可用區間的流量?我不確定延遲路由策略是否適用於此案例,或者是否有其他解決方案。還是區域 DNS 主機名已經做了類似的事情?
這裡的案例是一個應用程序,它通過 VPC 實例端點向外部服務發送大量流量 - 以至於數據傳輸會產生大量成本。避免 VPC 端點的可用區間流量將減少一部分數據傳輸成本。
如果您使用區域 DNS 名稱,那麼您正在與該區域通信。從文件:
在您的 VPC 中選擇一個子網以使用介面終端節點。我們在子網中創建一個端點網路介面。端點網路介面被分配一個來自子網 IP 地址範圍的私有 IP 地址,並保留該 IP 地址,直到介面端點被刪除。您可以在不同的可用區(由服務支持)中指定多個子網,以幫助確保您的介面終端節點對可用區故障具有彈性。在這種情況下,我們會在您指定的每個子網中創建一個端點網路介面。
因此,如果您有一個實例在 us-east-1a 中執行,請告訴它使用 east-1a 端點,所有通信都將在 AZ 內。您應該能夠通過使用程式碼中的環境變數、CloudFormation 中的映射或 Parameter Store 查找來更改 DNS 名稱。請記住,這不會對失敗有彈性。
除非您正在執行需要極低延遲的 HPC 事情,或者跨區域傳輸大量數據,否則我只會使用區域(例如 us-east-1)名稱。我的期望是它會使用一些明智的東西。
您可以通過執行一些操作
host REGIONALDNS
並檢查它返回給您的 IP 並與區域結果進行比較來進行驗證。