あるチームがAWS X-Rayを使ってマイクロサービスのパフォーマンスを可視化しようとしている。Lambda関数からRDSへのクエリ実行時間を個別に計測してX-Rayのトレースに記録したい。最も適切な方法はどれか。
- A. CloudWatchのカスタムメトリクスにクエリ実行時間をPutMetricDataで記録する
- B. Lambda関数のコード内でX-Ray SDKのサブセグメントを作成し、RDSクエリをその中で実行する
- C. Lambda関数の環境変数にX-Ray ARNを設定することでRDSアクセスが自動的にトレースされる
- D. X-Rayデーモンに設定ファイルでRDSのエンドポイントを登録する
解答と解説を見る
正解: B
X-Rayでダウンストリームのデータベースクエリなど特定処理の実行時間を個別に記録するには、SDKのサブセグメントを作成してその中で処理を囲む(選択肢B)が正しい方法である。サブセグメントはセグメント内に入れ子で作成でき、名前・メタデータ・アノテーションを付与してサービスマップに詳細が表示される。選択肢Dはデーモン設定でRDSを自動トレースする方法は存在しない。選択肢AのCloudWatchカスタムメトリクスはX-Rayのトレース記録ではなく、異なる監視手段である。選択肢CのARNを環境変数に設定しても自動トレースは有効化されない。X-Rayの自動インスツルメンテーションはHTTPクライアントやAWS SDKコールに限られ、RDSへの直接クエリはサブセグメントによる手動インスツルメンテーションが必要。
📚 関連サービスの解説: AWS Lambda ・ AWS X-Ray