Logo

新人日誌

首頁關於我部落格

新人日誌

Logo

網站會不定期發佈技術筆記、職場心得相關的內容,歡迎關注本站!

網站
首頁關於我部落格
部落格
分類系列文

© 新人日誌. All rights reserved. 2020-present.

本文為「AWS CloudWatch」系列第 1 篇

初學者入門: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 資料讀取消耗量
代表什麼?虛擬機的 CPU 使用率
代表什麼?Lambda 函式的執行次數
代表什麼?API Gateway 回傳錯誤的次數
代表什麼?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 提供了強大的觀察能力,但真正發揮價值的關鍵在於:「怎麼用」。

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

  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 Alarm 發送 Email、簡訊、Webhook,實現即時通知
整合方式與應用Alarm 或 Log 出現條件後自動執行函式,如重啟服務、修復錯誤、傳送報表
整合方式與應用根據 CPU 或流量指標自動增加/減少 EC2 實例,達成負載彈性調整
整合方式與應用CloudWatch Logs 可設定儲存到 S3 進行歸檔,方便日後分析或符合法規要求
整合方式與應用使用 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 上傳的自訂資料每個指標、每月以儲存時間計費
說明預設由 AWS 服務自動上報,例如 EC2 CPU 使用率
收費方式前 10 個每月免費,之後依個數計費
說明1 秒為單位的指標,適合需要更即時數據(預設是 1 分鐘)
收費方式單價較高,依使用時間與資料點數計費
說明使用者透過 Agent 或 API 上傳的自訂資料
收費方式每個指標、每月以儲存時間計費

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

Logs(日誌)費用

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

項目說明計價方式
儲存容量儲存在 CloudWatch 的日誌總大小以 GB 為單位按月計費
寫入資料量上傳的日誌資料大小每 GB 寫入量計費
查詢次數與查詢資料量使用 Logs Insights 查詢時讀取的資料量每 GB 查詢資料量計費
說明儲存在 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 訊息另計費,依通知次數與方式收費(簡訊較貴)
收費依據每月每個 Alarm 約 $0.10 美元
收費依據每月每個 Alarm 約 $0.30 美元
收費依據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 系統加上一雙全天候的眼睛。

下一篇初學者指南:認識 AWS CloudWatch 日誌群組(Log Groups)
目前還沒有留言,成為第一個留言的人吧!

發表留言

留言將在審核後顯示。

架構

目錄

  • CloudWatch 是什麼?
  • 四大核心功能介紹
  • 監控指標(Metrics)
  • 記錄日誌(Logs)
  • 觸發警示(Alarms)
  • 可視化儀表板(Dashboards)
  • CloudWatch 怎麼使用?
  • 基本操作流程(適合初學者)
  • 開發者常見應用(程式化整合與進階操作)
  • CloudWatch 與其他 AWS 工具的整合
  • CloudWatch 的費用怎麼算?
  • Metrics(指標)費用
  • Logs(日誌)費用
  • Dashboards(儀表板)費用
  • Alarms(警示)費用
  • ✅ 免費額度(AWS Free Tier)
  • 總結:為什麼 CloudWatch 是你不可或缺的工具?