DVAトラブルシューティングと最適化
開発者は、Amazon API Gateway、AWS Lambda、Amazon DynamoDB で構成されるマイクロサービスアーキテクチャのトラブルシューティングを行っています。ユーザーリクエストが各サービスを通過する際の全体的な処理フローを可視化し、ボトルネックとなっているサービスや発生しているエラーの発生源を特定したいと考えています。適切なAWS X-Rayの導入・データ転送手順はどれですか。
Aアプリケーションコードに AWS X-Ray SDK を組み込んでセグメント/サブセグメント情報を記録し、X-Ray Daemon(UDP)を介してX-Rayサービスにトレースデータを送信する。
✓ 正解
X-Ray SDKによるトレース情報の生成と、X-Ray Daemonを介した非同期データ転送の組み合わせが標準的かつ最も詳細なデータを収集できる方法です。
BAmazon CloudWatch Agent を各サービス環境に常駐させ、標準出力されたアプリのログを自動的に分析してX-Rayトレースデータへリアルタイム変換する。
CloudWatch Agentはメトリクスやログ収集のためのエージェントであり、アプリケーションレベルのX-Rayトレース情報を生成する機能はありません。
CAPI GatewayとLambdaのコンソール上でアクティブトレースを有効化し、ソースコードの変更やSDKの追加を一切行わずに全詳細データを取得する。
コンソールでの有効化のみではサービス間の基本呼び出ししか記録されず、アプリ内部での詳細な処理時間やDynamoDBクエリ等のサブセグメント情報は収集できません。
DAWS Systems Manager Agent を利用してトレースログを収集し、Amazon S3に蓄積した後にAWS GlueでX-Rayエンドポイントへロードする。
Systems ManagerやS3、Glueを経由してトレースデータを転送する構成は不必要に複雑であり、X-Rayの標準アーキテクチャから大きく外れています。
解説
AWS X-Rayを使用して分散システムの追跡を行うには、アプリケーション内に「AWS X-Ray SDK」を導入してリクエストやデータベース呼び出しのサブセグメント情報を生成・追跡する必要があります。SDKが生成したトレースデータは、UDPポートを経由して「AWS X-Ray Daemon」へ送られ、デーモンがまとめてX-Ray APIに非同期転送します(Lambda等のマネージド環境ではDaemonが自動管理されます)。コンソール設定のみではアプリ内部の細かなDBクエリや外部呼び出しの計測ができません。
ドメイン別正答率・予想スコアでリアルタイムに実力把握
無限ノックでDVAを徹底対策。全問AI生成のオリジナル問題。
無料で演習を始める →