AWS認定資格 WEB問題集&徹底解説

ソリューションアーキテクト – アソシエイト

AWS X-Ray の概要と試験出題ポイントは?

AWSサービスの一つであるAWS X-Rayはどんな内容なのでしょうか?また、AWS認定資格のソリューションアーキテクト-アソシエイト(SAA)に合格するためには、サービスのどんなポイントを押さえておけばよいのでしょうか?
ここでは、そんなあなたの疑問に回答していきたいと思います

AWS X-Ray 徹底解説 | AWS認定試験の頻出ポイントまとめ

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. アーキテクチャおよび技術要素

  1. アプリにX-Ray SDKを組み込む(またはLambda/API Gatewayでトレースを有効化)。
  2. SDKがセグメント/サブセグメントを生成→X-Rayデーモン(EC2/ECS)またはLambdaが自動でX-Rayサービスに送信。
  3. X-Rayがトレースデータを集約→サービスマップ・トレース詳細を生成。
  4. コンソールでレイテンシ分布・エラー・ボトルネックを分析。

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. 設定・デプロイ手順(ハンズオン例)

  1. Lambdaの場合: 設定→モニタリング→「アクティブトレース」を有効化(X-Ray SDKの組み込み不要で基本トレース可能)。
  2. EC2/ECSの場合: X-Rayデーモンをインストール・起動し、IAMロールに書き込み権限を付与。
  3. アプリケーションにX-Ray SDKを組み込んでセグメント・アノテーションを記録。
  4. 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: サンプリングルールで記録するリクエストの割合を制御(全リクエストではなく一部のみトレース)。