AWS X-Ray 是 AWS 提供的 「分散式追蹤 (Distributed Tracing) 服務」。
一句話總結:它是微服務架構 (Microservices) 的「除錯神器」。它能追蹤一個請求 (Request) 在你的應用程式中經過的所有路徑,並畫出一張「地圖」,告訴你哪個環節「變慢了」或「報錯了」。如果你的系統是從單體式 (Monolith) 變成了微服務(例如:API Gateway -> Lambda -> DynamoDB),當客戶抱怨「好慢」時,你很難知道到底是誰慢。X-Ray 就是來解決這個問題的。
1. 核心功能與價值 (Core Value)
A. 服務地圖 (Service Map) —— 視覺化架構
- X-Ray 會自動根據流量畫出一張圖,顯示你的應用程式中所有元件(EC2, Lambda, DynamoDB, SNS 等)的連接關係。
- 紅綠燈顯示:綠色:正常。黃色:有錯誤 (4xx Error)。紅色:有故障 (5xx Error)。圓圈大小:代表回應時間長短。
- 你可以一眼看出:「喔!原來是寫入 DynamoDB 那一段變紅了。」
B. 追蹤視圖 (Trace View) —— 瀑布圖
- 它會顯示單一請求的完整生命週期。
- 類似 Chrome 開發者工具的 Network 瀑布圖,你可以看到每一段花費的時間。例子:總共花 2 秒。Lambda 運算花 0.1 秒,但等待 S3 回傳花了 1.9 秒。結論:瓶頸在 S3,不是 Lambda 寫太爛。
2. 關鍵術語 (Key Concepts) —— 考試必考區!
A. Segments (區段) 與 Subsegments (子區段)
- Segment:紀錄關於運算資源(如 Lambda, EC2)的工作資訊。
- Subsegment:紀錄更細部的操作,例如「呼叫下游 AWS 服務」、「SQL 查詢」或「外部 HTTP 呼叫」。
B. Annotations (註釋) vs. Metadata (中繼資料)
這兩者都是讓你把自定義資料塞進 X-Ray 的,但用途不同:
- Annotations (註釋):有索引 (Indexed)。用途:用來搜尋與過濾。例子:UserID, GameID。你可以搜尋:「找出所有 UserID = 123 的 Trace」。
- Metadata (中繼資料):無索引 (Not Indexed)。用途:存額外的除錯資訊。例子:完整的 Error Message、Payload 內容。你不能搜尋它,但點進去 Trace 可以看到。
C. Sampling (採樣)
- X-Ray 不需要記錄 100% 的請求(那樣太貴且拖慢效能)。
- 你可以設定 採樣規則 (Sampling Rules),例如:「每秒記錄第 1 筆請求,剩下的請求只記錄 5%」。
D. X-Ray Daemon
- 如果你在 EC2 或 ECS 上使用 X-Ray,你需要安裝並執行 X-Ray Daemon。
- 它是一個背景程式,負責收集 SDK 發出的資料,並批次 (UDP) 傳送到 X-Ray 服務,以減少對應用程式效能的影響。
- (註:Lambda 已經內建整合,不需要自己裝 Daemon)。
3. 超級比一比:X-Ray vs. CloudWatch
這兩個都是監控,差別在哪?

4. 考試關鍵字 (Keywords)
- Troubleshoot performance issues (排除效能問題)。
- Debug distributed / microservices applications (除錯分散式/微服務應用)。
- Visualize service map (視覺化服務地圖)。
- Identify bottlenecks / latency (識別瓶頸/延遲)。
- Annotations (用於搜尋/過濾的 Key-Value)。
- Trace / Segment。
總結
當題目提到 「微服務架構」、「除錯」、「分析效能瓶頸」 或 「想知道請求在哪個環節卡住」,答案就是 AWS X-Ray。


















