AWS X-Ray とは
AWS X-Ray はアプリケーションが処理するリクエストに関するデータを収集するサービスです。データを表示、フィルタリング、洞察を取得して問題の識別や最適化の機会を識別するために使用するツールを提供します。アプリケーションに対するトレース対象のリクエストの場合、リクエストとレスポンスに関する情報だけではなく、アプリケーションがダウンストリーム AWS リソース、マイクロサービス、データベース、および ウェブ API に対して行う呼び出しの詳細な情報も表示できます。
![X-Ray は、アプリケーションリクエストに関する詳細情報を表示します。](images/scorekeep-cw-timeline-segment.png)
AWS X-Ray は、アプリケーションが使用する、X-Ray と既に統合されている AWS のサービスに加えて、アプリケーションからトレースを受信します。アプリケーションを計測するには、アプリケーション内の受信および送信されるリクエストやその他のイベントのトレースデータと、各リクエストに関するメタデータを送信する必要があります。多くの計測シナリオで必要となるのは、設定の変更のみです。例えば、受信 HTTP リクエスト、および Java アプリケーションで行われる AWS のサービス へのダウンストリーム呼び出しをすべて計測することができます。X-Ray トレースシング用アプリケーションを計測するために使用できる SDK、エージェント、およびツールがいくつかあります。詳細は、アプリケーションの計測 を参照してください。
X-Ray と統合された AWS のサービス は、受信するリクエストにトレースヘッダーを追加したり、X-Ray にトレースデータを送信したり、X-Ray デーモンを実行したりすることができます。たとえば、AWS Lambda は、リクエストに関するトレースデータをLambda関数に送信したり、X-Rayデーモンをワーカー上で実行してX-Ray SDKの使用を簡単にすることができます。
![X-Ray SDK の動作の方法](images/xray-how-it-works.png)
各クライアントSDKは、トレースデータを直接X-Rayに送らずに、UDPトラフィックをリッスンしているデーモンプロセスにJSONセグメントドキュメントを送ります。 X-Ray デーモン は、セグメントをキューにバッファリングし、バッチでX-Rayにアップロードします。デーモンは、Linux、Windows、およびで macOS で使用でき、AWS Elastic Beanstalk プラットフォームと AWS Lambda プラットフォームに含まれます。
X-Ray は、クラウドアプリケーションを動かす AWS リソースからのトレースデータを使用して、詳細なトレースマップを生成します。トレースマップには、クライアント、フロントエンドサービスのほか、フロントエンドサービスがリクエストの処理とデータの維持のために呼び出すバックエンドサービスが表示されます。トレースマップを使用して、ボトルネック、レイテンシーのスパイク、その他の問題を識別して解決し、アプリケーションのパフォーマンスを向上させます。
![トレースマップには、フロントエンドサービスが呼び出してリクエストを処理しデータを維持するクライアント、フロントエンドサービス、バックエンドサービスが表示されます](images/scorekeep-gettingstarted-cw-servicemap-simplified.png)