AWS X-Ray
分散アプリケーションのリクエストをトレースし、パフォーマンスのボトルネックを特定するサービス
何ができるか
AWS X-Ray は、分散アプリケーションのリクエストをエンドツーエンドでトレースするサービスです。API Gateway、Lambda、ECS、EC2 などを経由するリクエストの流れを可視化し、レイテンシのボトルネックやエラーの発生箇所を特定します。サービスマップでアプリケーション全体のアーキテクチャと依存関係を視覚的に把握できます。
どのような場面で使うか
マイクロサービスアーキテクチャのパフォーマンス分析、Lambda 関数のコールドスタートやタイムアウトの調査、API のレイテンシ問題の原因特定、エラー率の高いサービスの特定に利用されます。 この分野について体系的に学びたい方は、関連書籍 (Amazon) も参考になります。
身近な例え
宅配便の追跡システムに例えられます。荷物 (リクエスト) が倉庫 (サービス) を経由するたびに追跡番号 (トレース ID) で記録され、どこで遅延が発生したか、どこで荷物が紛失 (エラー) したかを追跡できます。
X-Ray とは
AWS X-Ray は、分散トレーシングサービスです。アプリケーションに X-Ray SDK を組み込むか、Lambda や API Gateway の設定でトレースを有効化すると、リクエストごとにトレース ID が付与され、各サービスでの処理時間が記録されます。サービスマップでは、サービス間の呼び出し関係、平均レイテンシ、エラー率が一目で確認できます。
トレースとセグメント
X-Ray のトレースは、1 つのリクエストが通過するすべてのサービスの記録です。各サービスでの処理はセグメントとして記録され、外部 API 呼び出しや DB クエリはサブセグメントとして詳細に記録されます。トレースのタイムラインビューで、どのサービスのどの処理に時間がかかっているかを視覚的に特定できます。サンプリングルールでトレースの収集量を制御し、コストを管理します。
はじめかた
Lambda 関数の場合、関数の設定で「アクティブトレース」を有効にするだけで X-Ray トレースが開始されます。EC2 や ECS の場合は X-Ray デーモンをインストールし、アプリケーションに X-Ray SDK を組み込みます。CloudWatch コンソールの X-Ray トレースセクションでサービスマップとトレースを確認できます。
注意点
- トレースの記録数とスキャン数に応じた従量課金。サンプリングルールで収集量を制御してコストを管理する
- X-Ray は CloudWatch と統合されており、CloudWatch ServiceLens からサービスマップとトレースを確認可能
さらに詳しく知りたい方は、関連書籍 (Amazon) で理解を深められます。