翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
AWS X-Ray は、アプリケーションが処理するリクエストに関するデータを収集するサービスであり、そのデータを表示、フィルタリング、インサイトを取得して、問題や最適化の機会を特定するために使用できるツールを提供します。アプリケーションへのトレースされたリクエストについては、リクエストとレスポンスだけでなく、アプリケーションがダウンストリーム AWS リソース、マイクロサービス、データベース、HTTP ウェブ APIs に対して行う呼び出しに関する詳細情報も確認できます。
X-Ray は、クラウドアプリケーションを強化する AWS リソースからのトレースデータを使用して、詳細なサービスグラフを生成します。サービスグラフには、フロントエンドサービスが呼び出してリクエストを処理しデータを維持するクライアント、フロントエンドサービス、バックエンドサービスが表示されます。サービスグラフを使用して、ボトルネック、レイテンシーのスパイク、その他の問題を識別して解決し、アプリケーションのパフォーマンスを向上させます。
X-Ray の詳細については、「AWS X-Ray デベロッパーガイド」を参照してください。

トレース用にアプリケーションを計測する
ポータブルテレメトリ仕様である OpenTelemetry
アプリケーションで使用する特定の ADOT SDK に応じて、ADOT は自動と手動の 2 つの計測アプローチをサポートします。SDK を使用した計測の詳細については、ADOT ドキュメント
ランタイム設定
App Runner サービスアプリケーションをトレース用に計測するための一般的なランタイムセットアップ手順は次のとおりです。
ランタイムのトレースを設定するには
-
AWS Distro for OpenTelemetry
(ADOT) のランタイムに用意されている手順に従って、アプリケーションを計測します。 -
ソースコードリポジトリを使用している場合は
apprunner.yaml
ファイルのbuild
セクションに、コンテナイメージを使用している場合は Dockerfile に必要なOTEL
依存関係をインストールします。 -
ソースコードリポジトリを使用している場合は
apprunner.yaml
ファイルで、コンテナイメージを使用している場合は Dockerfile で環境変数を設定します。例 環境変数
注記
次の の例では、
apprunner.yaml
ファイルに追加する重要な環境変数を一覧表示します。コンテナイメージを使用している場合は、これらの環境変数を Dockerfile に追加します。ただし、各ランタイムには独自のイディオシンクレーシーがあり、次のリストに環境変数を追加する必要がある場合があります。ランタイム固有の手順とランタイム用にアプリケーションをセットアップする方法の例の詳細については、AWS 「 Distro for OpenTelemetry」を参照して、「開始方法」の「ランタイム」を参照してください。 env: - name: OTEL_PROPAGATORS value: xray - name: OTEL_METRICS_EXPORTER value: none - name: OTEL_EXPORTER_OTLP_ENDPOINT value: http://localhost:4317 - name: OTEL_RESOURCE_ATTRIBUTES value: 'service.name=example_app'
注記
OTEL_METRICS_EXPORTER=none
App Runner Otel コレクターはメトリクスのログ記録を受け入れないため、 は App Runner にとって重要な環境変数です。メトリクスのトレースのみを受け入れます。
ランタイムセットアップの例
次の例は、ADOT Python SDK
まず、次の例に示すように、いくつかの依存関係を追加します。
例 requirements.txt
opentelemetry-distro[otlp]>=0.24b0 opentelemetry-sdk-extension-aws~=2.0 opentelemetry-propagator-aws-xray~=1.0
次に、アプリケーションを計測します。これを行う方法は、ソースイメージまたはソースコードなどのサービスソースによって異なります。
サービスソースがイメージの場合、コンテナイメージの構築とイメージ内のアプリケーションの実行を制御する Dockerfile を直接計測できます。次の例は、Python アプリケーションの計測された Dockerfile を示しています。インストルメンテーションの追加は太字で強調されます。
例 Dockerfile
FROM public.ecr.aws/amazonlinux/amazonlinux:latest
RUN yum install python3.7 -y && curl -O https://bootstrap.pypa.io/get-pip.py && python3 get-pip.py && yum update -y
COPY . /app
WORKDIR /app
RUN pip3 install -r requirements.txt
RUN opentelemetry-bootstrap --action=install
ENV OTEL_PYTHON_DISABLED_INSTRUMENTATIONS=urllib3
ENV OTEL_METRICS_EXPORTER=none
ENV OTEL_RESOURCE_ATTRIBUTES='service.name=example_app'
CMD OTEL_PROPAGATORS=xray OTEL_PYTHON_ID_GENERATOR=xray opentelemetry-instrument python3 app.py
EXPOSE 8080
App Runner サービスインスタンスロールに X-Ray アクセス許可を追加する
App Runner サービスで X-Ray トレースを使用するには、サービスのインスタンスに X-Ray サービスとやり取りするためのアクセス許可を付与する必要があります。これを行うには、インスタンスロールをサービスに関連付け、X-Ray アクセス許可を持つ管理ポリシーを追加します。App Runner インスタンスロールの詳細については、「」を参照してくださいインスタンスロール。AWSXRayDaemonWriteAccess
マネージドポリシーをインスタンスロールに追加し、作成時にサービスに割り当てます。
App Runner サービスの X-Ray トレースを有効にする
サービスを作成すると、App Runner はデフォルトでトレースを無効にします。オブザーバビリティの設定の一環として、サービスの X-Ray トレースを有効にできます。詳細については、「オブザーバビリティの管理」を参照してください。
App Runner API または を使用する場合 AWS CLI、TraceConfigurationオブジェクト内の TraceConfiguration オブジェクトにはトレース設定が含まれます。 ObservabilityConfiguration トレースを無効にしたままにするには、 TraceConfiguration
オブジェクトを指定しないでください。
コンソールと API の両方のケースで、前のセクションで説明したインスタンスロールを App Runner サービスに関連付けてください。
App Runner サービスの X-Ray トレースデータを表示する
App Runner コンソールのサービスダッシュボードページのオブザーバビリティタブで、サービスマップを表示を選択して Amazon CloudWatch コンソールに移動します。

Amazon CloudWatch コンソールを使用して、アプリケーションが処理するリクエストのサービスマップとトレースを表示します。サービスマップには、リクエストのレイテンシーや、他のアプリケーションや AWS サービスとのやり取りなどの情報が表示されます。コードに追加するカスタム注釈を使用すると、トレースを簡単に検索できます。詳細については、Amazon CloudWatch ユーザーガイド」のServiceLens を使用してアプリケーションの状態をモニタリングする」を参照してください。