AWS DVA-C02
Esc
↑↓เลื่อน↵เปิดescปิด28 ผลลัพธ์
17

Monitoring, Troubleshooting & Audit

CloudWatch, EventBridge, X-Ray & CloudTrail

Monitoring & Audit 11 นาที 24 คำถาม

01CloudWatch Metrics (Namespaces & Dimensions)

CloudWatch Metrics คือบริการเก็บ metrics ของ AWS services ทุกตัว โดยจัดกลุ่มเป็น namespace (เช่น AWS/EC2, AWS/Lambda) แต่ละ metric มี timestamp และมี dimensions ได้สูงสุด 30 dimensions ต่อ metric dimension คือคู่ name/value ที่ใช้ระบุ metric เจาะจง เช่น InstanceId, Environment

  • Namespace = ตู้เก็บ metrics ของแต่ละ service (custom namespace ต้องไม่ขึ้นต้นด้วย AWS/)
  • Dimension = attribute ของ metric (เช่น InstanceId, InstanceType) สูงสุด 30 ต่อ metric
  • EC2 Detailed Monitoring ส่ง metrics ทุก 1 นาที (เสียเงินเพิ่ม) ส่วน default คือทุก 5 นาที
  • ใช้ Detailed Monitoring เมื่อต้องการ scale ASG ได้เร็วขึ้นด้วยข้อมูลถี่ขึ้น

Custom Metrics & High Resolution

สามารถส่ง Custom Metrics เข้า CloudWatch ผ่าน API PutMetricData ได้ เช่น RAM usage, จำนวนผู้ใช้ login (EC2 ไม่ส่ง memory metric ให้เอง ต้องส่งเอง) ค่า StorageResolution กำหนด resolution ได้ 2 แบบ

Standard Resolution
ความละเอียด 60 วินาที (1 นาที) เป็นค่า default ของ custom metrics
High Resolution
ความละเอียด 1 วินาที (StorageResolution=1) ค่าที่รองรับคือ 1 หรือ 60 วินาที ใช้สำหรับ metric ที่ต้องการ granularity สูง เสียเงินแพงกว่า
bash
aws cloudwatch put-metric-data \
  --namespace "MyApp/Performance" \
  --metric-name "PageLoadTime" \
  --dimensions Environment=Prod,Server=web1 \
  --value 230 \
  --unit Milliseconds \
  --storage-resolution 1
กับดักข้อสอบ
EC2 ไม่ส่ง memory (RAM) metric ให้โดยอัตโนมัติ ถ้าโจทย์ถามวิธีดู memory usage ต้องติดตั้ง CloudWatch Unified Agent หรือส่ง custom metric เอง อย่าเลือกคำตอบที่บอกว่าดูได้จาก default EC2 metrics
Tips สำหรับการสอบ
จำตัวเลข: PutMetricData ยอมรับข้อมูลย้อนหลังได้ 2 สัปดาห์ และล่วงหน้า 2 ชั่วโมง; high-resolution metric ใช้ได้กับ alarm ที่ period สั้น 10 หรือ 30 วินาที

02CloudWatch Logs (Groups, Agent, Insights)

CloudWatch Logs เก็บ log โดยจัดเป็นลำดับชั้น: Log Group (มักเป็นชื่อแอป) > Log Stream (instance/container/log file เดียวกัน) ตั้ง retention ได้ตั้งแต่ 1 วันถึงตลอดไป (never expire) ต่อ log group

แหล่งที่มาของ Logs และ Agents

  • SDK, Elastic Beanstalk, ECS, Lambda, VPC Flow Logs, API Gateway, CloudTrail, Route 53 ส่ง log เข้า CloudWatch Logs ได้
  • CloudWatch Logs Agent (รุ่นเก่า) ส่งได้แค่ logs
  • CloudWatch Unified Agent (รุ่นใหม่ แนะนำ) ส่งทั้ง logs และ system metrics เช่น RAM, disk, processes, netstat
  • EC2 ต้องมี IAM Role ที่อนุญาตให้ส่ง logs ไปยัง CloudWatch

Metric Filters & Logs Insights & Export

  • Metric Filter = แปลง pattern ใน log ให้กลายเป็น CloudWatch metric (เช่น นับจำนวน ERROR) แล้วผูกกับ alarm ได้; ใช้ได้เฉพาะกับ log ที่เข้ามาหลังสร้าง filter (ไม่ย้อนหลัง)
  • CloudWatch Logs Insights = query log แบบ interactive ด้วยภาษา query เฉพาะ (ไม่ใช่ real-time engine แต่เป็น query/analysis)
  • Export to S3 = batch ใช้ CreateExportTask อาจใช้เวลาถึง 12 ชั่วโมง จึงพร้อมให้ export (ไม่เหมาะกับ near-real-time)
  • Subscription Filter = stream log แบบ real-time ไปยัง Kinesis Data Streams, Firehose, หรือ Lambda
กับดักข้อสอบ: Export S3 vs Subscription
ถ้าโจทย์ต้องการ near-real-time ส่ง log ไป S3 หรือ OpenSearch ต้องใช้ Subscription Filter -> Kinesis Data Firehose ไม่ใช่ Export to S3 เพราะ Export to S3 เป็น batch ที่อาจดีเลย์ถึง 12 ชั่วโมง
sql
fields @timestamp, @message
| filter @message like /ERROR/
| sort @timestamp desc
| limit 20
Tips สำหรับการสอบ
ต้องดู memory/disk บน EC2 -> Unified Agent; ต้องนับ pattern แล้ว alarm -> Metric Filter; ต้อง query log สืบสวน -> Logs Insights; ต้อง stream real-time -> Subscription Filter

03CloudWatch Alarms & Dashboards

CloudWatch Alarm ใช้เพื่อ trigger การแจ้งเตือนจาก metric โดยมี 3 states: OK, INSUFFICIENT_DATA, และ ALARM ตั้งได้ทั้งจาก metric เดี่ยวหรือ math expression

Alarm Actions & EC2 Recovery

  • EC2 Action: stop, terminate, reboot, หรือ recover instance
  • Auto Scaling Action: เพิ่ม/ลด capacity
  • SNS Action: ส่งข้อความไป SNS topic (แล้วต่อไป Lambda, SQS, email)
  • EC2 Instance Recovery ใช้ StatusCheckFailed_System metric — instance ใหม่จะคง private/public IP, Elastic IP, metadata, placement group เดิม

Composite Alarms

Composite Alarm รวมหลาย alarm ด้วย logic AND/OR เพื่อลด alarm noise เช่น แจ้งเตือนเฉพาะเมื่อ CPU สูง และ network สูงพร้อมกัน ช่วยกรอง false alarm

Tips สำหรับการสอบ
อยาก test alarm ให้เข้า ALARM state ทันที ใช้ CLI: aws cloudwatch set-alarm-state --alarm-name myAlarm --state-value ALARM --state-reason testing
กับดักข้อสอบ: Recover ต้องใช้ EC2 ไม่ใช่ ASG เสมอ
ถ้าโจทย์เป็น single EC2 instance ที่ system check fail และต้องการกู้คืนโดยคง IP เดิม -> ใช้ CloudWatch alarm + EC2 recover action ส่วน ASG เหมาะกับ scaling/replacement หลาย instance

04Amazon EventBridge (ครอบคลุมเน้น)

Amazon EventBridge (เดิมชื่อ CloudWatch Events) คือ serverless event bus ที่ทำงานแบบ event-driven โดยจับ event แล้วส่งไป target ผ่าน rule ปัจจุบัน EventBridge เป็นชื่อใหม่ที่มีฟีเจอร์มากกว่า CloudWatch Events (ที่เป็น API/ชื่อเดิม)

ประเภทของ Rule

Schedule / Cron Rule
รัน task ตามเวลา เช่น cron(0 12 * * ? *) เรียก Lambda ทุกชั่วโมง หรือ rate(5 minutes)
Event Pattern Rule
ตอบสนองต่อ event ที่ match pattern (JSON) เช่น เมื่อ EC2 instance เปลี่ยนเป็น state stopped ให้ trigger target

Event Buses

  • Default event bus = event จาก AWS services
  • Partner event bus = event จาก SaaS partners (เช่น Zendesk, Datadog)
  • Custom event bus = event จากแอปของคุณเอง (PutEvents)
  • Event bus แชร์ข้าม account ได้ผ่าน resource-based policy
  • Archive & Replay เก็บ event ไว้ replay ภายหลังได้

Schema Registry

Schema Registry วิเคราะห์ event ใน bus เพื่อสร้าง schema (โครงสร้างข้อมูล) อัตโนมัติ และสร้าง code bindings สำหรับแอปคุณ ทำให้รู้ว่า event มี field อะไรบ้าง รองรับ versioning

json
{
  "source": ["aws.ec2"],
  "detail-type": ["EC2 Instance State-change Notification"],
  "detail": {
    "state": ["stopped", "terminated"]
  }
}
หัวข้อCloudWatch Events (เดิม)EventBridge (ใหม่)
Event busมีแต่ default busdefault + custom + partner bus
SaaS partner eventsไม่รองรับรองรับ
Schema Registryไม่มีมี
Archive & Replayไม่มีมี
สถานะชื่อ/API เดิมชื่อแนะนำปัจจุบัน (superset)
Tips สำหรับการสอบ
EventBridge และ CloudWatch Events ใช้ API เดียวกัน underlying เหมือนกัน แต่ถ้าโจทย์ถามถึง partner events, custom bus, schema registry หรือ replay ให้ตอบ EventBridge เสมอ
กับดักข้อสอบ: Schedule task
ต้องการรัน Lambda เป็นรอบ (cron) แบบ serverless -> ใช้ EventBridge Schedule Rule ไม่ใช่ตั้ง cron บน EC2 และไม่ใช่ Step Functions

05AWS X-Ray: Concepts & Tracing (เน้น)

AWS X-Ray เป็นบริการ distributed tracing ช่วยวิเคราะห์และดีบัก microservices โดยติดตาม request ที่วิ่งผ่านหลาย service เห็นภาพรวมเป็น Service Map และหา bottleneck/error ได้ ใช้แทนการ debug ด้วย log กระจัดกระจาย

Segments, Subsegments & Trace

  • Trace = end-to-end ของ request เดียวที่ประกอบจากหลาย segment
  • Segment = ข้อมูลที่แต่ละ service/compute resource ส่งให้ X-Ray
  • Subsegment = รายละเอียดย่อยภายใน segment เช่น call ไป DynamoDB, HTTP downstream
  • Service Map = แผนภาพ visual ของ service ทั้งหมดและความสัมพันธ์

Annotations vs Metadata

คุณสมบัติAnnotationsMetadata
รูปแบบkey-value pairskey-value (object/array ซับซ้อนได้)
ใช้ filter/search ได้ได้ (indexed)ไม่ได้ (not indexed)
จุดประสงค์ใช้กรอง trace ใน consoleเก็บข้อมูลเพิ่มเติมที่ไม่ต้อง search
กับดักข้อสอบสุดคลาสสิก
Annotations = ค้นหา/filter ได้ (indexed) ส่วน Metadata = ค้นหาไม่ได้ โจทย์มักถามว่าอยากกรอง trace ตาม customerId -> ต้องใช้ Annotation ไม่ใช่ metadata
Tips สำหรับการสอบ
จำ X-Ray ต้องการ 2 อย่าง: (1) instrument code ด้วย X-Ray SDK และ (2) มี IAM permissions ที่ถูกต้องในการส่ง trace data ถ้า X-Ray ไม่ทำงาน ให้ตรวจ 2 ข้อนี้ก่อน

06X-Ray: Daemon, Sampling & Integrations

X-Ray SDK ส่ง trace ไปยัง X-Ray Daemon (process ที่ listen UDP port 2000) ซึ่งทำหน้าที่ buffer และส่ง batch ไปยัง X-Ray API การติดตั้ง daemon ต่างกันตาม compute

การติดตั้ง Daemon ตาม Service

EC2 / On-premises
ต้องติดตั้ง X-Ray daemon เอง และ instance ต้องมี IAM role ที่อนุญาต xray:PutTraceSegments
ECS
รัน daemon เป็น sidecar container หรือ daemon set; Fargate ใช้ sidecar container
AWS Lambda
เปิด Active Tracing ใน config; AWS จัดการ daemon ให้ ต้องมี IAM permission (AWSXRayDaemonWriteAccess) และ instrument ด้วย SDK

Sampling Rules

Sampling Rules ควบคุมว่าจะเก็บ trace กี่ % เพื่อลด cost และ overhead โดย default คือ reservoir 1 request ต่อวินาที บวกกับ 5% ของ request ที่เหลือ ปรับ rules ได้โดยไม่ต้อง redeploy code (เปลี่ยนใน X-Ray console/API)

ServiceLens

ServiceLens รวม X-Ray traces + CloudWatch metrics + logs เข้าด้วยกัน ให้เห็น health และ performance ของ service ครบในที่เดียว

json
{
  "description": "Sample 10% with reservoir of 1/s",
  "service_name": "*",
  "http_method": "*",
  "url_path": "*",
  "fixed_target": 1,
  "rate": 0.1
}
กับดักข้อสอบ: ปรับ sampling ไม่ต้อง redeploy
ถ้าต้องการเปลี่ยนอัตราการ sampling ในโปรดักชัน ไม่ต้องแก้โค้ดหรือ redeploy แค่แก้ sampling rule ผ่าน X-Ray console/API; อย่าเลือกคำตอบที่บอกให้ deploy ใหม่
Tips สำหรับการสอบ
จำ daemon ใช้ UDP port 2000; Lambda/Beanstalk จัดการ daemon ให้ แต่ EC2/ECS-Fargate ต้องตั้งเอง (sidecar); API Gateway รองรับ X-Ray tracing เปิดได้ที่ stage

07AWS CloudTrail (Audit & Governance)

AWS CloudTrail บันทึก API calls และ activity ทั้งหมดใน account ตอบโจทย์ governance, compliance และ audit เปิดใช้ by default และเก็บ event history 90 วัน; ถ้าต้องการเก็บนานกว่านั้นต้องสร้าง Trail ส่งไป S3

Management Events vs Data Events

ประเภทManagement EventsData Events
บันทึกอะไรoperations บน resources (เช่น CreateBucket, AttachRolePolicy)การเข้าถึงข้อมูลภายใน resource
ตัวอย่างconfig security, networkS3 GetObject/PutObject, Lambda Invoke
Defaultเปิดบันทึกปิด (ปริมาณสูง เสียเงินเพิ่ม)
ปริมาณต่ำกว่าสูงมาก

Insights, Integrity & Multi-region

  • CloudTrail Insights ตรวจจับ activity ผิดปกติ (unusual API call patterns) เช่น burst ของ IAM action หรือ resource provisioning ที่ผิดปกติ — เป็นฟีเจอร์เสริมที่ต้องเปิด
  • Log File Integrity Validation ใช้ SHA-256 hashing + RSA signing พิสูจน์ว่า log file ไม่ถูกแก้ไข/ลบ
  • Multi-region Trail จับ event จากทุก region (แนะนำเปิด)
  • Organization Trail จับทุก account ใน AWS Organizations
กับดักข้อสอบ: ใครลบ resource
โจทย์ถาม 'ใครลบ EC2 / ใครแก้ security group / ใครลบ S3 bucket' -> ใช้ CloudTrail (event history). ส่วนถ้าถาม 'ใคร GetObject ไฟล์ใน S3' ต้องเปิด Data Events ก่อน เพราะ default ไม่บันทึก
Tips สำหรับการสอบ
แยกให้ออก: CloudTrail = ใครทำอะไร (API audit), CloudWatch = performance/metrics/logs (สุขภาพระบบ), X-Ray = tracing request ข้าม service, Config = resource compliance/config history

08สรุปเปรียบเทียบ & เลือกบริการให้ถูก

ส่วนนี้เป็นสรุปไว้ตัดสินใจเร็วในห้องสอบ โจทย์ DVA-C02 มักให้ scenario แล้วถามว่าควรใช้บริการไหน ความต่างของแต่ละบริการคือ keyword หลัก

ต้องการบริการที่ถูกkeyword โจทย์
ดู metric/สุขภาพระบบ + RAMCloudWatch (Unified Agent)memory, disk, CPU, dashboard
ใครเรียก API / ลบ resourceCloudTrailwho, audit, compliance, deleted
trace request ข้าม microservicesX-Raylatency bottleneck, distributed, service map
event-driven / cron serverlessEventBridgereact to event, schedule, partner SaaS
stream log real-timeCloudWatch Logs Subscriptionnear real-time, Kinesis/Firehose
query log สืบสวนCloudWatch Logs Insightssearch/analyze logs
  • เห็นคำว่า memory/RAM/disk บน EC2 -> CloudWatch Unified Agent + custom metric
  • เห็นคำว่า who/audit/compliance/หา root cause ว่าใครเปลี่ยน -> CloudTrail
  • เห็นคำว่า distributed/latency/bottleneck ข้าม service -> X-Ray
  • เห็นคำว่า react to / on event / cron / SaaS partner -> EventBridge
  • เห็นคำว่า near real-time log to S3/OpenSearch -> Subscription Filter + Firehose
Tips สำหรับการสอบ
อ่านโจทย์หา keyword ก่อนเลือกคำตอบ: 'who/audit' = CloudTrail, 'performance/metric' = CloudWatch, 'trace/microservice' = X-Ray, 'event/schedule' = EventBridge. การจับ keyword นี้แก้ได้เกินครึ่งของข้อในหัวข้อนี้

คำถามทบทวน

ทดสอบความเข้าใจหัวข้อ Monitoring, Troubleshooting & Audit

24 ข้อ · เลือกคำตอบเพื่อดูเฉลยและคำอธิบาย

ทำแล้ว 0/24คะแนน 0
  1. 1.ทีมต้องการ monitor memory utilization ของ EC2 instances ใน production ควรทำอย่างไร?

  2. 2.บริษัทต้องการ stream application logs จาก CloudWatch Logs ไปยัง Amazon OpenSearch แบบ near-real-time ควรใช้อะไร?

  3. 3.Developer ต้องการกรอง X-Ray traces ตามค่า customerId เพื่อหา request ของลูกค้ารายหนึ่ง ควรเก็บ customerId แบบใด?

  4. 4.ต้องการลดอัตราการ sampling ของ X-Ray ใน production โดยไม่หยุด service ควรทำอย่างไร?

  5. 5.Security team ต้องการรู้ว่าใครเป็นคนลบ security group เมื่อวานนี้ ควรดูจากที่ไหน?

  6. 6.บริษัทต้องการตรวจสอบว่าใครเข้าถึง (GetObject) ไฟล์ใน S3 bucket ที่เก็บข้อมูลลับ จะเปิดอะไรใน CloudTrail?

  7. 7.ต้องการรัน Lambda function ทุกวันเวลา 8 โมงเช้าแบบ serverless ควรใช้อะไร?

  8. 8.องค์กรต้องการรับ events จาก SaaS provider (เช่น Datadog) เข้ามาประมวลผลใน AWS ควรใช้ฟีเจอร์ใด?

  9. 9.single EC2 instance เกิด system status check failure (ปัญหา hardware ฝั่ง AWS) ต้องการกู้คืนอัตโนมัติโดยคง private/public IP เดิม ควรทำอย่างไร?

  10. 10.ทีมต้องการ alert เฉพาะเมื่อ CPU สูง และ network สูงพร้อมกัน เพื่อลด false alarm ควรใช้อะไร?

  11. 11.ต้องการนับจำนวน log entry ที่มีคำว่า ERROR แล้วสร้าง alarm เมื่อเกิน threshold ควรใช้อะไร?

  12. 12.X-Ray daemon รับ trace data จาก SDK ผ่าน protocol และ port ใด?

  13. 13.Lambda function เปิด Active Tracing แล้วแต่ trace ไม่ปรากฏใน X-Ray สาเหตุที่เป็นไปได้มากที่สุดคือ?

  14. 14.บริษัทต้องการพิสูจน์ในการ audit ว่า CloudTrail log files ไม่ถูกแก้ไขหรือลบหลังจากบันทึก ควรใช้ฟีเจอร์ใด?

  15. 15.CloudWatch high-resolution custom metric รองรับ storage resolution ค่าใดบ้าง?

  16. 16.ทีมต้องการ visualize health, latency และ error ของ microservices หลายตัวพร้อม metrics และ logs ในที่เดียว ควรใช้อะไร?

  17. 17.ข้อใดอธิบายความสัมพันธ์ระหว่าง trace, segment, subsegment ใน X-Ray ได้ถูกต้อง?

  18. 18.Default X-Ray sampling rule กำหนดค่าเริ่มต้นไว้อย่างไร?

  19. 19.ข้อใดคือเหตุผลหลักที่ควรเลือก EventBridge แทน CloudWatch Events (ชื่อเดิม)?

  20. 20.ต้องการ export CloudWatch Logs ไป S3 เพื่อเก็บ archive ระยะยาว ข้อใดถูกต้องเกี่ยวกับ CreateExportTask?

  21. 21.Developer สงสัยว่า request ที่ช้าเกิดจาก downstream service ใดในสถาปัตยกรรม microservices ควรใช้อะไร?

  22. 22.CloudTrail Insights ใช้ตรวจจับอะไร?

  23. 23.API Gateway ต้องการเปิด X-Ray tracing เพื่อตาม request ที่วิ่งจาก API GW ไป backend ควรทำอย่างไร?

  24. 24.ต้องการเก็บ CloudTrail event history นานกว่า 90 วันเพื่อ compliance ควรทำอย่างไร?