Cludex|AWS 雲端成本黑洞偵測器 Cludex
Cost Holes / Networking

成本黑洞:NAT Gateway

NAT Gateway 很像你辦了一張「出國用的信用卡」:平常看起來沒什麼,刷起來才發現它是用另外一套方式在算。 你原本只是想讓 private subnet 裡的服務能出網更新、打 API、拉套件;結果流量一放大,NAT 就變成帳單上最醒目的那一行。 這頁把 NAT 當成一個專題,讓你用幾個固定角度把問題拆清楚:你怎麼察覺、錢怎麼來、常見來源在哪、接下來怎麼處理。

NAT Gateway cost hole illustration

1) 症狀:你通常會先看到什麼

NAT 黑洞很少是「今天突然冒出來」,更多是「它一直在,只是你今天才注意到」。 常見的症狀像這樣:

  • 帳單裡 NAT 相關費用(或 Data Transfer)變得很顯眼,但你覺得系統沒做什麼特別的事。
  • 你的服務在 private subnet,近期上新功能或改部署後,月費突然多一截。
  • 某個服務開始大量打第三方 API、或在背景做同步/爬取,結果成本跟著飆。
  • 你把容器化、CI/CD、或自動更新導入後,NAT 費用開始固定存在。

2) 為何會花錢:NAT 不是「免費的路」,它是有成本的出口

NAT Gateway 的定位很直白:private subnet 的資源想出網,就得經過它。 你可以把它想成公司網路的唯一出口:大家都走同一個門,就會留下清楚的「流量帳」。 最容易忽略的點是:很多你以為很小的日常行為,累積起來其實很可觀。

典型場景: container 拉映像檔、OS/套件更新、SDK 預設呼叫外部 endpoint、上傳 log、定時同步資料、 甚至 worker 重試機制(不小心)把請求放大十倍。 你以為是功能在跑,帳單看到的是出網在跑。

3) 常見來源:NAT 的流量通常從哪裡來

(A)更新與拉取:映像檔/套件/OS 更新

這類很常見也很容易被當成「正常」。你 deploy 的頻率越高、你跑的節點越多、你的 image 越大, NAT 的出網就越像固定支出。最麻煩的是:它看起來都很合理,直到你開始覺得「好像太多了」。

(B)第三方 API:支付、地圖、訊息、追蹤、AI 服務

只要你的後端在 private subnet,而你又需要打外部 API,NAT 幾乎跑不掉。 有些服務還會在背景做大量 request(例如同步、批次查詢、重試),用量一放大,NAT 就會先有感。

(C)log/metrics 外送:看起來很小,但很持久

監控與 log 是必要的,但外送路徑如果都走 NAT,且訊息量又大(例如高流量 web、或 verbose logging), 你可能會在某個月突然發現:你在為「送 log 出去」付了一筆你沒預期的費用。

(D)背景工作與重試:成本放大器

NAT 黑洞常常跟「重試」綁在一起:某個 job 打外部 API 失敗,重試策略設得太兇, 或 queue backlog 造成短時間爆量。你看到的是延遲與錯誤率,帳單看到的是出網爆量。

4) 工具能提供什麼:掃描輸出會怎麼幫你縮小範圍

NAT 成本最難的不是「它是不是黑洞」,而是「到底誰在用」。 手動查通常會變成一場對工程師耐心的考驗:你得一個一個猜、再一個一個驗證。 掃描輸出會把可疑的 NAT 相關成本來源用一致格式列出來,讓你更快進到下一步:

  • 把 NAT/出網相關的可疑成本列成清單(讓你先抓 top 幾個)
  • 提示可能涉及的網路路徑/環境型態(例如 private subnet 出網、跨 AZ 路徑)
  • 給你下一步處理方向(先查誰在出網、先查哪段在放大)

5) 下一步:降費方向(不一定要大改架構)

NAT 的降費通常不是「把 NAT 拔掉」,而是把出網行為整理乾淨: 你要的是讓 NAT 只處理必要流量,而不是讓所有日常雜訊都通過同一個門。

你可以先從這些最常見、也最不痛的方向開始:
  • 先找最大頭的出網來源(通常是映像檔/更新、第三方 API、或重試放大)。
  • 把「背景搬運」降下來:log/metrics 不要無限制外送、不要 verbose 到失控。
  • 檢查重試策略與 batch 同步(尤其是外部 API):避免成本被放大。
  • 檢查跨 AZ 路徑:有些 NAT 成本其實是路徑設計造成的「繞路」。
先掃描 NAT 黑洞,抓出最可疑的出網來源
連接 AWS 後只做讀取掃描,不會刪資源、不會改設定。你會更快知道 NAT 的流量主要是「更新/拉取」、「第三方 API」、「log 外送」還是「重試放大」。
免責聲明:此頁為成本結構與排查思路整理,非 AWS 官方定價文件;實際計費依 AWS Billing/Cost Explorer 顯示為準。