AWS認定資格 WEB問題集&徹底解説
ソリューションアーキテクト – アソシエイト
AWS X-Ray の概要と試験出題ポイントは?
AWSサービスの一つであるAWS X-Rayはどんな内容なのでしょうか?また、AWS認定資格のソリューションアーキテクト-アソシエイト(SAA)に合格するためには、サービスのどんなポイントを押さえておけばよいのでしょうか?
ここでは、そんなあなたの疑問に回答していきたいと思います
1. サービス概要
AWS X-Rayは、分散アプリケーション(特にマイクロサービス・サーバーレス)のリクエストをエンドツーエンドで追跡・分析する分散トレーシングサービスです。リクエストが複数のサービスを通過する際の各コンポーネントの処理時間・エラー・ボトルネックを可視化します。
サービスマップ(各サービス間の呼び出し関係とレイテンシ・エラー率を表したグラフ)により、複雑なマイクロサービスアーキテクチャの問題を素早く特定できます。
2. 主な特徴と機能
2.1 トレース・セグメント・サブセグメント
- トレース(Trace): 1つのリクエストがシステム全体を通過する一連の記録。
- セグメント(Segment): 各サービス(EC2・Lambda等)が処理した記録。リソース名・リクエスト/レスポンス情報を含む。
- サブセグメント(Subsegment): セグメント内の詳細な処理(DBクエリ・外部API呼び出し等)の記録。
2.2 サービスマップ
アプリケーションを構成するサービス(ノード)と呼び出し関係(エッジ)を視覚化。各ノードのレイテンシ・エラー率・スロットリングを表示してボトルネック・障害箇所を即座に特定できます。
2.3 アノテーションとメタデータ
- アノテーション: インデックス化されフィルタ式で検索可能なキーバリュー(例: userId)。
- メタデータ: インデックス化されない追加情報(検索対象外だが詳細情報の保存に有用)。
2.4 サンプリングルール
すべてのリクエストをトレースするとコスト・オーバーヘッドが大きいため、サンプリングルールで記録するリクエストの割合を制御(例: 毎秒最初の1リクエスト+残りの5%)。
2.5 統合方法
- X-Ray SDK: アプリケーションコードに組み込んでトレースデータを生成(Java/Node.js/Python/Go/.NET/Ruby)。
- X-Rayデーモン: EC2/ECS/オンプレで動作し、SDKからのトレースデータをX-Rayサービスに送信。
- ネイティブ統合: Lambda(環境変数で有効化)・API Gateway・Elastic Beanstalk・App Mesh等。
3. アーキテクチャおよび技術要素
- アプリにX-Ray SDKを組み込む(またはLambda/API Gatewayでトレースを有効化)。
- SDKがセグメント/サブセグメントを生成→X-Rayデーモン(EC2/ECS)またはLambdaが自動でX-Rayサービスに送信。
- X-Rayがトレースデータを集約→サービスマップ・トレース詳細を生成。
- コンソールでレイテンシ分布・エラー・ボトルネックを分析。
4. セキュリティと認証・認可
- IAMロール: EC2/ECS/LambdaがX-Rayにデータ送信するためのIAM権限(AWSXRayDaemonWriteAccess等)。
- 暗号化: トレースデータの保存をKMSで暗号化可能。
- アクセス制御: トレースデータの閲覧をIAMポリシーで制御。
5. 料金形態
- トレース記録: 記録したトレース数(100万トレースあたり)で課金。
- トレース取得/スキャン: 取得・スキャンしたトレース数で課金。
- 毎月一定量の無料枠あり(記録10万トレース等)。
6. よくあるアーキテクチャ・設計パターン
- サーバーレスアプリのトレース: API Gateway → Lambda → DynamoDB の各処理をX-Rayで追跡→ボトルネック(遅いDBクエリ等)を特定。
- マイクロサービスの障害分析: サービスマップで複数マイクロサービス間の呼び出しを可視化→エラー率の高いサービスを特定。
- レイテンシ最適化: サブセグメントで外部API呼び出し・DB処理の時間を分析してパフォーマンスチューニング。
7. 設定・デプロイ手順(ハンズオン例)
- Lambdaの場合: 設定→モニタリング→「アクティブトレース」を有効化(X-Ray SDKの組み込み不要で基本トレース可能)。
- EC2/ECSの場合: X-Rayデーモンをインストール・起動し、IAMロールに書き込み権限を付与。
- アプリケーションにX-Ray SDKを組み込んでセグメント・アノテーションを記録。
- X-Rayコンソールでサービスマップ・トレースを確認してボトルネックを分析。
8. 試験で問われやすいポイント
8.1 X-Rayの役割
- Q: マイクロサービス・サーバーレスアプリのリクエストをエンドツーエンドで追跡してボトルネックを特定するサービスは?
A: AWS X-Ray(分散トレーシング)。サービスマップで各サービスのレイテンシ・エラー率を可視化。
8.2 トレースの構成要素
- Q: X-Rayのトレース・セグメント・サブセグメントの違いは?
A: トレース=リクエスト全体の記録、セグメント=各サービスの処理記録、サブセグメント=セグメント内の詳細処理(DBクエリ・外部API呼び出し)の記録。
8.3 EC2/ECSでの利用
- Q: EC2/ECS上のアプリのトレースデータをX-Rayに送るには?
A: X-Rayデーモンをインストールして実行(SDKからのトレースデータをX-Rayサービスに送信)。LambdaはX-Rayデーモン不要(アクティブトレースを有効化するだけ)。
8.4 アノテーションとメタデータ
- Q: X-Rayでトレースを検索可能にするにはアノテーションとメタデータのどちらを使う?
A: アノテーション(インデックス化されフィルタ式で検索可能)。メタデータはインデックス化されず検索対象外。
8.5 サンプリング
- Q: X-Rayの記録コスト・オーバーヘッドを抑えるには?
A: サンプリングルールで記録するリクエストの割合を制御(全リクエストではなく一部のみトレース)。
広告