初學者入門:AWS CloudWatch 完整介紹

更新日期: 2025 年 6 月 10 日

當我們將應用程式、資料庫、EC2、Lambda 等資源部署到 AWS 上時,接下來一件重要的事情就是:

「如何知道它們現在運作得好不好?」

這時候就需要 監控系統

AWS CloudWatch 就是 AWS 官方提供的 雲端監控與觀察服務,能幫你收集數據、顯示圖表、設計警示條件,甚至觸發自動化動作。

不論你是開發者、系統管理員,還是初次接觸 AWS 的工程師,CloudWatch 都是你掌握系統健康狀態的好幫手。

CloudWatch 是什麼?

在雲端時代,資源分散在各種服務與區域之中,如何即時掌握系統狀況、主動發現問題、並迅速做出回應,成為每個開發團隊與企業維運的核心課題。

AWS CloudWatch 正是 AWS 提供的一套整合式觀察平台(Observability Platform),設計用來幫助你:

  • 全面掌握 AWS 上的服務運行狀況
  • 收集應用程式與系統層級的資料
  • 主動發出警示、觸發事件、自動處理問題
  • 分析與可視化各種關鍵數據

CloudWatch 可以搭配大多數 AWS 服務(如 EC2、Lambda、ECS、DynamoDB、API Gateway 等),也能透過安裝 Agent 或 API,收集自訂應用的資料,是 AWS 生態系中不可或缺的一環。

四大核心功能介紹

CloudWatch 的功能可分為以下四大類,每一項都是穩定運營的重要支柱:

監控指標(Metrics)

指標是一種會隨時間變化的數據紀錄,用來反映系統在每個時間點的實際運作狀況。

例如:

指標範例代表什麼?
CPUUtilization虛擬機的 CPU 使用率
InvocationsLambda 函式的執行次數
5XXErrorAPI Gateway 回傳錯誤的次數
ConsumedReadCapacityUnitsDynamoDB 資料讀取消耗量

CloudWatch 自動蒐集許多 AWS 資源的預設指標,也可以讓你上傳自訂指標(Custom Metrics),例如:

  • 使用者登入次數
  • 訂單成立率
  • 程式內記憶體使用量

指標會以時間序列的方式儲存,方便你畫圖、計算平均值、設定警戒線。

記錄日誌(Logs)

除了數值指標,CloudWatch 也支援收集「文字型」的輸出紀錄,稱為 CloudWatch Logs

這些 Logs 可能來自:

  • EC2 主機上的應用程式(搭配 CloudWatch Agent)
  • Lambda 函式執行結果
  • API Gateway 請求與回應紀錄
  • ECS / Fargate 容器的日誌輸出

CloudWatch Logs 可以幫你:

  • 集中儲存所有環境的日誌,方便查詢
  • 依條件過濾與分析(搭配 Logs Insights)
  • 偵測特定字串並觸發警示(例如錯誤代碼、例外訊息)

💡 範例:你可以設一個規則,當日誌出現 ERROR 關鍵字時自動發出通知,減少錯誤漏看風險。

觸發警示(Alarms)

CloudWatch Alarms 是一種條件式觸發機制,當某個指標滿足設定的條件時,CloudWatch 會自動採取行動。

舉例來說:

  • CPU 使用率 > 80% 持續 5 分鐘 → 發送 Email 通知給維運團隊
  • Lambda 錯誤率超過 10% → 自動執行修復函式
  • API Gateway 回傳 5XX 過多 → 增加 ECS Task 數量(搭配 Auto Scaling)

你可以針對任意一個指標設定 Alarm,並透過整合 SNS(Simple Notification Service)Lambda,打造全自動的監控反應機制。

可視化儀表板(Dashboards)

CloudWatch Dashboard 提供圖形化界面,讓你自由選擇要觀察的指標並繪製圖表,支援:

  • 折線圖、柱狀圖、數字卡片等多種樣式
  • 跨服務、跨地區整合在同一頁顯示
  • 自訂儀表板分享給團隊成員做為每日監控首頁

🧩 例如:你可以建立一個「網站健康監控儀表板」,包含 CPU 使用率、流量請求量、錯誤率、登入次數等資訊,隨時觀察整體系統狀況。

CloudWatch 怎麼使用?

從手動操作到自動化整合,全面掌握 CloudWatch 的使用方式

CloudWatch 提供了強大的觀察能力,但真正發揮價值的關鍵在於:「怎麼用」。

這一節會從兩個層面說明:

  1. 初學者可以透過管理控制台完成的基本操作流程
  2. 開發者可應用的 CLI、Agent、Lambda 整合場景

基本操作流程(適合初學者)

1️⃣ 登入 AWS 管理控制台

前往 AWS 官方網站 並登入帳號。

確保選擇了正確的「區域(Region)」,因為 CloudWatch 的資料是區域性的。

2️⃣ 開啟 CloudWatch 服務

在控制台搜尋欄輸入 CloudWatch,點選進入後,你會看到左側選單列出功能分區,例如:

  • Metrics:數值指標
  • Logs:日誌資料
  • Alarms:警示
  • Dashboards:儀表板

3️⃣ 查看預設 Metrics

CloudWatch 會自動監控大多數 AWS 服務的基本指標,例如:

  • EC2 的 CPU 使用率、網路流量
  • Lambda 的執行次數、錯誤率
  • DynamoDB 的讀寫容量與延遲

步驟如下:

  1. 點選左側「Metrics」
  2. 選擇服務類別(如 EC2 → Per-Instance Metrics)
  3. 選取實例 ID → 點進圖表即可查看歷史數據與趨勢

好處:無需額外設定,即可獲得即時與歷史數據,快速掌握系統狀態。

4️⃣ 新增 Alarm(建立自動監控警示)

當你想要在某個指標異常時被通知或執行特定動作,可以建立 Alarm。

舉例來說:EC2 的 CPU 使用率高於 80% 持續 5 分鐘時,發送 Email 警示

設定流程:

  1. 點選「Alarms」→「Create Alarm」
  2. 選擇你要追蹤的 Metrics(如 EC2 的 CPU)
  3. 設定條件(閾值、持續時間)
  4. 選擇通知方式(通常搭配 SNS,需事先建立 Topic)
  5. 儲存並啟用 Alarm

💡 Alarm 是 CloudWatch 主動出擊的核心功能,務必妥善設計條件。

5️⃣ 建立 Dashboard(可視化儀表板)

Dashboard 讓你可以在同一頁面上同時觀察多個指標,適合:

  • 每日系統狀況總覽
  • 向主管報告健康狀態
  • 快速排除障礙時觀察變化趨勢

設定流程:

  1. 點選「Dashboards」→「Create dashboard」
  2. 為儀表板命名
  3. 加入視覺元件(Line graph、Number、Bar 等)
  4. 指定資料來源的 Metrics 與時間範圍
  5. 儲存並分享給團隊

📊 實用建議:可依服務分群(EC2 區塊、Lambda 區塊)配置圖表,讓儀表板有條不紊。

開發者常見應用(程式化整合與進階操作)

CloudWatch 並非只是圖形介面好用,它也非常適合程式控制與自動化部署,以下是幾個常見情境:

✅ 使用 CloudWatch Agent 收集 EC2 自訂指標

EC2 預設僅上傳 CPU、磁碟 IO 等基本指標,若你還想監控「記憶體使用率」、「磁碟空間」、「應用程式指標」等,就需安裝 CloudWatch Agent

操作步驟:

  1. 安裝 Agent(透過 Systems Manager 或 SSH 安裝)
  2. 撰寫 JSON 設定檔(指定要收集的資料)
  3. 啟動 Agent 並上傳資料到 CloudWatch
sudo yum install amazon-cloudwatch-agent
sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-config-wizard
sudo systemctl start amazon-cloudwatch-agent

✅ 搭配 Lambda 處理 Log 與自動化回應

CloudWatch Logs 可以串接 Lambda 函式,自動根據條件觸發:

  • 例:出現「ERROR」關鍵字 → 執行修復 Lambda
  • 例:記錄錯誤資訊 → 自動發送到 Slack、Discord、Teams

可使用 Subscription Filter 把指定的 Log Group 串接 Lambda,實現事件驅動的自動化流程。

✅ 使用 CLI / SDK 查詢與設定

對 DevOps、CI/CD 團隊來說,CloudWatch 提供完整 CLI 與 SDK:

查詢 EC2 CPU 指標:

aws cloudwatch get-metric-statistics \
  --namespace AWS/EC2 \
  --metric-name CPUUtilization \
  --start-time 2025-06-01T00:00:00Z \
  --end-time 2025-06-02T00:00:00Z \
  --period 300 \
  --statistics Average \
  --dimensions Name=InstanceId,Value=i-1234567890abcdef0

透過 AWS CLI 從 CloudWatch 取回某台 EC2 的 CPU 使用率歷史資料,範圍是 2025/06/01 ~ 2025/06/02,每 5 分鐘(300 秒)一筆數據,統計方式是取「平均值」。

自動建立警示:

aws cloudwatch put-metric-alarm \
  --alarm-name HighCPUAlarm \
  --metric-name CPUUtilization \
  --threshold 80 \
  --evaluation-periods 2 \
  --comparison-operator GreaterThanThreshold \
  --statistic Average \
  --period 300 \
  --namespace AWS/EC2 \
  --dimensions Name=InstanceId,Value=i-1234567890abcdef0 \
  --alarm-actions arn:aws:sns:us-east-1:123456789012:NotifyMe

這是在 CloudWatch 上建立一個警示(Alarm),當某台 EC2 的 CPU 使用率 連續兩個 5 分鐘區間都超過 80% 時,就會透過 SNS 發送通知。

CloudWatch 與其他 AWS 工具的整合

CloudWatch 真正的強大,來自它能與其他 AWS 工具形成完整的監控 + 自動回應架構

以下是幾個常見的整合範例:

工具整合方式與應用
SNS (Simple Notification Service)搭配 CloudWatch Alarm 發送 Email、簡訊、Webhook,實現即時通知
LambdaAlarm 或 Log 出現條件後自動執行函式,如重啟服務、修復錯誤、傳送報表
EC2 Auto Scaling根據 CPU 或流量指標自動增加/減少 EC2 實例,達成負載彈性調整
S3CloudWatch Logs 可設定儲存到 S3 進行歸檔,方便日後分析或符合法規要求
Athena使用 Athena + CloudWatch Logs Insights 對日誌進行 SQL 查詢與深入分析

CloudWatch 的費用怎麼算?

理解 CloudWatch 的收費機制,避免意外產生費用

AWS CloudWatch 採用用量計價(pay-as-you-go)的方式收費,也就是你用多少、就付多少。

為了幫助初學者更好理解,我們將其拆解為幾個主要項目說明:

Metrics(指標)費用

CloudWatch 的 Metrics 指標分為兩種:

類型說明收費方式
標準指標(Standard)預設由 AWS 服務自動上報,例如 EC2 CPU 使用率前 10 個每月免費,之後依個數計費
高解析度指標(High-resolution)1 秒為單位的指標,適合需要更即時數據(預設是 1 分鐘)單價較高,依使用時間與資料點數計費
自訂指標(Custom Metrics)使用者透過 Agent 或 API 上傳的自訂資料每個指標、每月以儲存時間計費

📌 小提醒:自訂指標與高解析度 Metrics 很容易超出免費額度,建議初期使用時注意用量。

Logs(日誌)費用

CloudWatch Logs 的計價包含三個部分:

項目說明計價方式
儲存容量儲存在 CloudWatch 的日誌總大小以 GB 為單位按月計費
寫入資料量上傳的日誌資料大小每 GB 寫入量計費
查詢次數與查詢資料量使用 Logs Insights 查詢時讀取的資料量每 GB 查詢資料量計費

✅ 免費額度:每月 5GB 寫入日誌資料5GB 儲存,大多初學者測試時不會超過。

Dashboards(儀表板)費用

  • 每個帳戶可建立 最多 3 個免費的 Dashboard
  • 每個 Dashboard 最多可容納 50 個圖表元件
  • 超過免費配額後,會依 Dashboard 數量收費(每個約 \$3 美元/月)

🧠 建議:將所有關鍵指標集中在一個儀表板中,利用頁籤或區塊分群設計,可延長免費額度使用壽命。

Alarms(警示)費用

CloudWatch Alarms 費用根據類型與次數不同:

類型收費依據
標準警示(1 分鐘級)每月每個 Alarm 約 $0.10 美元
高頻警示(30 秒以下)每月每個 Alarm 約 $0.30 美元
警示通知發送(搭配 SNS)SNS 訊息另計費,依通知次數與方式收費(簡訊較貴)

⚠️ 實務建議:避免建立過多高頻警示或高解析度指標,初期監控可設在 1~5 分鐘級別。

✅ 免費額度(AWS Free Tier)

AWS 提供 CloudWatch 新手免費額度,包括:

  • 每月 10 個自動指標(標準)
  • 每月 5GB 的日誌寫入與儲存
  • 每月 3 個 Dashboard
  • 每月 10 個 Alarm
  • 每月 Logs Insight 查詢 5GB

🎓 對於初學者來說,這些免費額度足以涵蓋學習與小型專案的使用,不用太擔心爆預算。

🔗 更多資訊

CloudWatch 的完整費率請參考 AWS 官方網站:

👉 https://aws.amazon.com/cloudwatch/pricing/

總結:為什麼 CloudWatch 是你不可或缺的工具?

CloudWatch 不只是監控平台,它是你在 AWS 上「系統健檢、自動防衛、資料觀察」的基礎建設。

無論是個人開發者還是企業 DevOps 團隊,都能從中獲得巨大價值:

🔎 📈 即時監控(Metrics)

讓你隨時掌握服務運行狀況,例如 CPU 是否過高、API 是否延遲、訪問量是否異常。

🚨 主動警示(Alarms)

當系統異常時,不用等用戶回報,CloudWatch 會立刻通知你,甚至可以自動觸發修復動作(如 Lambda)。

🤖 🔄 自動化整合(AWS 原生支援)

CloudWatch 可以與 SNS、S3、Auto Scaling、Lambda 等 AWS 工具深度整合,建立一套事件驅動的自我修復架構。

📊 💡 深入分析(Logs Insights)

支援日誌的搜尋與 SQL 查詢,幫助你釐清錯誤發生原因、使用者行為或系統瓶頸。

✅ 初學者也能輕鬆上手

介面友善、預設指標豐富、免費額度充足,適合用來練習與建立第一套觀察系統。

不論你是在做小型專案測試、學習系統觀察概念,或是要維運一個跨區域、高可用性的雲端架構,CloudWatch 都是你不能不學的工具

善用它,等於為你的 AWS 系統加上一雙全天候的眼睛。

Similar Posts