DVA-C02トラブルシューティングと最適化MEDIUM単一選択

あるチームがX-RayのサービスマップでAPI Gatewayから始まりLambdaを経由してDynamoDBに到達するフローを確認しているが、特定のLambda呼び出しだけ異常に遅い。X-Rayトレースを詳しく調べてDynamoDBのどのクエリが遅いか特定したい。最も適切な方法はどれか。

  1. A. X-Rayコンソールのサービスマップでエラー率が高いノードをクリックして、そのノードのCloudWatchログに切り替える
  2. B. DynamoDBのCloudWatchメトリクスでSuccessfulRequestLatencyを確認して遅いテーブルを特定する
  3. C. X-Rayのアノテーションを使ってDynamoDBのテーブル名やクエリタイプを記録し、アノテーションでフィルタリングしてトレースを絞り込む
  4. D. LambdaのCloudWatchログのDURATIONフィールドで実行時間が長い呼び出しを探してログを確認する
解答と解説を見る

正解: C

X-Rayのアノテーション(選択肢C)はキーと値のペアをセグメントやサブセグメントに付与でき、後からフィルタリング検索に使える。DynamoDBのテーブル名・インデックス名・操作種別などをアノテーションとして記録し、X-Rayコンソールの「フィルター式」でそのアノテーション値を指定することで、特定テーブルへのアクセスを含むトレースだけを絞り込める。AWS X-Ray SDKはAWS SDKのDynamoDB呼び出しを自動インスツルメントしてサブセグメントを作成するが、独自のコンテキストはアノテーションで補完する。選択肢AはX-RayとCloudWatch Logsは連携しているが、ノードクリックで直接ログには遷移せず、またログの手動確認では非効率。選択肢BのSuccessfulRequestLatencyは集計メトリクスであり個々のクエリを特定できない。選択肢DのLambda Durationは関数全体の実行時間であり、DynamoDBの個別クエリの遅さは特定できない。

▸ この試験を本気で演習する(全150問・無料)