AWS X-Ray筆記

AWS X-Ray 是分散式系統的請求追蹤工具。

它可以幫你看出一個請求經過哪些服務、哪裡變慢、哪裡出錯。

1. AWS X-Ray 是什麼?

AWS X-Ray 是用來追蹤應用程式請求流程的服務。 它特別適合用在微服務、Serverless、分散式架構。

當一個請求會經過很多服務時,只看各自的 log 很難找出問題。 X-Ray 可以把請求經過的服務流程串起來,並用圖形化方式呈現。

2. X-Ray 解決什麼問題?

問題 說明
Log 太分散 每個服務都有自己的 log,很難串起來分析
微服務太複雜 一個請求可能經過多個服務,問題不容易定位
不知道哪裡慢 只知道使用者覺得慢,但不知道是哪一段造成
不知道哪裡錯 錯誤可能發生在中間某個服務
缺少全局視角 很難看出整個系統的服務依賴關係

3. X-Ray 可以做什麼?

功能 白話說明
Distributed Tracing 追蹤一個請求經過哪些服務
Service Graph 視覺化顯示服務之間的關係
Bottleneck Analysis 找出哪個服務最慢
Error Tracking 找出錯誤發生在哪個服務
Request Analysis 查看單一請求的完整路徑
SLA 檢查 確認請求是否在預期時間內完成
Impact Analysis 判斷哪些使用者受到影響

4. 適合使用 X-Ray 的場景

場景 X-Ray 的價值
微服務架構 看清楚服務之間怎麼互相呼叫
Serverless 架構 追蹤 Lambda、API Gateway、DynamoDB 等流程
使用 SQS / SNS 追蹤非同步流程中的問題
API 回應變慢 找出是哪一段造成延遲
使用者回報錯誤 查某一筆 request 的完整路徑
系統偶發異常 找出哪個服務出錯或被 throttling

5. X-Ray 流程圖

使用者送出 Request │ ▼ API Gateway │ ▼ Lambda / Application │ ├── 呼叫 DynamoDB ├── 發送 SQS Message ├── 發送 SNS Notification └── 呼叫其他微服務 ↓ AWS X-Ray 追蹤整個 Request 路徑 ↓ 你可以看到: ├─ 哪個服務慢 ├─ 哪個服務錯 ├─ 哪裡被 throttling ├─ 哪個 request 出問題 └─ 哪些使用者受影響

6. CloudWatch Logs vs X-Ray

工具 主要用途 白話理解
CloudWatch Logs 查看單一服務或應用程式的 log 看每個服務自己寫了什麼紀錄
AWS X-Ray 追蹤一個請求跨多個服務的完整流程 看 request 從頭到尾走過哪些地方

7. 實務理解

CloudWatch Logs 看的是 log,X-Ray 看的是 request 的旅程。

如果只是單一程式錯誤,看 log 就可以。 如果一個請求跨很多服務,X-Ray 會更適合。

8. X-Ray 的核心價值

X-Ray 最重要的價值是快速定位問題。

當使用者說系統很慢或功能失敗時,你可以用 X-Ray 看出:

  • 請求經過哪些服務
  • 哪個服務花最多時間
  • 哪個服務回傳錯誤
  • 哪裡發生 throttling
  • 哪些使用者可能受到影響

9. 關鍵字整理

AWS X-Ray Distributed Tracing Service Graph Troubleshooting Bottleneck SLA Throttling Microservices Serverless Request Trace

10. 最後總結

AWS X-Ray 是用來追蹤分散式系統請求流程的服務。 它可以幫你看出一個 request 從哪裡進來、經過哪些服務、哪裡變慢、哪裡出錯。

當系統變成微服務或 Serverless 架構時,X-Ray 可以補足單看 log 不容易追查問題的缺口。

參考網址

沒有留言:

張貼留言

AWS Security and Compliance 總整理

AWS Security and Compliance 總整理 一、核心概念 AWS 安全與合規不是靠單一服務,而是透過多層防護來完成。 從外部流量防護、身分權限、資料加密、設定稽核、威脅偵測,到集中管理與事件調查, 每一個服務...