無限ノック › DVA 練習問題一覧 › 問題
DVAAWSのサービスを使用した開発

開発者がAWS X-Ray SDKを使ってLambda関数をインストルメントしています。この関数は注文を処理し、以下の2種類の情報をX-Rayトレースに付加したいと考えています。 ①顧客のプランティア(free / premium / enterprise):X-Rayコンソールのフィルター式で検索・絞り込みに使いたい ②処理した注文オブジェクト全体(最大100KBのJSON):デバッグ時に参照するが検索には使わない これらを正しく実装するX-Ray SDKの使い方はどれですか?

A
プランティアをアノテーション(putAnnotation)として追加してX-Rayで検索可能にし、注文オブジェクトはメタデータ(putMetadata)として格納する
✓ 正解
アノテーションはインデックス化されX-Rayコンソールのフィルター式で検索でき、メタデータは非インデックスで大きなオブジェクトも格納できる。2つの要件にそれぞれ適切なX-Ray SDKの機能を正しく使い分けている。
B
両方をアノテーション(putAnnotation)として追加し、X-Rayコンソールの検索フィルターでプランティアと注文オブジェクトを一元的に検索できるようにする
アノテーションはプリミティブ型(文字列・数値・真偽値)のみ対応しており、100KBのJSONオブジェクトをアノテーションとして追加できない。大きなオブジェクトはメタデータで格納する必要がある。
C
両方をメタデータ(putMetadata)として追加し、プランティアのフィルタリングはCloudWatch Logs Insightsを使って代替的に実施する
メタデータはインデックス化されないためX-Rayコンソールでのフィルタリングに使用できない。プランティアのような検索・フィルタリングに使いたい値はアノテーションとして追加する必要がある。
D
プランティアをCloudWatchカスタムメトリクスのディメンションとして記録し、注文オブジェクトはCloudWatch Logsへ出力してX-Rayと連携させる
CloudWatchメトリクスとLogsはX-Rayトレースとは別のサービスであり、X-Rayトレースにデータを付加するという要件を満たさない。X-Rayコンソールでの一元的なトレース分析ができなくなる。

解説

X-Ray SDKでは、セグメントやサブセグメントに2種類の追加情報を付与できます。 アノテーション(Annotations)はキーと値(文字列・数値・真偽値)のペアで、インデックス化されX-Rayコンソールのフィルター式(例:annotation.planTier = "premium")で検索・絞り込みに使用できます。 メタデータ(Metadata)はオブジェクトや配列を含む任意のデータを格納でき、大きなオブジェクトも保存可能ですが、インデックス化されないため検索には使えません。 要件①の「検索に使う」プランティアはアノテーション、要件②の「参照するだけ」の注文オブジェクトはメタデータが適切です。 選択肢Bのアノテーションは文字列・数値・真偽値のプリミティブ型のみ対応しており、100KBのJSONオブジェクトをアノテーションとして追加することはできません。 選択肢Cのメタデータはインデックス化されないため、X-RayコンソールでのフィルタリングにCloudWatch Logs Insightsを組み合わせる必要が生じ、2つのサービスをまたぐ非効率な構成になります。 選択肢DのCloudWatchはX-Rayとは別のモニタリングサービスであり、X-Rayトレースにデータを付加するという要件の目的から外れています。

ドメイン別正答率・予想スコアでリアルタイムに実力把握

無限ノックでDVAを徹底対策。全問AI生成のオリジナル問題。

無料で演習を始める →
← DVA の問題一覧に戻る