メインコンテンツまでスキップ

Amazon CloudWatch

Amazon CloudWatch là dịch vụ monitoring và observability của AWS, giúp bạn thu thập và theo dõi metrics, logs, và events từ các tài nguyên AWS và ứng dụng. CloudWatch cung cấp khả năng giám sát thời gian thực, cảnh báo tự động, và phân tích log để đảm bảo hệ thống hoạt động ổn định và hiệu quả.

CloudWatch bao gồm các thành phần chính: Metrics (thu thập dữ liệu hiệu suất), Alarms (cảnh báo dựa trên ngưỡng), Logs (lưu trữ và phân tích log), và Events/EventBridge (xử lý các sự kiện hệ thống).


CloudWatch Metrics

Metrics là các điểm dữ liệu theo chuỗi thời gian (time-series data) đại diện cho hiệu suất của tài nguyên hoặc ứng dụng.

Các loại Metrics:

  • Standard Metrics (Miễn phí): AWS tự động thu thập cho các dịch vụ như EC2 CPUUtilization, NetworkIn/Out, ELB RequestCount
  • Custom Metrics (Có phí): Metrics tùy chỉnh do bạn đẩy lên từ ứng dụng
  • Detailed Monitoring (Có phí): Tăng tần suất thu thập từ 5 phút xuống 1 phút
CloudWatch Agent cho EC2

EC2 standard metrics không bao gồm Memory và Disk Space vì đây là OS-level metrics. Để monitor những metrics này, cần cài đặt CloudWatch Agent lên EC2 instance. Agent cũng cho phép thu thập:

  • Memory utilization
  • Disk space used/available
  • Swap usage
  • Process-level metrics

Ví dụ Metrics:

CPUUtilization (EC2)
RequestCount (ALB)
DatabaseConnections (RDS)
InvocationsCount (Lambda)

CloudWatch Alarms

CloudWatch Alarm là cơ chế cảnh báo dựa trên ngưỡng (threshold) của metrics. Alarm có 3 trạng thái:

  • OK: Metric nằm trong ngưỡng bình thường
  • ALARM: Metric vượt ngưỡng, kích hoạt action
  • INSUFFICIENT_DATA: Không đủ dữ liệu để đánh giá

Cách hoạt động:

Metric → Threshold → DataPoint → Alarm State → Action (SNS/Auto Scaling/EC2 Action)

Ví dụ cấu hình Alarm:

Alarm: HIGH-CPUUtilization
Metric: CPUUtilization
Threshold: > 80%
Period: 5 phút
DataPoint: 2/2 (2 datapoint liên tiếp trong 2 period)
Action: Gửi email qua SNS Topic

CloudWatch Logs

CloudWatch Logs là dịch vụ lưu trữ, theo dõi và phân tích log từ ứng dụng và hệ thống.

Cấu trúc phân cấp:

Log Group (VD: /aws/lambda/my-function)
└── Log Stream (VD: YYYY/MM/DD/[$LATEST]abc123)
└── Log Events (các dòng log cụ thể)

Các tính năng:

  • Log Insights: Query log với SQL-like syntax
  • Metric Filters: Tạo metrics từ patterns trong log
  • Subscription Filters: Stream logs realtime đến Lambda, Kinesis, hoặc OpenSearch
  • Retention Policy: Tự động xóa log sau thời gian quy định
  • Structured logging (JSON): Ưu tiên ghi log ở định dạng JSON có cấu trúc, giúp CloudWatch Logs Insights dễ dàng parse và query theo từng field (ví dụ: level, service, requestId, userId), hỗ trợ phân tích và lọc log hiệu quả.

CloudWatch Events / EventBridge

Theo dõi và xử lý các sự kiện từ AWS services hoặc ứng dụng tùy chỉnh.

Ví dụ Events:

  • EC2 instance state change (running → stopped)
  • Auto Scaling Group scale out/in
  • Schedule-based events (cron)

Lưu ý chi phí

CloudWatch có thể tốn kém nếu không được quản lý đúng cách:

  • Custom Metrics & Detailed Monitoring: Mỗi metric và data point đều tính phí
  • CloudWatch Logs: Không set Retention Policy → logs tích lũy vô thời hạn, tốn storage
  • CloudWatch Agent: Có thể gửi hàng chục metrics per instance, dễ vượt chi phí dự kiến

Khuyến nghị: Set retention policy cho logs, chỉ enable detailed monitoring khi cần thiết, và giới hạn số lượng custom metrics.