AWS NAT Gateway 和 Internet gateway 區別 及 AWS best practice 作法

NAT Gateway :

  • 允許私有子網*(private subnet)訪問公共網路。
  • 只出不進 提供ec2能對外請求資源,但外部無法訪問EC2。
  • 出站管理 使用單一個elastic ip,進行所有出站管理。
  • 支持ipv4及ipv6。
  • 啟用時需要費用依照不同地區 計費不同以新加坡為例
    計費:0.045usd/hr (一個月約32.4usd)
    流量費:0.045usd/GB

*註 在私有子網中的ec2 是沒有ip的所以無法和公共網路交互。

Internet gateway (IGW) :

允許VPC的資源能在公共網路中進行雙向溝通,充當VPC和網路的橋樑。

  • 讓VPC中擁有elastic ip 的EC2 可以對外交互訪問。
  • 支持ipv4及ipv6。
  • 本身不提供防火牆功能,但提供安全組(Security Group) 和 網路ACL(訪問控制列表) 控制進出VPC的流量
  • 僅使用的流量費。
特性 NAT Gateway Internet Gateway
主要用途 允許私有子網路中的資源存取網際網路 允許 VPC 中的資源與網際網路雙向通訊
通訊方向* 主要用於出站通訊 支援入站與出站通訊
IP 位址 使用彈性 IP 位址 不需要專用 IP 位址
子網路類型* 用於私人子網路 用於公用子網路
安全性 提高安全性,隱藏私人 IP 直接暴露公用 IP 到網際網路
可擴展性 自動擴展,支援高頻寬 高度可擴展,無需配置
高可用性 在可用區層級冗餘 預設高可用,無單點故障
管理 託管服務,易於維護 完全託管,無需維護
成本 按小時和資料處理收費 建立和附加免費,僅收取資料傳輸費用
IPv6 支援 支援(在某些區域) 完全支援
VPC 關聯* 可在多個子網路中使用 一個 IGW 只能關聯一個 VPC
狀態 有狀態服務 無狀態服務
路由設定 需要在路由表中設定 需要在路由表中設定預設路由
監控 可透過 CloudWatch 監控 可透過 CloudWatch 監控
使用場景 資料庫伺服器、應用程式伺服器 Web 伺服器、負載平衡器


一些些使用心得:

如果資源不敏感 可以考慮直接放在 public subnet 例如 webServer,不透過gateway綁定一個ip即可。

但如果資源比較敏感的類型且需要上網的能力外部無法連入主機,則可以考慮使用nat gateway 。

AWS Best practice

上圖是AWS推薦的架構,把不需要外部訪問的機器放在 private subnet 在透過nat gateway 對外訪問,一方面可以保護比較私密的機器,另一方面也可以提供在私網中EC2 對外連線的能力。

但缺點是可以看到的是在 net gateway啟動時 就需要負擔 每月32.4usd的費用,對於一個小型公司來說也會覺得是一筆不一定要花費的開銷,在使用上可以評估業務場景 在去做架構上的安排。

上圖是 不透過 nat gateway 的做法,直接將EC2 綁定一個ip 在透過 Internet gateway 提供在網際網路進出的需求。