
AWS 上的 VPC 指南的場景 2 (這裡)展示如何設定公有和私有子網路。去引用:
如果您想要執行面向公眾的 Web 應用程序,同時維護不可公開存取的後端伺服器,我們建議您使用此方案。一個常見的範例是多層網站,其中 Web 伺服器位於公用子網路中,資料庫伺服器位於私人子網路中。您可以設定安全性和路由,以便 Web 伺服器可以與資料庫伺服器進行通訊。
據我了解,透過路由表的設置,VPC內的所有子網路都可以相互通訊。因此,如果目的是安全,為了不允許外部流量進入後端伺服器(例如資料庫),為什麼不將伺服器放在公共子網路上,而不為其分配公共 IP?這樣,就保證了相同的功能:它不能從外部訪問,但可以與所有其他伺服器通訊。有什麼不同?
答案1
將伺服器放置在公共子網路中但沒有公共 IP 將阻止該節點與外界通訊 - 它不會有公共 IP 並且不會有到 NAT 網關的路由。這包括非 VPC 端點 AWS 服務或 API。通常最終所有節點都需要某種外部訪問,因此將節點放置在私有子網路中有助於解決此問題。
它還可以防止某人意外(或故意)將 EIP 或安全群組新增至節點,從而將私有節點變成公用節點。