Auto Scaling and Monitoring — Elastic Load Balancing、CloudWatch、EC2 Auto Scaling。針對 AWS Certified Cloud Practitioner 考試整理重點與常見誤區。

# 10.1 Elastic Load Balancing(ELB)

生活比喻

ELB 像賣場門口的排隊引導員:看到哪個結帳櫃檯人少就把你導過去,而且他會隨時確認每個櫃檯是不是還開著 —— 櫃檯關了就不再把客人往那邊送。

  • 自動把流入的流量分散到多個目標 (EC2、容器、IP 位址), 而且可以跨多個可用區域
  • 健康檢查 (Health Check): 定期偵測目標是否正常, 只把流量送給健康的目標 —— 這是它提升可用性的關鍵機制
  • 本身是受管服務, 具備高可用性且會自動擴展,不需要你操心它的容量
  • 可整合 SSL/TLS 憑證 (搭配 ACM), 在負載平衡器層處理 HTTPS

# 三種負載平衡器

類型運作層級適用情境
Application Load Balancer (ALB)第 7 層 (HTTP/HTTPS)網頁應用;可依 URL 路徑或主機名稱做路由
Network Load Balancer (NLB)第 4 層 (TCP/UDP)需要極高效能、超低延遲、固定 IP 的場景
Gateway Load Balancer (GWLB)第 3 層部署第三方虛擬網路設備 (如防火牆)

考試重點

ALB 與 NLB 的區辨是常考題: 要看 HTTP 內容、依網址路徑分流 → ALB; 要求極致效能、超低延遲、TCP 層 → NLB。另外要記得 ELB 提供的是「高可用」而非「擴展容量」—— 它只負責分流,真正增減機器的是 Auto Scaling。

# 10.2 Amazon CloudWatch

生活比喻

CloudWatch 像汽車的儀表板加上警示燈:隨時顯示車速、油量、水溫 (指標), 油快沒了就亮燈提醒你 (警示), 而且會把行車紀錄存下來 (日誌)。

定義

Amazon CloudWatch:AWS 的監控與可觀測性服務,收集資源與應用程式的指標 (Metrics)日誌 (Logs)事件 (Events), 並可依條件觸發警示 (Alarms) 與自動化動作。

# 核心元件

元件做什麼
Metrics (指標)數值型的監控資料,如 CPU 使用率、網路流量、磁碟讀寫
Alarms (警示)指標超過門檻時觸發動作,如發送通知或啟動 Auto Scaling
Logs (日誌)集中收集與查詢應用程式與系統日誌
Events / EventBridge依系統事件觸發自動化流程
Dashboards (儀表板)把多個指標視覺化在同一個畫面

常見誤區

兩個高頻陷阱。第一,CloudWatch 監控「效能與健康狀態」,CloudTrail 記錄「誰呼叫了什麼 API」—— 這組區辨在 Module 4 出現過,這裡會再考一次。第二, 記憶體使用率不是 EC2 的預設指標,因為那屬於作業系統內部;要監控記憶體必須安裝 CloudWatch Agent。這題常出現在進階題目裡。

# 10.3 Amazon EC2 Auto Scaling

生活比喻

Auto Scaling 像餐廳的彈性排班:中午尖峰時段自動多叫幾個工讀生來,下午冷清就讓人下班。你不用整天養著十個店員在那邊等客人,也不會在客滿時只有兩個人手忙腳亂。

# 核心元件

元件作用
啟動範本 (Launch Template)定義新機器怎麼開:用哪個 AMI、什麼機型、哪個安全群組
Auto Scaling 群組 (ASG)管理一群 EC2, 設定最小值 (Minimum)、期望值 (Desired)、最大值 (Maximum)
擴展政策 (Scaling Policy)依什麼條件增減機器,通常由 CloudWatch 警示觸發

# 擴展政策類型

  • 目標追蹤 (Target Tracking): 設定一個目標值,例如「平均 CPU 維持在 50%」, 系統自動調整 —— 最常用也最簡單
  • 簡單 / 逐步擴展 (Simple / Step Scaling): 依 CloudWatch 警示分級增減特定數量
  • 排程擴展 (Scheduled Scaling): 已知尖峰時段時,依時間表預先擴展
  • 預測性擴展 (Predictive Scaling): 依歷史模式預測未來需求並提前擴展

定義

水平擴展 (Scale Out / In): 增加或減少機器的數量 —— 這是 Auto Scaling 做的事,也是雲端的標準做法。垂直擴展 (Scale Up / Down): 把單一機器換成更大或更小的規格,通常需要重啟。考試提到 Auto Scaling 時指的都是水平擴展。

考試重點

Auto Scaling 帶來三個好處,常直接考: 更好的容錯能力 (自動汰換不健康的執行個體)、更好的可用性 (需求上升時自動增加)、更好的成本管理 (需求下降時自動減少,不用養閒置機器)。另外要記住 Auto Scaling 本身不收費,你只付它開出來的 EC2 資源費用。

# 10.4 三者如何協同運作

這三個服務單獨看都很簡單,但考試最愛考的是它們合起來怎麼運作。一個標準的彈性架構是這樣運轉的:

  1. ELB 接收使用者流量,分散給 Auto Scaling 群組中健康的 EC2
  2. CloudWatch 持續監控這些 EC2 的 CPU 使用率等指標
  3. 當平均 CPU 超過設定門檻,CloudWatch 警示觸發
  4. Auto Scaling 收到訊號,依啟動範本開出新的 EC2 執行個體
  5. 新機器自動註冊到 ELB, 通過健康檢查後開始接收流量
  6. 尖峰過後 CPU 下降,Auto Scaling 自動縮減機器數量以節省成本

考試重點

記住各自的分工,別搞混:ELB 負責「分流」、CloudWatch 負責「看數據並發警報」、Auto Scaling 負責「增減機器」。題目若問「哪個服務負責在流量上升時自動增加 EC2」→ Auto Scaling (不是 ELB); 問「哪個服務確保流量不會送到掛掉的機器」→ ELB 的健康檢查。

# 10.5 服務詞彙速查

名稱一句話定義
ELB把流量分散到多個健康目標的負載平衡服務
ALB第 7 層負載平衡器,可依 URL 路徑路由
NLB第 4 層負載平衡器,極低延遲高效能
Health CheckELB 偵測目標是否健康的機制
CloudWatch監控指標、日誌與事件,可觸發警示
CloudWatch Alarm指標超過門檻時觸發通知或自動化動作
Auto Scaling Group管理一群 EC2, 設定最小 / 期望 / 最大數量
Launch Template定義新執行個體規格的範本
Target Tracking維持某指標在目標值的擴展政策
Scale Out / In水平增加 / 減少機器數量

# 重點回顧

  • ELB 分流並做健康檢查,只把流量送給健康的目標;ALB 走第 7 層 (HTTP),NLB 走第 4 層 (TCP, 超低延遲)。
  • CloudWatch 監控效能與健康 (指標、日誌、警示); 記憶體使用率需另裝 CloudWatch Agent。
  • CloudWatch 看「效能」,CloudTrail 看「誰呼叫了什麼 API」—— 兩者不要混淆。
  • Auto Scaling 做水平擴展,由 ASG 設定最小 / 期望 / 最大值,常用目標追蹤政策;服務本身免費。
  • 三者協同:ELB 分流 → CloudWatch 監控觸發警示 → Auto Scaling 增減機器 → 新機器註冊回 ELB。

# 自我測驗

哪個服務負責在流量上升時自動增加 EC2 執行個體?

答:Amazon EC2 Auto Scaling。 ELB 只負責把流量分散給現有的機器,實際增減機器數量的是 Auto Scaling。

ALB 和 NLB 差在哪裡?

答:ALB 運作在第 7 層 (HTTP/HTTPS), 可依 URL 路徑或主機名稱路由;NLB 運作在第 4 層 (TCP/UDP), 提供極低延遲與極高效能。

CloudWatch 和 CloudTrail 的用途有什麼不同?

答:CloudWatch 監控資源的效能與健康狀態 (指標、日誌、警示);CloudTrail 記錄帳戶內誰在何時呼叫了哪個 API, 用於稽核。

EC2 的記憶體使用率可以直接從 CloudWatch 預設指標看到嗎?

答:不行。 記憶體使用率屬於作業系統內部資訊,不是預設指標,必須安裝 CloudWatch Agent 才能收集。

Auto Scaling 群組要設定哪三個數量參數?

答:最小值 (Minimum)、期望值 (Desired)、最大值 (Maximum)。 ASG 會維持期望值,並在最小與最大值之間調整。

使用 EC2 Auto Scaling 需要額外付費嗎?

答:不用。 Auto Scaling 服務本身免費,你只需要為它啟動的 EC2 執行個體與相關資源付費。