ある企業は AWS 上でマイクロサービスアーキテクチャを採用しており、Amazon API Gateway → AWS Lambda → Amazon DynamoDB および API Gateway → Lambda → Amazon ECS → Amazon RDS という 2 つのサービスフローが存在します。ユーザーから断続的なレスポンス遅延の報告があるものの、どのコンポーネントがボトルネックになっているか特定できていません。DevOps エンジニアとして、最小限のコード変更でサービス間のレイテンシーを可視化し、ボトルネックを特定するために最も適切な方法はどれですか?
AWS X-Ray はリクエストの分散トレーシングを提供し、サービスマップでエンドツーエンドのレイテンシーを可視化します。API Gateway・Lambda・ECS・DynamoDB・RDS はいずれも X-Ray とのネイティブ統合をサポートしており、環境変数の設定や X-Ray SDK の追加という最小限の変更で導入できます。サービスマップのノードごとにレイテンシーの中央値・P99 値とエラー率が表示されるため、ボトルネックとなっているコンポーネントを直感的に特定できます。 選択肢Aは、CloudWatch Logs Insights によるログ解析では手動でのクエリや相関付けが必要であり、分散トレースのように自動的にリクエストの流れを追跡することが困難です。 選択肢Cは、CloudWatch Container Insights はリソース使用率(CPU・メモリ)の観点に留まり、レイテンシーの根本原因特定には不十分です。 選択肢Dは、サードパーティ APM ツールの導入はコストや実装工数が高く、「最小限のコード変更」という要件に反します。