Zum Hauptinhalt springen
tsecurity.de LIVE
Echtzeit-Radar & Feeds
Alle RSS Feeds
👥 Community & Social
Windows Tipps & SecurityNighthawk M7 Pro im Test: Flexibler, aber teurer 5G-Router(21.09.2026 um 10:30 Uhr)
Sichere ProgrammierungNeue Gmail-Funktion: So sparst du jetzt Zeit bei Einmalcodes(21.09.2026 um 10:00 Uhr)
Sichere ProgrammierungYour GIF exporter is fine — the container is the problem(21.09.2026 um 10:01 Uhr)
Sichere ProgrammierungCSS, Motion, or GSAP? I Choose by Who Owns the Animation(21.09.2026 um 10:12 Uhr)
Windows Tipps & SecurityNighthawk M7 Pro im Test: Flexibler, aber teurer 5G-Router(21.09.2026 um 10:30 Uhr)
Sichere ProgrammierungNeue Gmail-Funktion: So sparst du jetzt Zeit bei Einmalcodes(21.09.2026 um 10:00 Uhr)
Sichere ProgrammierungYour GIF exporter is fine — the container is the problem(21.09.2026 um 10:01 Uhr)
Sichere ProgrammierungCSS, Motion, or GSAP? I Choose by Who Owns the Animation(21.09.2026 um 10:12 Uhr)
Intelligence View
⚡ tsecurity.de Intelligence

AWS-native Observability for EC2 với CloudWatch Agent

View my website: https://kkloudtarus.net/blog/aws-native-observability-ec2-cloudwatch-agent Repo GitHub:https://github.com/ngoNguyenTruongAn/cloudwatch-agent-ec2-observability Khi chạy workload trên EC2, CloudWatch mặc định chỉ cho mình m…

0
↗ Quelle (dev.to)
Reagiere als Erste:r — dein Feedback zählt!

View my website: https://kkloudtarus.net/blog/aws-native-observability-ec2-cloudwatch-agent



Repo GitHub:https://github.com/ngoNguyenTruongAn/cloudwatch-agent-ec2-observability



Khi chạy workload trên EC2, CloudWatch mặc định chỉ cho mình một phần nhỏ bức tranh vận hành: CPU, network, disk I/O và status check. Nhưng trong thực tế DevOps/SRE, chỉ vậy là chưa đủ. Mình thường cần biết thêm memory đang dùng bao nhiêu, disk root còn trống không, process Nginx có còn chạy không, access log/error log có lỗi gì không, và khi vượt ngưỡng thì hệ thống có gửi cảnh báo hay không.



Bài lab này thực hành xây dựng một pipeline observability đơn giản nhưng thực tế cho EC2 theo hướng AWS-native bằng CloudWatch Agent.



Mình triển khai theo hai tình huống:




Case 1: EC2 đã có sẵn, đang chạy Nginx, nhưng chưa có CloudWatch Agent.
Case 2: Tạo EC2 mới từ đầu và bootstrap CloudWatch Agent bằng User Data.






Điểm quan trọng của bài không chỉ là “cài agent”, mà là đi hết flow:




EC2
→ CloudWatch Agent
→ CloudWatch Metrics
→ CloudWatch Logs
→ CloudWatch Dashboard
→ CloudWatch Alarm
→ Amazon SNS
→ Email Notification












Vì sao cần CloudWatch Agent?



EC2 basic monitoring mặc định chỉ quan sát instance từ bên ngoài, chủ yếu thông qua hypervisor. Vì vậy CloudWatch có thể thấy các metric như CPU, network, disk I/O và status check.



Tuy nhiên, các thông tin nằm bên trong operating system như memory đang dùng bao nhiêu, filesystem còn trống bao nhiêu, application log ghi gì, hoặc process Nginx còn chạy hay không thì CloudWatch không tự thấy được nếu chỉ dùng basic monitoring.



CloudWatch Agent giải quyết khoảng trống đó bằng cách chạy bên trong EC2 instance. Agent đọc metrics và logs từ hệ điều hành, sau đó gửi dữ liệu về CloudWatch Metrics và CloudWatch Logs.



Nói ngắn gọn:




EC2 basic monitoring
→ nhìn từ bên ngoài instance

CloudWatch Agent
→ nhìn được bên trong operating system






Đây là lý do các dữ liệu như memory usage, disk usage, application logs và process status cần CloudWatch Agent.









Kiến trúc tổng quan





Trong kiến trúc này, EC2 chạy workload Nginx và CloudWatch Agent. Agent chạy bên trong instance, đọc metrics ở cấp operating system, đọc log file của Nginx, sau đó gửi dữ liệu về CloudWatch.



Luồng chính:




User / Local terminal
→ AWS Systems Manager Session Manager
→ EC2 instance
→ CloudWatch Agent
→ CloudWatch Metrics / CloudWatch Logs
→ Dashboard / Alarm
→ SNS Email Notification






Mình không dùng SSH trong bài lab này. EC2 được truy cập bằng AWS Systems Manager Session Manager, giúp không cần mở port 22, không cần key pair, và quản lý quyền truy cập thông qua IAM.









Repository structure



Phần evidence, architecture và script nên được tách riêng để dễ review:




cloudwatch-agent-ec2-observability/
├── architecture/
│ └── high-level-architecture.jpg

├── evidence/
│ ├── Case 1 - Existing EC2 Running.jpg
│ ├── Case 1 - IAM Role Attached.jpg
│ ├── Case 1 - SSM Managed Node.jpg
│ ├── Case 1 - CloudWatch Agent Installed.jpg
│ ├── Case 1 - Agent Running.jpg
│ ├── Case 1 - CWAgent Metrics.jpg
│ ├── Case 1 - CloudWatch Logs.jpg
│ ├── Case 1 - CloudWatch Alarm.jpg
│ ├── Case 1 - SNS Email Confirmed.jpg
│ ├── Case 1 - CloudWatch Dashboard.jpg
│ ├── Case 2 - New EC2 Running.jpg
│ ├── Case 2 - Agent Running.jpg
│ ├── Case 2 - Key CWAgent Metrics.jpg
│ ├── Case 2 - CloudWatch Log Groups.jpg
│ └── Case 2 - CloudWatch Dashboard.jpg

├── scripts/
│ ├── case1-cloudwatch-agent-config.json
│ ├── case2-user-data.sh
│ └── cleanup.md

├── 01-cloudwatch-agent-lab-evidence.md
└── 01-aws-native-observability-for-ec2-with-cloudwatch-agent.md






File blog này chỉ giải thích flow và kết quả chính. Phần config dài của CloudWatch Agent và User Data được đặt trong thư mục scripts/ để dễ tái sử dụng.









Các AWS service sử dụng
















































Service Vai trò
Amazon EC2 Máy chủ chạy workload Nginx
CloudWatch Agent Thu thập metrics và logs từ bên trong EC2
CloudWatch Metrics Lưu memory, disk, CPU và process metrics
CloudWatch Logs Lưu Nginx access/error logs và system logs
CloudWatch Dashboard Visualize các metrics quan trọng
CloudWatch Alarm Cảnh báo khi metric vượt ngưỡng
Amazon SNS Gửi email notification khi alarm được trigger
IAM Role Cấp quyền cho EC2 gửi data lên CloudWatch
AWS Systems Manager Truy cập EC2 bằng Session Manager thay vì SSH








Chi phí và Log Retention



CloudWatch Agent có thể phát sinh chi phí tùy theo số lượng custom metrics, số lượng log events, thời gian lưu logs và tần suất thu thập metrics.



Trong bài lab này, các metric như memory, disk và Nginx process count được gửi vào namespace CWAgent. Đây là custom metrics, vì vậy chi phí sẽ phụ thuộc vào số lượng metric, số lượng dimension và thời gian lưu trữ/quan sát.



Mình đặt metrics_collection_interval60 giây để cân bằng giữa độ chi tiết và chi phí:




metrics_collection_interval: 60






Nếu giảm interval xuống 10 giây, dữ liệu sẽ chi tiết hơn nhưng số lượng datapoint tăng lên, từ đó có thể làm tăng chi phí CloudWatch. Vì vậy trong lab hoặc môi trường nhỏ, 60 giây là lựa chọn hợp lý hơn.



Với CloudWatch Logs, nếu không cấu hình retention, log group có thể giữ log vô thời hạn. Vì vậy sau khi log group được tạo, nên đặt retention policy để tránh lưu log không cần thiết.



Ví dụ đặt retention 7 ngày cho Case 1:




aws logs put-retention-policy \
--log-group-name "/ec2/cloudwatch-agent/case1/nginx/access" \
--retention-in-days 7 \
--region us-east-1









aws logs put-retention-policy \
--log-group-name "/ec2/cloudwatch-agent/case1/nginx/error" \
--retention-in-days 7 \
--region us-east-1






Ví dụ đặt retention 7 ngày cho Case 2:




aws logs put-retention-policy \
--log-group-name "/ec2/cloudwatch-agent/case2/nginx/access" \
--retention-in-days 7 \
--region us-east-1









aws logs put-retention-policy \
--log-group-name "/ec2/cloudwatch-agent/case2/nginx/error" \
--retention-in-days 7 \
--region us-east-1






Trong production, retention nên được chọn theo nhu cầu audit, compliance và chi phí, ví dụ 7 ngày, 14 ngày, 30 ngày hoặc lâu hơn.









Chuẩn bị IAM Role cho EC2



CloudWatch Agent cần quyền để gửi metrics và logs về CloudWatch. EC2 cũng cần quyền để làm việc với Systems Manager Session Manager.



Mình tạo IAM Role cho EC2:




ec2-cloudwatch-agent-role






Attach hai managed policies:




CloudWatchAgentServerPolicy
AmazonSSMManagedInstanceCore






Ý nghĩa:




CloudWatchAgentServerPolicy
→ Cho phép CloudWatch Agent gửi metrics/logs lên CloudWatch.

AmazonSSMManagedInstanceCore
→ Cho phép EC2 xuất hiện trong Systems Manager và truy cập bằng Session Manager.














Kết nối vào EC2 bằng Session Manager



Thay vì SSH, mình dùng AWS CLI từ máy local để kết nối vào EC2:




aws ssm start-session \
--target <id-instance-ec2-của-bạn> \
--region us-east-1






Ví dụ:




aws ssm start-session \
--target i-xxxxxxxxxxxxxxxxx \
--region us-east-1






Sau khi vào được EC2, chuyển sang quyền root để thao tác trong lab:




sudo su -
whoami






Kiểm tra OS và hostname:




hostname
cat
/etc/os-release






Cách này giúp bài lab không cần mở SSH port 22 ra Internet.









Case 1: Cài CloudWatch Agent trên EC2 đã có sẵn






Bối cảnh



Ở case đầu tiên, mình giả định đã có một EC2 đang chạy workload Nginx. Instance này chưa từng cài CloudWatch Agent. Đây là tình huống khá thực tế: hệ thống đã chạy rồi, sau đó team DevOps/SRE muốn bổ sung observability mà không rebuild instance.



Flow thực hiện:




Existing EC2
→ Attach IAM Role
→ Kiểm tra SSM Managed Node
→ Kiểm tra Nginx đang chạy
→ Xác nhận CloudWatch Agent chưa cài
→ Cài CloudWatch Agent
→ Tạo CloudWatch Agent config
→ Start CloudWatch Agent
→ Kiểm tra Metrics và Logs
→ Tạo Alarm, SNS và Dashboard









Kiểm tra EC2 hiện tại



Instance dùng trong Case 1:




Instance name: cwagent-existing-ec2
Instance ID: i-004d22f414fe421f0
AMI: Amazon Linux 2023
Instance type: t3.micro
VPC: CW-Agent-Ec2-vpc
Subnet: Public subnet us-east-1a
IAM Role: ec2-cloudwatch-agent-role






Evidence:





EC2 cũng đã xuất hiện trong AWS Systems Manager Managed Nodes với trạng thái Online.








Kiểm tra workload và trạng thái ban đầu



Sau khi kết nối vào EC2 bằng Session Manager, mình kiểm tra:




whoami
hostname
cat
/etc/os-release
systemctl status nginx
rpm -qa | grep amazon-cloudwatch-agent






Kết quả:




User hiện tại: root
OS: Amazon Linux 2023
Nginx: active running
CloudWatch Agent: chưa được cài đặt






Evidence:







Điều này xác nhận đúng bối cảnh: EC2 đã có workload nhưng chưa có CloudWatch Agent.






Cài CloudWatch Agent



Cài package CloudWatch Agent trên Amazon Linux 2023:




sudo dnf install -y amazon-cloudwatch-agent






Kiểm tra package:




rpm -qa | grep amazon-cloudwatch-agent
ls -l /opt/aws/amazon-cloudwatch-agent/






Evidence:








Tạo CloudWatch Agent config



File config được đặt tại:




/opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.json






Full config được lưu trong repo tại: Case 1 - File Agent Config



Config này thu thập:




Metrics:
- mem_used_percent
- disk_used_percent
- cpu usage metrics
- Nginx process count qua procstat

Logs:
- /var/log/nginx/access.log
- /var/log/nginx/error.log






Phần quan trọng nhất của config là procstatlogs. procstat giúp CloudWatch Agent theo dõi process Nginx, còn phần logs giúp agent đọc log file trên EC2 và gửi lên CloudWatch Logs.



Ví dụ phần procstat:




{
"procstat": [
{
"exe": "nginx",
"measurement": [
"pid_count",
"cpu_usage",
"memory_rss"
],
"metrics_collection_interval": 60
}
]
}






Ví dụ phần log collection cho Nginx access log:




{
"file_path": "/var/log/nginx/access.log",
"log_group_name": "/ec2/cloudwatch-agent/case1/nginx/access",
"log_stream_name": "{instance_id}-access",
"timezone": "UTC"
}






Mình không inline toàn bộ JSON config để bài viết gọn hơn, nhưng vẫn đưa các phần cốt lõi vào bài để người đọc hiểu agent đang collect gì. Full config nằm trong thư mục scripts/ để có thể copy và chạy lại.



Evidence:








Start CloudWatch Agent



Start agent với config vừa tạo:




sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl \
-a fetch-config \
-m ec2 \
-c file:/opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.json \
-s






Kiểm tra trạng thái:




sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -m ec2 -a status
sudo systemctl status amazon-cloudwatch-agent






Kết quả mong đợi:




{
"status": "running",
"configstatus": "configured",
"version": "1.300067.1"
}






Evidence:











Kiểm tra CloudWatch Metrics



Sau khi agent chạy, vào CloudWatch Metrics và tìm namespace:




CWAgent






Các metric chính được kiểm tra:




mem_used_percent
disk_used_percent
procstat_lookup_pid_count






Ý nghĩa:




mem_used_percent
→ phần trăm memory đang sử dụng.

disk_used_percent
→ phần trăm disk đã dùng ở filesystem `/`.

procstat_lookup_pid_count
→ số lượng process Nginx được CloudWatch Agent tìm thấy.









Vì sao Nginx Process Count có thể lớn hơn 1?



Metric procstat_lookup_pid_count cho biết số process Nginx mà CloudWatch Agent tìm thấy.



Với Nginx, giá trị này thường lớn hơn 1 vì Nginx thường chạy theo mô hình:




1 master process
+ N worker processes






Ví dụ nếu dashboard hiển thị:




Nginx Process Count = 3






Điều đó có thể hiểu là Nginx đang có 1 master process và 2 worker processes. Vì vậy giá trị 3 không phải lỗi, mà là trạng thái bình thường khi Nginx đang chạy nhiều worker.



Evidence:












Kiểm tra CloudWatch Logs



CloudWatch Agent cũng gửi Nginx logs lên CloudWatch Logs.



Log groups chính:




/ec2/cloudwatch-agent/case1/nginx/access
/ec2/cloudwatch-agent/case1/nginx/error






Nginx access log có request GET / HTTP/1.1, chứng minh log file trên EC2 đã được agent đọc và gửi lên CloudWatch Logs.



Evidence:














Tạo CloudWatch Alarm và SNS Email



Sau khi có metric memory, mình tạo CloudWatch Alarm trên metric:




Metric: mem_used_percent
Namespace: CWAgent
Condition: Greater than threshold
Action: Send notification to SNS topic






Trong lab, threshold được đặt thấp để dễ trigger alarm và lấy evidence. Với môi trường production, threshold nên đặt theo baseline thực tế, ví dụ khoảng 80% hoặc 85%.



Ngoài threshold, khi cấu hình alarm cần chú ý thêm các tham số sau:




























Thuộc tính Ý nghĩa
Period Khoảng thời gian gom dữ liệu cho mỗi datapoint
Evaluation periods Số datapoint được dùng để đánh giá alarm
Datapoints to alarm Số datapoint cần vượt ngưỡng để chuyển sang ALARM
TreatMissingData Cách xử lý khi metric không gửi dữ liệu


Nếu dùng cấu hình 1 out of 1 datapoint, alarm phản ứng nhanh nhưng dễ bị false alarm khi có spike ngắn.



Trong production, nên dùng nhiều evaluation periods hơn, ví dụ:




Period: 5 minutes
Evaluation periods: 3
Datapoints to alarm: 2 out of 3






Cấu hình này giúp giảm false alarm do spike tạm thời.



TreatMissingData cũng rất quan trọng. Nếu CloudWatch Agent ngừng gửi metric, alarm có thể chuyển sang hoặc bị kẹt ở trạng thái INSUFFICIENT_DATA, tùy cách cấu hình. Đây là một tình huống vận hành thực tế cần tính đến khi thiết kế monitoring.



Evidence alarm:





Sau đó tạo SNS topic và email subscription để nhận cảnh báo.



Evidence SNS:





Khi alarm chuyển trạng thái, email notification được gửi về mailbox. Đây là phần chứng minh alerting flow hoạt động end-to-end:




CloudWatch Metric
→ CloudWatch Alarm
→ SNS Topic
→ Email Notification












Tạo CloudWatch Dashboard



Dashboard giúp visualize các metrics quan trọng của EC2.



Dashboard name:




cwagent-existing-ec2-dashboard






Metrics hiển thị:




Memory Used Percent
Nginx Process Count
Disk Used Percent






Evidence:





Kết quả Case 1:




[✓] EC2 existing đang chạy workload Nginx
[✓] CloudWatch Agent được cài thủ công
[✓] Agent gửi metrics lên CloudWatch Metrics
[✓] Agent gửi logs lên CloudWatch Logs
[✓] Alarm được tạo và trigger
[✓] SNS gửi email notification
[✓] Dashboard hiển thị key metrics












Case 2: Bootstrap CloudWatch Agent khi tạo EC2 mới






Bối cảnh



Ở Case 2, mình không cài agent thủ công sau khi EC2 chạy nữa. Thay vào đó, mình dùng User Data để tự động:




Cài Nginx
→ Start Nginx
→ Cài CloudWatch Agent
→ Ghi CloudWatch Agent config
→ Start CloudWatch Agent
→ Tạo request test bằng curl localhost






Flow:




Launch new EC2
→ Attach IAM Role
→ User Data installs Nginx
→ User Data installs CloudWatch Agent
→ User Data writes config
→ User Data starts CloudWatch Agent
→ Verify Logs, Metrics and Dashboard









Chuẩn bị User Data



User Data script được lưu trong repo tại: Case 2 - User Data



Script này sẽ được copy vào phần:




EC2 Launch Instance
→ Advanced details
→ User data






User Data là phần cốt lõi của Case 2 vì nó giúp EC2 mới tự bootstrap observability ngay khi launch, thay vì phải SSH/SSM vào máy rồi cài thủ công.



Ý tưởng chính của User Data:




dnf update
→ install nginx
→ install amazon-cloudwatch-agent
→ enable/start nginx
→ write CloudWatch Agent config
→ start CloudWatch Agent
→ verify status






Một phần quan trọng của User Data:




#!/bin/bash
set -euxo pipefail

dnf update -y
dnf install -y nginx amazon-cloudwatch-agent

systemctl enable nginx
systemctl start nginx

echo "Bootstrap EC2 for CloudWatch Agent lab" > /usr/share/nginx/html/index.html

curl http://localhost || true
curl http://localhost || true
curl http://localhost || true






Đoạn trên đảm bảo EC2 mới được cài Nginx, start service và tự tạo một vài request test để sinh Nginx access log.



Phần tiếp theo trong User Data là ghi CloudWatch Agent config vào đúng đường dẫn trên EC2:




cat > /opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.json <<'EOF'
{
"agent": {
"metrics_collection_interval": 60,
"run_as_user": "root"
},
"metrics": {
"namespace": "CWAgent",
"append_dimensions": {
"InstanceId": "
${aws:InstanceId}"
}
}
}
EOF






Trong file đầy đủ, phần config còn có thêm mem, disk, cpu, procstat và log collection cho Nginx/system logs. Mình chỉ inline một đoạn ngắn để người đọc hiểu User Data đang làm gì, còn full script được lưu trong thư mục scripts/.



Cuối cùng, User Data start CloudWatch Agent bằng lệnh:




/opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl \
-a fetch-config \
-m ec2 \
-c file:/opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.json \
-s

systemctl enable amazon-cloudwatch-agent
systemctl restart amazon-cloudwatch-agent






Lệnh này giúp CloudWatch Agent đọc config vừa tạo và bắt đầu gửi metrics/logs lên CloudWatch ngay sau khi EC2 boot xong.









Launch EC2 mới



Instance dùng trong Case 2:




Instance name: cwagent-bootstrap-ec2
Instance ID: i-0dd7183a3899a9462
AMI: Amazon Linux 2023
Instance type: t3.micro
VPC: CW-Agent-Ec2-vpc
Subnet: Public subnet us-east-1a
IAM Role: ec2-cloudwatch-agent-role






Evidence:








Kiểm tra CloudWatch Agent



Sau khi EC2 boot xong, mình kết nối vào instance bằng Session Manager và kiểm tra agent:




sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -m ec2 -a status
sudo systemctl status amazon-cloudwatch-agent






Evidence:





Điều này chứng minh User Data đã tự động cài và start CloudWatch Agent khi EC2 được launch.









Kiểm tra CloudWatch Logs



Case 2 tạo các log groups riêng:




/ec2/cloudwatch-agent/case2/nginx/access
/ec2/cloudwatch-agent/case2/nginx/error
/ec2/cloudwatch-agent/case2/system/cloud-init
/ec2/cloudwatch-agent/case2/system/dnf






Nginx access log có request từ curl http://localhost, còn Nginx error log có startup logs của Nginx. Đây là chứng minh cho việc User Data đã chạy thành công và agent đã gửi logs lên CloudWatch.



Evidence:















Kiểm tra CloudWatch Metrics



Trong namespace CWAgent, mình kiểm tra ba metrics chính của instance Case 2:




mem_used_percent
disk_used_percent
procstat_lookup_pid_count






Evidence:





Kết quả này chứng minh EC2 mới được bootstrap bằng User Data đã tự động gửi metrics lên CloudWatch.









Tạo Dashboard cho Case 2



Dashboard name:




cwagent-bootstrap-ec2-dashboard






Widget hiển thị:




Memory Used Percent
Nginx Process Count
Disk Used Percent






Evidence:





Kết quả Case 2:




[✓] EC2 mới được tạo từ đầu
[✓] User Data chạy thành công
[✓] Nginx được cài và start tự động
[✓] CloudWatch Agent được cài và start tự động
[✓] Logs được gửi lên CloudWatch Logs
[✓] Metrics được gửi lên CloudWatch Metrics
[✓] Dashboard visualize được key metrics












So sánh hai cách triển khai






































Tiêu chí Case 1: Existing EC2 Case 2: New EC2 from scratch
Tình huống EC2 đã có sẵn EC2 tạo mới
Cách cài agent Cài thủ công sau khi EC2 đang chạy Cài tự động bằng User Data
Mục tiêu Retrofit observability Bootstrap observability
Phù hợp khi Server đã chạy trong dev/prod Muốn server mới có monitoring ngay từ đầu
Evidence chính Agent running, metrics, logs, alarm, SNS, dashboard User Data, agent running, logs, metrics, dashboard


Case 1 phù hợp khi mình đã có hệ thống chạy sẵn và muốn thêm observability mà không thay đổi cách launch instance.



Case 2 phù hợp khi mình muốn chuẩn hóa việc tạo EC2 mới: instance vừa boot lên là đã có Nginx, CloudWatch Agent, logs, metrics và dashboard-ready.









Bài học rút ra



CloudWatch Agent là phần rất quan trọng nếu muốn quan sát EC2 sâu hơn basic monitoring.



Không có CloudWatch Agent, mình chủ yếu thấy các metric bên ngoài instance như CPU, network, disk I/O và status check. Có CloudWatch Agent, mình lấy thêm được:




Memory usage
Disk usage theo filesystem
Application logs
System logs
Process status
Custom metrics trong namespace CWAgent






Một điểm quan trọng nữa là IAM Role nên được dùng thay vì access key. EC2 có role phù hợp thì CloudWatch Agent tự dùng quyền đó để gửi metrics/logs lên CloudWatch.



Bài lab cũng cho thấy Session Manager là lựa chọn tốt hơn SSH trong môi trường lab hoặc production cơ bản, vì không cần mở port 22 ra Internet.









Cleanup



Sau khi hoàn thành lab, cần cleanup để tránh phát sinh chi phí. Ngoài việc xóa EC2, dashboard, alarm và SNS, cần chú ý cả CloudWatch Log Groups vì log group có thể giữ log lâu dài nếu không đặt retention policy.




Terminate EC2 Case 1 nếu chỉ dùng cho lab
Terminate EC2 Case 2
Delete CloudWatch Dashboards
Delete CloudWatch Alarms
Delete SNS Topic
Delete CloudWatch Log Groups nếu không cần giữ
Delete IAM Role nếu chỉ dùng cho lab









Có thể sử dụng file cleanup mẫu này để sử dụng: cleanup-file






Kết luận



Bài lab này xây dựng một observability pipeline AWS-native cho EC2 bằng CloudWatch Agent. Qua hai case, mình kiểm chứng được cả hai hướng triển khai:




Existing EC2
→ cài CloudWatch Agent thủ công
→ thêm observability cho workload đang chạy

New EC2
→ bootstrap bằng User Data
→ có observability ngay từ lúc launch






Khi kết hợp CloudWatch Agent với CloudWatch Metrics, CloudWatch Logs, Dashboard, Alarm và SNS, mình có thể tạo một hệ thống monitoring đơn giản, dễ hiểu, đủ thực tế cho môi trường DevOps cơ bản và có thể mở rộng tiếp cho các workload lớn hơn.

Ähnliche Beiträge
🔍 Verwandte News

Auch interessante Nachrichten AWS-native Observability for EC2 với CloudWatch Agent

Thematisch verwandte Begriffe: AWSnative, Observability, CloudWatch, Agent · 6 Treffer

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Zum Aktualisieren ziehen
ZERO-DAY CVE-2026-94036 | A security flaw has been discovered in D-Link DIR-X1860 and DIR-X1860Z u…
Advisory →
TTS Reader • tsecurity.de Voice
tsecurity.de Icon
tsecurity.de App
Offline-Lesen, Eilmeldungen & 0ms Ladezeit

Installiere tsecurity.de direkt auf deinen Home-Bildschirm für das ultimative Vollbild-Magazinerlebnis ohne Browser-Leisten.

Nächster Beitrag
Themen-Radar & Intelligence Matrix
Echtzeit-Taxonomie nach Angriffsvektoren & Plattformen

tsecurity.de Live Threat Radar

🔴 LIVE RADAR
MONITORING
AKTIV
CVE-DATENBANK
LIVE
🔍
Community Radar & Live Chat
Sentinel Bot online • Live-Stream
Dein Cluster: Security Explorer
Match:
lädt…
Verbindung zum Community-Stream wird aufgebaut...
Bearbeitungsmodus — Senden überschreibt deine Nachricht
Community-Puls — was gerade passiert
lädt…
Aktivitäten deiner Analysten
lädt…
Neues Thema oder Eilmeldung einreichen

Reiche interessante Links, Zero-Days oder Debatten ein. Die Community entscheidet per Upvote über die Veröffentlichung.

Heiß diskutierte Einreichungen
🔖 Gespeicherte Artikel
📂 Keine gespeicherten Artikel vorhanden.
Zurück Ziehen Vor
Links: vorheriger Artikel Rechts: nächster Artikel unten: schließen
News NIS-2 Frühwarnung Tier-1 Intel ⏱️ 3 Min vor 10 Min
Artikeldaten werden geladen...

Zurück: vorheriger Vor: nächster
↗ Original-Quelle
Social Reaktionen Deine Reaktion zählt
Einstufung & Relevanz-Poll 0 Stimmen
In sozialen Netzwerken teilen 1-Klick