初學者入門: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 使用率 |
| Invocations | Lambda 函式的執行次數 |
| 5XXError | API Gateway 回傳錯誤的次數 |
| ConsumedReadCapacityUnits | DynamoDB 資料讀取消耗量 |
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 提供了強大的觀察能力,但真正發揮價值的關鍵在於:「怎麼用」。
這一節會從兩個層面說明:
- 初學者可以透過管理控制台完成的基本操作流程
- 開發者可應用的 CLI、Agent、Lambda 整合場景
基本操作流程(適合初學者)
1️⃣ 登入 AWS 管理控制台
前往 AWS 官方網站 並登入帳號。
確保選擇了正確的「區域(Region)」,因為 CloudWatch 的資料是區域性的。
2️⃣ 開啟 CloudWatch 服務
在控制台搜尋欄輸入 CloudWatch,點選進入後,你會看到左側選單列出功能分區,例如:
- Metrics:數值指標
- Logs:日誌資料
- Alarms:警示
- Dashboards:儀表板
3️⃣ 查看預設 Metrics
CloudWatch 會自動監控大多數 AWS 服務的基本指標,例如:
- EC2 的 CPU 使用率、網路流量
- Lambda 的執行次數、錯誤率
- DynamoDB 的讀寫容量與延遲
步驟如下:
- 點選左側「Metrics」
- 選擇服務類別(如 EC2 → Per-Instance Metrics)
- 選取實例 ID → 點進圖表即可查看歷史數據與趨勢
✅ 好處:無需額外設定,即可獲得即時與歷史數據,快速掌握系統狀態。
4️⃣ 新增 Alarm(建立自動監控警示)
當你想要在某個指標異常時被通知或執行特定動作,可以建立 Alarm。
舉例來說:EC2 的 CPU 使用率高於 80% 持續 5 分鐘時,發送 Email 警示
設定流程:
- 點選「Alarms」→「Create Alarm」
- 選擇你要追蹤的 Metrics(如 EC2 的 CPU)
- 設定條件(閾值、持續時間)
- 選擇通知方式(通常搭配 SNS,需事先建立 Topic)
- 儲存並啟用 Alarm
💡 Alarm 是 CloudWatch 主動出擊的核心功能,務必妥善設計條件。
5️⃣ 建立 Dashboard(可視化儀表板)
Dashboard 讓你可以在同一頁面上同時觀察多個指標,適合:
- 每日系統狀況總覽
- 向主管報告健康狀態
- 快速排除障礙時觀察變化趨勢
設定流程:
- 點選「Dashboards」→「Create dashboard」
- 為儀表板命名
- 加入視覺元件(Line graph、Number、Bar 等)
- 指定資料來源的 Metrics 與時間範圍
- 儲存並分享給團隊
📊 實用建議:可依服務分群(EC2 區塊、Lambda 區塊)配置圖表,讓儀表板有條不紊。
開發者常見應用(程式化整合與進階操作)
CloudWatch 並非只是圖形介面好用,它也非常適合程式控制與自動化部署,以下是幾個常見情境:
✅ 使用 CloudWatch Agent 收集 EC2 自訂指標
EC2 預設僅上傳 CPU、磁碟 IO 等基本指標,若你還想監控「記憶體使用率」、「磁碟空間」、「應用程式指標」等,就需安裝 CloudWatch Agent。
操作步驟:
- 安裝 Agent(透過 Systems Manager 或 SSH 安裝)
- 撰寫 JSON 設定檔(指定要收集的資料)
- 啟動 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,實現即時通知 |
| Lambda | Alarm 或 Log 出現條件後自動執行函式,如重啟服務、修復錯誤、傳送報表 |
| EC2 Auto Scaling | 根據 CPU 或流量指標自動增加/減少 EC2 實例,達成負載彈性調整 |
| S3 | CloudWatch 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 系統加上一雙全天候的眼睛。
