DVAトラブルシューティングと最適化
複数のマイクロサービスで構成されたサーバーレスアプリケーションにおいて、リクエストの追跡や各サービス間(API Gateway -> Lambda -> DynamoDB)の処理遅延ボトルネックを特定したいと考えています。AWS X-Rayを正しく導入してデータを収集・送信するための構成として正しいものはどれですか。
AアプリケーションコードにAWS X-Ray SDKを組み込んでセグメント情報を記録し、X-Ray Daemonを介してデータをX-Rayサービスへ送信する。
✓ 正解
アプリケーションコードにX-Ray SDKを組込み、X-Ray Daemon(UDP)経由でトレースデータを非同期送信するのが標準的な手順です。
BAmazon CloudWatch Agentを導入し、アプリケーションの標準出力ログをX-Rayフォーマットに自動変換して直接転送する。
CloudWatch Agentはシステムメトリクスやログの収集用であり、アプリ内のX-Rayトレースセグメントデータを生成・転送するものではありません。
CAPI GatewayとLambdaのマネージドコンソールでトレースを有効化し、コード側の変更やSDKの導入を行わずに全てのトレースデータを収集する。
コンソールでの有効化(アクティブトレース)に加えて、アプリ内部のサブセグメントや詳細なダウンストリーム追跡にはX-Ray SDKの導入が必要です。
DAWS AppConfigを使用してX-Rayのデータ収集フラグを有効化し、DynamoDB Streams経由でトレースデータを蓄積する。
AWS AppConfigやDynamoDB StreamsはX-Rayトレースデータの生成や転送を行うためのサービスコンポーネントではありません。
解説
AWS X-Rayを使用して詳細なエンドツーエンドのトレースやパフォーマンス分析を行うには、アプリケーションコード内に「AWS X-Ray SDK」を組み込んでトレースデータ(セグメント/サブセグメント)を生成し、それを「X-Ray Daemon」プロセス経由で非同期にX-Rayサービスへ送信する必要があります(LambdaではマネージドのDaemonが自動で処理します)。マネージドサービス側の有効化だけではアプリ内部の詳細(特定のDB呼び出しや外部API呼び出しの計測)までは収集できません。
ドメイン別正答率・予想スコアでリアルタイムに実力把握
無限ノックでDVAを徹底対策。全問AI生成のオリジナル問題。
無料で演習を始める →