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推薦的架構,把不需要外部訪問的機器放在 private subnet
在透過nat gateway
對外訪問,一方面可以保護比較私密的機器,另一方面也可以提供在私網中EC2 對外連線的能力。
但缺點是可以看到的是在 net gateway啟動時 就需要負擔 每月32.4usd的費用,對於一個小型公司來說也會覺得是一筆不一定要花費的開銷,在使用上可以評估業務場景 在去做架構上的安排。
上圖是 不透過 nat gateway
的做法,直接將EC2 綁定一個ip 在透過 Internet gateway
提供在網際網路進出的需求。