本文へスキップ
BecomeCoder

AWSコース · 第13章 開発者ツールと自動化 ― 作って届けるまでを速くする · レッスン64

X-Ray と可観測性 ― 動かしたあとを見る

導入

「なぜかこのAPIだけ遅い」——サーバーが1台なら調べるのは簡単ですが、Lambda・API Gateway・DynamoDBと処理が分かれていると、どこで時間がかかっているのか分かりません。

説明

AWS X-Rayは、1つのリクエストがどのサービスをどの順で通り、どこで何ミリ秒かかったかを追跡(トレース)できるサービスです。これを分散トレーシングと呼びます。処理を可視化した図(サービスマップ)で、遅い箇所やエラーが起きた箇所をひと目で特定できます。

運用でシステムの状態を把握する力を可観測性(オブザーバビリティ)と呼び、AWSでは主に3つの柱で支えます。

見るもの担当サービス
メトリクス数値(CPUレイテンシ・エラー率)Amazon CloudWatch
ログアプリやサーバーが出す記録CloudWatch Logs
トレース1リクエストの流れと所要時間AWS X-Ray
flowchart LR
    Req["1件のリクエスト"] --> AG["API Gateway 12ms"]
    AG --> L["Lambda 240ms"]
    L --> DB["DynamoDB 8ms"]
    L -.トレースを送信.-> XR["X-Ray(サービスマップ)"]

CloudWatchの関連機能も押さえておきましょう。CloudWatch Logs Insightsはログを検索・集計するためのクエリ機能、CloudWatch Syntheticsは外形監視(利用者の代わりに定期的にサイトへアクセスして正常性を確認する)です。設定値や機能フラグを安全に配布するAWS AppConfigもあわせて覚えておくとよいでしょう。

読んでみよう

「どこで時間がかかったかを追う=X-Ray」。可観測性は「メトリクス(CloudWatch)・ログ(CloudWatch Logs)・トレース(X-Ray)」の3点セットで整理しておきましょう。