Cludex|AWS 雲端成本黑洞偵測器 Cludex
Guides / EC2 & Ops

EC2 閒置/過度配置怎麼判定:
Idle Detection 與決策框架

很多 EC2 的浪費不是「你多開了一台」,而是「你讓不該跑的東西繼續跑」。 更麻煩的是,閒置不等於 CPU=0:有些機器平常看起來很安靜,但它就是你週一早上會被叫醒的那種關鍵服務。 這篇想做的是把話講白:怎麼判定、怎麼避免誤判、以及你下一步到底該做什麼。

EC2 idle detection illustration
先講一個很常見的錯覺: 看到 CPU 長期很低,就以為這台一定是閒置。 但實務上,CPU 只是其中一個信號,真正要判斷的是「它有沒有被需要」與「它的規格是不是太大」。

1) 先把「閒置」跟「過度配置」分清楚

這兩件事差很多:閒置是「幾乎沒人用、也沒有明確任務」,過度配置是「有人用,但用不到這麼大」。 你不把它分開,後面的動作很容易做錯——該關的你不敢關,該縮的你去亂砍。

  • 閒置(Idle):像是 PoC 伺服器、短期專案結束後忘記下架、或舊版本遺留。
  • 過度配置(Over-provisioned):像是當初為了「保險」選了大一級,結果一年都沒碰到峰值。

2) 判定信號:不要只看一張 CPU 圖

最省事的方式是:先用少數幾個指標交叉驗證。你不需要把監控系統變成論文, 但至少要能回答:「它真的閒置嗎?還是只是工作型態比較特殊?」

(A)CPU / Network / Disk 的「同時很低」

CPU 很低不稀奇,很多服務就是 I/O 或網路型。真正比較有信心的閒置判定,通常是: CPU 長期低、Network In/Out 也低、Disk Read/Write 也低——三者一起低,才像是「真的沒人在用」。

(B)時間視窗要拉長:至少看一個完整週期

你只看三天,很容易被騙。很多公司週末沒有流量、月底有 batch、週一早上有報表。 至少看 2~4 週的 pattern,比看「某個安靜的晚上」可靠太多。

(C)看「它到底在跑什麼」:標籤、owner、用途描述

成本優化真正的阻力通常不是技術,是「沒人敢動」。原因也很現實:不知道這台是誰的、幹嘛用的、動了會不會出事。 所以判定閒置時,資源的標籤品質(owner / env / service)反而是關鍵。

3) 常見誤判:你以為閒置,其實它在做「你不會每天看到的工作」

最常見的誤判有兩類:一種是排程型工作(crontab / batch / ETL),平常很安靜但特定時間會吃滿; 另一種是「熱備援」或「故障切換」用途,平常低負載是正常的。

Checklist(避免誤判,先問這些):
  • 它是不是排程型工作?(半夜跑、月底跑、週一跑)
  • 它是不是故障切換/備援?(平常低是設計如此)
  • 有沒有掛在某個 ASG/ELB 後面?(不要只看單台)
  • 它是不是跳板機、VPN、或內網工具?(用量低但必要)
  • 它的 EBS/Elastic IP/安全群組有沒有被其他東西依賴?(關機前先釐清依賴)

4) 決策框架:關、縮、換、買(按風險與投報率)

我比較喜歡把行動選項壓成四種,這樣你跟同事討論時不會陷入無止盡的細節。 你只要決定:這台應該「關掉」、還是「縮小」、還是「換類型」、或是「長期承諾買更便宜」。

(A)關掉(Stop/Terminate):最直接、但要最小心

如果你真的高度懷疑它閒置,最保守的做法是先 Stop 一段時間觀察(例如一週), 看有沒有人喊痛。很多「沒人敢動」的機器,停了也沒人發現,那答案其實就很明顯了。

(B)縮小(Right-size):風險通常比你想像低

對於大多數過度配置,縮小一級(或改成 burstable)往往是最划算的第一步。 你不用一次縮到極限,先縮一級、觀察一週,再縮第二級,通常比一次到位安全。

(C)換(換 family / 換部署方式):專治「指標看起來怪怪的」

有些工作就是不吃 CPU、但吃記憶體;或是 I/O 型、需要不同家族。 這種時候你硬縮 vCPU 沒用,反而是換 family(或改用更合適的服務)更有效。

(D)買(Savings Plans / RI):針對「你確定會一直跑」的部分

如果你已經確定某些基礎負載就是會 24/7 跑,那就不要每個月用隨用隨付硬扛。 但前提是:先把閒置清掉、把規格縮到合理,再談承諾,才不會把浪費也一起買進去。

如果你只想快速開一個「可行的省錢清單」: 先把可疑的 idle / over-provisioned 列出來, 然後每台套用上面四個選項之一(關/縮/換/買),你就能在一個下午做出第一版計畫。
先掃描,找出最可疑的閒置/過度配置 EC2
你不需要先手動翻每一台監控圖。先把「最可能省到錢」的候選清單抓出來, 再逐台決策,速度會快很多。
免責聲明:本文為成本優化與排查方法分享,非 AWS 官方文件;實際決策請依服務重要性、RTO/RPO、與團隊風險承受度調整。