Amazon CloudWatch 是一項 AWS 監控和可視化服務,它能為你在 AWS 上的資源以及你在 AWS 上執行的應用程式提供即時的可視性。它會收集來自你的 AWS 資源、應用程式和服務的監控數據(稱為指標,Metrics),並允許你監控這些指標、設定警報、建立儀表板,以及對特定事件採取自動化行動。
Amazon CloudWatch 的核心概念與功能
CloudWatch 就像你 AWS 雲端環境的「中控室」,它匯集了所有關鍵的營運數據,讓你能夠全面了解你的系統健康狀況和效能。
- 指標 (Metrics):
- 數據點:指標是 CloudWatch 最基本的數據元素,代表在某個時間點的變數數據。例如,EC2 執行個體的 CPU 使用率、S3 儲存桶的請求數、Lambda 函式的錯誤率等。
- 自動收集:許多 AWS 服務會自動將其預設指標發佈到 CloudWatch,你無需額外配置。
- 自訂指標 (Custom Metrics):你也可以發佈自己應用程式的自訂指標到 CloudWatch,例如網站登入次數、應用程式回應時間、特定業務事件等。這讓你能夠監控任何你關心的數據。
- 儀表板 (Dashboards):
- 可視化:你可以建立客製化的儀表板,將多個指標、警報和日誌資料以圖表、數字等形式集中展示。
- 即時監控:儀表板提供你所有關鍵效能指標 (KPIs) 和運營健康狀況的單一視圖。
- 警報 (Alarms):
- 閾值觸發:你可以為任何 CloudWatch 指標設定警報。當指標值超過你設定的閾值時(例如 CPU 使用率連續 5 分鐘超過 80%),警報就會被觸發。
- 通知與行動:警報觸發後,可以發送通知到 Amazon SNS(用於電子郵件、簡訊、Push 通知),或自動執行 AWS Lambda 函式、Auto Scaling 策略(例如自動增加 EC2 執行個體)、甚至停止/終止 EC2 執行個體等自動化行動。
- 日誌 (Logs):
- 集中式日誌管理:Amazon CloudWatch Logs 允許你從 EC2 執行個體、Lambda 函式、CloudTrail、Route 53 等各種來源收集、儲存、監控和分析日誌檔。
- 日誌洞察 (Logs Insights):提供強大的查詢語言,讓你可以快速查詢和分析大量的日誌數據,找出錯誤模式、效能瓶頸或安全事件。
- 日誌訂閱過濾:你可以設定過濾條件,將特定日誌事件串流到 AWS Lambda 或 Amazon Kinesis 等服務進行實時處理。
- 事件 (Events) - 現在通常稱為 Amazon EventBridge:
- 雖然 EventBridge 是獨立的服務,但其核心功能最初是 CloudWatch Events 的延伸和強化。
- 自動化事件響應:CloudWatch Events/EventBridge 允許你響應 AWS 資源的實時事件變化。例如,當 EC2 執行個體狀態改變、S3 物件被上傳、CodePipeline 完成部署等事件發生時,你可以設定規則來自動觸發 Lambda 函式、發送 SNS 通知、啟動 Step Functions 工作流等。
- 排程事件 (Scheduled Events):你也可以設定排程事件,在特定時間或定期執行自動化任務。
- Synthetics (合成監控):
- 模擬使用者行為來主動監控你的應用程式端點。例如,它可以模擬點擊按鈕、填寫表單等,並檢查回應時間、可用性或是否有錯誤。
- Container Insights (容器洞察):
- 專為容器化應用程式(如 Amazon ECS, EKS, Fargate)提供效能監控和故障排除功能,自動收集容器指標和日誌。
- Lambda Insights (Lambda 洞察):
- 為 AWS Lambda 函式提供操作性能和故障排除功能,包括函式調用、運行時間、記憶體使用等詳細指標。
Amazon CloudWatch 的應用場景
- 應用程式效能監控 (APM):
- 監控網站和應用程式的可用性、延遲、錯誤率和流量。
- 及早發現效能問題,確保應用程式高效運行。
- 基礎設施監控:
- 監控 EC2 執行個體、RDS 資料庫、EBS 儲存卷、ELB 負載平衡器等 AWS 資源的健康狀況和使用率。
- 自動擴展資源以應對流量變化。
- 日誌管理與分析:
- 集中收集和儲存來自不同服務的日誌,簡化日誌管理。
- 利用日誌洞察快速排查故障或分析使用者行為。
- 安全與合規:
- 設定警報,監控異常的 AWS API 活動(與 CloudTrail 整合)。
- 實時偵測潛在的安全威脅。
- 營運自動化:
- 當偵測到特定事件或指標達到閾值時,自動執行恢復、通知或擴展等操作,減少人工干預。
Amazon CloudWatch 的優勢
- 全面監控:涵蓋了從應用程式到基礎設施的廣泛監控範圍。
- 即時性:提供近乎即時的指標和日誌數據。
- 高度可擴展:能夠處理從小型應用程式到大型企業環境的監控需求。
- 全託管服務:無需管理任何伺服器或監控基礎設施。
- 深度整合:與 AWS 中的幾乎所有服務都深度整合,能自動收集數據。
- 自動化能力:透過警報和事件規則,實現自動化響應和故障恢復。
Amazon CloudWatch 的計費方式
Amazon CloudWatch 的計費方式是按使用量付費 (pay-as-you-go),主要根據你使用的功能和數據量。主要計費項目包括:
- 指標 (Metrics):
- 標準解析度指標(每分鐘收集一次)通常按數量計費。
- 高解析度指標(收集頻率更高,例如每秒一次)的費用會更高。
- 許多 AWS 服務會免費發佈一部分基本指標。
- 儀表板 (Dashboards):
- 按建立的儀表板數量計費。
- 警報 (Alarms):
- 按設定的警報數量計費。
- 日誌 (Logs):
- 日誌攝取 (Log Ingestion):按你傳輸到 CloudWatch Logs 的日誌數據量(GB)計費。
- 日誌儲存 (Log Storage):按儲存在 CloudWatch Logs 中的日誌數據量(GB)計費。
- 日誌洞察查詢 (Logs Insights Queries):按執行查詢時掃描的日誌數據量(GB)計費。
- 事件 (Events) / EventBridge 事件:
- 標準事件通常有免費層級。超出免費層級後,會按事件數量計費。
- 自訂事件模式和排程規則的費用通常很低。
- Synthetics (合成監控):
- 按執行的 Canaries(監控腳本)數量及其運行時間計費。
- Container Insights & Lambda Insights:
- 根據收集和處理的容器日誌和指標數量計費。
AWS 提供免費試用層 (Free Tier),通常包括:
- 免費的標準指標數量和一些高解析度指標。
- 免費的警報數量。
- 每月一定量的日誌攝取和儲存。
由於具體價格會因地區、你使用的功能類型、以及監控的數據量而有很大差異,建議你查閱 AWS 官方網站的 Amazon CloudWatch 定價頁面 (aws.amazon.com/cloudwatch/pricing/),並使用 AWS 定價計算器 來估算你的具體成本。
總而言之,Amazon CloudWatch 是你管理 AWS 雲端環境中所有資源和應用程式運營健康的基石。它提供了深入的洞察力、自動化的回應能力,並幫助你在問題發生前就發現它們,從而確保你的系統高效、可靠地運行。