今天跟同事查一個問題時發現到的小狀況

嚴格說起來算是架構上設計造成的問題

每台EC2的預設DNS解析都是該網段VPC+2

舉例來說 VPC是172.31.0.0/16

那EC2的預設DNS就是 172.31.0.2

如下圖

擷取

基本上不會有任何問題

但是目前就遇到了

公司目前的設計架構,因為不熟悉AWS的設計理念與規劃架構的方式

採用的是類似我前公司的多網段分層設計方式

舉例 會有 10.10.0.0   10.10.1.0  10.10.2.0 10.10.3.0

VPC當然會設計是開10.10.0.0/16

那問題來了,內部的EC2 DNS就會是10.10.0.2

正常的情況都會沒有任何問題才對

偏偏問題就是在於架構是非正規VPC的設計方式

subnet與subnet之間的server連接是透過route table的方式去指定

所以造成 10.10.1.0  10.10.2.0 10.10.3.0網段

全部無法連接到10.10.0.2這台DNS

問題與原因已經不可考了

 

因為這樣子的關係,我查了一下AWS的文件

除了EC2預設的系統自帶的VPC+2以外

可以另外指定AWS專用的內部DNS 169.254.169.253

下圖是範例

擷取

因程式有要求須要透過DNS進行本機端HOSTNAME進行IP解析

但是因上述的狀況造成無法解析的問題

所以設定了AWS的專用DNS進行本機HOSTNAME的解析

結果是成功的~

解決了這種複雜架構的困擾