0Pricing
AWS Solutions Architect · บทเรียน

เมตริก CloudWatch เนมสเปซ และมิติข้อมูล

ทำความเข้าใจเมตริกบริการ AWS ในตัว เผยแพร่เมตริกแบบกำหนดเองจากแอปพลิเคชัน และกรองด้วยมิติข้อมูลเพื่อเจาะจงทรัพยากรที่ต้องการ

เมตริก CloudWatch เนมสเปซ และมิติข้อมูล เป็นบทเรียน AWS Solutions Architect ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน AWS Solutions Architect และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส AWS Solutions Architect มีบทเรียนทั้งหมด 4 บทเรียน

Amazon CloudWatch คืออะไร

Amazon CloudWatch เป็นบริการสังเกตการณ์แบบรวมศูนย์ของ AWS ที่รวบรวมตัวชี้วัด บันทึก และร่องรอยจากทรัพยากรและแอปพลิเคชัน AWS ของคุณ บริการนี้ช่วยให้เห็นภาพสถานะโดยรวมของโครงสร้างพื้นฐาน ตรวจจับความผิดปกติ ตั้งการแจ้งเตือน และตอบสนองต่อการเปลี่ยนแปลงด้านการปฏิบัติการโดยอัตโนมัติ CloudWatch ผสานรวมกับบริการ AWS เกือบทุกบริการอย่างลึกซึ้ง และเป็นเครื่องมือตรวจสอบหลักที่ใช้ทดสอบในข้อสอบ SAA-C03

ทำความเข้าใจตัวชี้วัดของ CloudWatch

ตัวชี้วัดของ CloudWatchคือชุดจุดข้อมูลที่เรียงตามเวลา ซึ่งแสดงค่าของคุณสมบัติที่วัดได้ของทรัพยากรในช่วงเวลาหนึ่ง เช่น CPUUtilization ของอินสแตนซ์ EC2 ที่วัดทุกนาที ตัวชี้วัดจะถูกระบุด้วยเนมสเปซ ชื่อ และมิติ AWS เผยแพร่ตัวชี้วัดในตัวหลายร้อยรายการโดยอัตโนมัติ และคุณสามารถเผยแพร่ตัวชี้วัดแบบกำหนดเองจากโค้ดแอปพลิเคชันหรือสคริปต์ของคุณได้

เนมสเปซ: การจัดระเบียบตัวชี้วัด

เนมสเปซคือพื้นที่จัดเก็บตัวชี้วัดของ CloudWatch ซึ่งป้องกันชื่อซ้ำกันระหว่างตัวชี้วัดจากแหล่งต่าง ๆ บริการ AWS ใช้เนมสเปซ เช่น AWS/EC2, AWS/RDS, AWS/Lambda และ AWS/S3 เมื่อเผยแพร่ตัวชี้วัดแบบกำหนดเอง คุณสามารถเลือกเนมสเปซของตนเองได้ เช่น MyApp/OrderService ตัวชี้วัดในเนมสเปซต่างกันจะแยกออกจากกันอย่างสมบูรณ์ แม้จะใช้ชื่อตัวชี้วัดเดียวกัน

# List all namespaces in your account
aws cloudwatch list-metrics \
  --query 'Metrics[].Namespace' \
  --output text | tr '\t' '\n' | sort -u

# List metrics in the AWS/EC2 namespace
aws cloudwatch list-metrics \
  --namespace AWS/EC2 \
  --query 'Metrics[].MetricName' \
  --output text | tr '\t' '\n' | sort -u

มิติ: การกรองตัวชี้วัด

มิติคือคู่คีย์และค่าที่ใช้ระบุตัวชี้วัดหนึ่ง ๆ ภายในเนมสเปซได้โดยไม่ซ้ำกัน ตัวอย่างเช่น ในเนมสเปซ AWS/EC2 คุณสามารถกรอง CPUUtilization ด้วยมิติ InstanceId=i-0123456789abcdef0 เพื่อดูอินสแตนซ์หนึ่งโดยเฉพาะ หรือกรองด้วย AutoScalingGroupName=my-asg เพื่อดูตัวชี้วัดรวมของกลุ่มอินสแตนซ์ทั้งหมด ตัวชี้วัดหนึ่งรายการมีมิติได้สูงสุด 30 รายการ และ AWS จะกำหนดมิติที่ใช้ได้สำหรับตัวชี้วัดของแต่ละบริการไว้ล่วงหน้า

# Get CPU utilization for a specific EC2 instance
aws cloudwatch get-metric-statistics \
  --namespace AWS/EC2 \
  --metric-name CPUUtilization \
  --dimensions Name=InstanceId,Value=i-0123456789abcdef0 \
  --start-time 2024-01-01T00:00:00Z \
  --end-time 2024-01-01T01:00:00Z \
  --period 300 \
  --statistics Average

การตรวจสอบแบบมาตรฐานเทียบกับแบบละเอียด

โดยค่าเริ่มต้น บริการ AWS จะเผยแพร่ตัวชี้วัดไปยัง CloudWatch ทุกช่วงเวลา 5 นาที (การตรวจสอบแบบมาตรฐาน) โดยไม่มีค่าใช้จ่ายเพิ่มเติม สำหรับงานที่ต้องการข้อมูลทันเวลา คุณสามารถเปิดใช้การตรวจสอบแบบละเอียดเพื่อรับความละเอียดระดับ 1 นาที การตรวจสอบแบบละเอียดใช้ได้กับ EC2, Auto Scaling, ELB, RDS และบริการอื่น ๆ แต่มีค่าใช้จ่าย CloudWatch เพิ่มเติม สำหรับ SAA-C03 โปรดจำไว้ว่านโยบาย Auto Scaling ที่ใช้การปรับขนาดแบบขั้นบันไดอาศัยการแจ้งเตือนของ CloudWatch ซึ่งทำงานได้ดีกว่าด้วยตัวชี้วัดทุก 1 นาที

# Enable detailed (1-minute) monitoring for an EC2 instance
aws ec2 monitor-instances \
  --instance-ids i-0123456789abcdef0

# Verify monitoring state
aws ec2 describe-instance-status \
  --instance-ids i-0123456789abcdef0 \
  --query 'InstanceStatuses[].Monitoring'

การเผยแพร่ตัวชี้วัดแบบกำหนดเอง

คุณสามารถส่งตัวชี้วัดแบบกำหนดเองไปยัง CloudWatch จากแอปพลิเคชันใดก็ได้โดยใช้ API put-metric-data หรือตัวแทน CloudWatch ตัวชี้วัดแบบกำหนดเองที่พบบ่อย ได้แก่ ตัวชี้วัดประสิทธิภาพทางธุรกิจ (จำนวนคำสั่งซื้อต่อนาที) เวลาแฝงระดับแอปพลิเคชัน ความลึกของคิว และอัตราความผิดพลาด ตัวชี้วัดแบบกำหนดเองจะเก็บรักษาไว้ 15 เดือนด้วยความละเอียดที่ปรับเปลี่ยนได้ และคิดค่าบริการต่อตัวชี้วัดต่อเดือน นอกจากนี้ยังรองรับตัวชี้วัดความละเอียดสูง (ความละเอียดระดับ 1 วินาที) โดยมีค่าใช้จ่ายสูงกว่า

# Publish a custom metric from the CLI
aws cloudwatch put-metric-data \
  --namespace 'MyApp/OrderService' \
  --metric-name 'OrdersProcessedPerMinute' \
  --value 47 \
  --unit Count \
  --dimensions Environment=Production,Region=us-east-1

# Publish from application code (Python boto3)
# cloudwatch.put_metric_data(
#   Namespace='MyApp/OrderService',
#   MetricData=[{'MetricName': 'ErrorRate', 'Value': 0.5, 'Unit': 'Percent'}]
# )

ตัวแทน CloudWatch สำหรับตัวชี้วัด EC2

ตัวแทน CloudWatchคือซอฟต์แวร์ที่คุณติดตั้งบนอินสแตนซ์ EC2 (รวมถึงเซิร์ฟเวอร์ภายในองค์กร) เพื่อรวบรวมตัวชี้วัดที่ไม่มีให้ผ่านไฮเปอร์ไวเซอร์ EC2 ในตัว เช่น การใช้หน่วยความจำ พื้นที่ดิสก์ และการเชื่อมต่อเครือข่าย ตัวแทนยังรวบรวมบันทึกและส่งไปยัง CloudWatch Logs ด้วย การใช้หน่วยความจำเป็นกรณีที่พบบ่อยในข้อสอบ ซึ่งไม่ใช่ตัวชี้วัด EC2 เริ่มต้น และต้องรวบรวมผ่านตัวแทน CloudWatch

# Install and start the CloudWatch Agent on Amazon Linux 2
sudo yum install -y amazon-cloudwatch-agent

# Use the wizard to generate a config
sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-config-wizard

# Start the agent with the generated config
sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl \
  -a fetch-config \
  -m ec2 \
  -s \
  -c ssm:/AmazonCloudWatch-linux

คณิตศาสตร์ของตัวชี้วัดและการตรวจจับความผิดปกติ

คณิตศาสตร์ของตัวชี้วัดช่วยให้คุณสร้างอนุกรมเวลาใหม่โดยคำนวณทางคณิตศาสตร์กับตัวชี้วัดที่มีอยู่ โดยไม่ต้องจัดเก็บผลลัพธ์เป็นตัวชี้วัดแยกต่างหาก ตัวอย่างเช่น คุณสามารถคำนวณอัตราความผิดพลาดเป็น Errors / Requests * 100 ได้โดยตรงในนิพจน์ของแดชบอร์ด CloudWatch การตรวจจับความผิดปกติใช้การเรียนรู้ของเครื่องกับข้อมูลตัวชี้วัดในอดีตเพื่อสร้างช่วงค่าที่คาดหมาย และคุณสามารถสร้างการแจ้งเตือนให้ทำงานเมื่อตัวชี้วัดเบี่ยงเบนออกนอกช่วงดังกล่าวได้ แม้จะไม่มีค่าขีดจำกัดตายตัว

# Get metric data using metric math
aws cloudwatch get-metric-data \
  --metric-data-queries '[
    {"Id":"e1","Expression":"m1/m2*100","Label":"ErrorRate%"},
    {"Id":"m1","MetricStat":{"Metric":{"Namespace":"MyApp","MetricName":"Errors"},"Period":60,"Stat":"Sum"}},
    {"Id":"m2","MetricStat":{"Metric":{"Namespace":"MyApp","MetricName":"Requests"},"Period":60,"Stat":"Sum"}}
  ]' \
  --start-time 2024-01-01T00:00:00Z \
  --end-time 2024-01-01T01:00:00Z

ช่วงเวลาการเก็บรักษาตัวชี้วัด

CloudWatch จัดเก็บตัวชี้วัดโดยมีระยะเวลาเก็บรักษาแตกต่างกันตามความละเอียด: จุดข้อมูลที่มีความละเอียด 1 วินาทีจะเก็บไว้ 3 ชั่วโมง, ข้อมูลทุก 1 นาทีเก็บไว้15 วัน, ข้อมูลทุก 5 นาทีเก็บไว้63 วัน และข้อมูลทุก 1 ชั่วโมงเก็บไว้15 เดือน CloudWatch จะรวมข้อมูลความละเอียดสูงเป็นข้อมูลความละเอียดต่ำลงโดยอัตโนมัติเมื่อเวลาผ่านไป ดังนั้น หากคุณต้องการวิเคราะห์แนวโน้มระยะยาว คุณจะเห็นค่าเฉลี่ยรายชั่วโมง ไม่ใช่ค่าที่วัดทุก 1 นาทีดั้งเดิมจากหลายเดือนก่อน

การดูตัวชี้วัดในคอนโซล CloudWatch

คอนโซล CloudWatch มีMetrics Explorerและเบราว์เซอร์ตัวชี้วัด ซึ่งให้คุณเลือกชุดเนมสเปซ ตัวชี้วัด และมิติใดก็ได้ แล้วแสดงข้อมูลเป็นภาพตามเวลา คุณสามารถวางตัวชี้วัดหลายรายการซ้อนกันในกราฟเดียว เปลี่ยนช่วงเวลาการรวมข้อมูล และเพิ่มรายการเหล่านั้นลงในแดชบอร์ดได้ สำหรับการเข้าถึงด้วยโปรแกรม API GetMetricStatistics และ GetMetricData จะส่งคืนจุดข้อมูลดิบหรือสถิติรวม (Average, Sum, Minimum, Maximum, SampleCount)

# Get average CPU for all instances in an ASG over the last hour
aws cloudwatch get-metric-statistics \
  --namespace AWS/EC2 \
  --metric-name CPUUtilization \
  --dimensions Name=AutoScalingGroupName,Value=my-asg \
  --start-time $(date -u -d '1 hour ago' +%Y-%m-%dT%H:%M:%SZ) \
  --end-time $(date -u +%Y-%m-%dT%H:%M:%SZ) \
  --period 300 \
  --statistics Average Maximum

ตัวชี้วัดสำคัญของ EC2 และ RDS

สำหรับข้อสอบ SAA-C03 โปรดรู้จักตัวชี้วัดสำคัญเหล่านี้: EC2 — CPUUtilization, NetworkIn/Out, DiskReadOps/WriteOps (เฉพาะพื้นที่จัดเก็บของอินสแตนซ์); สิ่งที่ไม่มีใน EC2 โดยค่าเริ่มต้น: หน่วยความจำและพื้นที่ดิสก์ (ให้ใช้ตัวแทน CloudWatch) RDS — DatabaseConnections, FreeStorageSpace, ReadLatency, WriteLatency, ReplicaLag ELB — RequestCount, TargetResponseTime, UnHealthyHostCount Lambda — Invocations, Errors, Duration, Throttles, ConcurrentExecutions

ตรวจสอบความเข้าใจ

ทดสอบความเข้าใจแนวคิด AWS Solutions Architect (SAA-C03) จากบทเรียนนี้

สรุปบทเรียน

ในบทเรียนนี้ คุณได้เรียนรู้ว่า เนมสเปซจัดระเบียบตัวชี้วัดตามบริการและป้องกันชื่อซ้ำกัน, มิติใช้กรองตัวชี้วัดไปยังทรัพยากรเฉพาะ เช่น อินสแตนซ์ EC2 เดียวหรือ ASG และการใช้หน่วยความจำไม่ใช่ตัวชี้วัด EC2 โดยค่าเริ่มต้น คุณต้องใช้ตัวแทน CloudWatch เพื่อรวบรวมข้อมูลนี้ บทถัดไปเราจะสำรวจการแจ้งเตือนของ CloudWatch และการแจ้งเตือนแบบผสมสำหรับการแจ้งเตือนอัตโนมัติ

คำถามที่พบบ่อย

บทเรียน “เมตริก CloudWatch เนมสเปซ และมิติข้อมูล” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “เมตริก CloudWatch เนมสเปซ และมิติข้อมูล” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส AWS Solutions Architect ให้อัปเกรดเป็น CoddyKit PRO คอร์ส AWS Solutions Architect มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “เมตริก CloudWatch เนมสเปซ และมิติข้อมูล”

ทำความเข้าใจเมตริกบริการ AWS ในตัว เผยแพร่เมตริกแบบกำหนดเองจากแอปพลิเคชัน และกรองด้วยมิติข้อมูลเพื่อเจาะจงทรัพยากรที่ต้องการ คุณปฏิบัติ AWS Solutions Architect ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน AWS Solutions Architect หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน AWS Solutions Architect บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน

บทเรียน “เมตริก CloudWatch เนมสเปซ และมิติข้อมูล” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน AWS Solutions Architect นี้ได้ไหม

ได้ บทเรียน AWS Solutions Architect ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. เมตริก CloudWatch เนมสเปซ และมิติข้อมูล
  2. การแจ้งเตือน CloudWatch และการแจ้งเตือนแบบผสม
  3. บันทึก CloudWatch และ Log Insights
  4. แดชบอร์ด CloudWatch และ Container Insights
← กลับไปที่ AWS Solutions Architect