翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
AWS X-Ray でアプリケーションをトレースする
アプリケーションを介したリクエストは、Amazon EC2、コンテナ、または Lambda のオンプレミスサーバーで実行されているウェブサービスと、アプリケーションおよびデータベースへの呼び出しで構成されます。アプリケーショントレースを実装することで、分散コンポーネントとサービスを使用するアプリケーションの問題の根本原因をすばやく特定できます。AWS X-Ray を使用して、複数のコンポーネントにわたりお客様のアプリケーションのリクエストをトレースします。X-Ray は、アプリケーションコンポーネントを流れるリクエストをサンプリングして サービスグラフに可視化し、各コンポーネントはセグメントとして表現されます。X-Ray はリクエストが複数のコンポーネントを流れるときに、トレース識別子を生成して相関させることができるため、リクエストをエンドツーエンドで表示できます。注釈とメタデータを含めることにより、リクエストの特性を一意に検索して識別できるようにすることで、この機能をさらに強化できます。
X-Ray を使用して、アプリケーション内の各サーバーまたはエンドポイントを構成し、計測することをお勧めします。X-Ray は、X-Ray サービスを呼び出すことによって、アプリケーションコードに実装されます。X-Ray は、X-Ray に自動的にデータを送信するインストルメント化クライアントなど、複数の言語に対応した AWS SDK を提供します。X-Ray SDK は、他のサービス (HTTP、MySQL、PostgreSQL、MongoDB など) への呼び出しに使用される共通ライブラリへのパッチを提供します。
X-Ray は Amazon EC2 および Amazon ECS にインストールして実行できる X-Ray デーモンを提供し、X-Ray にデータを中継できます。X-Ray は、リクエストを処理した X-Ray デーモンを実行しているサーバーとコンテナからパフォーマンスデータをキャプチャするアプリケーションのトレースを作成します。X-Ray は、AWS SDKのパッチによって、サブセグメントとして Amazon DynamoDB などの AWS サービスへの通話を自動的に計測します。X-Ray は Lambda 関数と自動的に統合することもできます。
アプリケーションコンポーネントが X-Ray デーモンを設定およびインストールできない、またはコードをインストルメント化できない外部サービスを呼び出す場合は、外部サービスへの呼び出しをラップするサブセグメントを作成できます X-Ray 相関関係 CloudWatch アプリケーショントレースを使用したログとメトリクスAWS X-Ray SDK for Javaつまり、リクエストに関連するメトリクスとログをすばやく分析できます。
X-Ray デーモンをデプロイし、Amazon EC2 でのアプリケーションとサービスをトレースする
X-Ray デーモンは、アプリケーションコンポーネントまたはマイクロサービスが実行される EC2 インスタンスにインストールして実行する必要があります。ユーザーデータスクリプトを使用して、EC2 インスタンスがプロビジョニングされるときに X-Ray デーモンをデプロイするか、独自の AMI を作成する場合は AMI ビルドプロセスに含めることができます。これは、EC2 インスタンスがエフェメラルである場合に特に便利です。
ステートマネージャーを使用して、X-Ray デーモンが EC2 インスタンスに一貫してインストールされていることを確認する必要があります。Amazon EC2 Windows インスタンスでは、Systems Manager である AWS RunPowerShellScript ドキュメントを使用し、X-Ray エージェントをダウンロード、インストールする Windows スクリプトを実行できます。Linux の EC2 インスタンスでは、AWS RunShellScript ドキュメントを実行して、エージェントをサービスとしてダウンロードしてインストールする Linux スクリプトを実行します。
Systems Manager である AWS RunRemoteScript ドキュメントを使用して、マルチアカウント環境でスクリプトを実行します。すべてのアカウントからアクセス可能な S3 バケットを作成する必要があります。AWS Organizations を使用する場合、組織ベースのバケットポリシーを使用した S3 バケットの作成
ステートマネージャーを設定して、X-Ray エージェントがインストールされている EC2 インスタンスにスクリプトを関連付けるようにすることもできます。すべての EC2 インスタンスが X-Ray を必要としない場合や使用しない可能性があるため、インスタンスタグとの関連付けをターゲットにすることができます。例えば、InstallAWSXRayDaemonWindows
または InstallAWSXRayDaemonLinux
のタグに基づいてステートマネージャーの関連付けを作成できます。
X-Ray デーモンをデプロイし、Amazon ECS または Amazon EKS でのアプリケーションとサービスをトレースする
Amazon ECS や Amazon EKS などのコンテナベースのワークロードのサイドカーコンテナとして、X-Ray デーモン
Amazon EKS の場合、アプリケーションのポッド定義に X-Ray デーモンを定義し、指定したコンテナポートの localhost 経由でアプリケーションがデーモンに接続できます。
X-Ray へのリクエストをトレースするように Lambda を設定する
アプリケーションには Lambda 関数の呼び出しが含まれる場合があります。デーモンプロセスは、Lambda によるフルマネージドプロセスであり、ユーザーによる設定ができないため、Lambda 用 X-Ray デーモンをインストールする必要はありません。Lambda 関数で有効にするには、AWS Management Console を使用して、X-Ray コンソールの アクティブトレースオプションを確認します。
さらに計測するには、X-Ray SDK を Lambda 関数にバンドルして送信呼び出しを記録し、注釈またはメタデータを追加できます。
X-Ray 向けにアプリケーションをインストルメントする
アプリケーションのプログラミング言語と一致する X-Ray SDK を評価し、アプリケーションが他のシステムに対して行うすべての呼び出しを分類する必要があります。選択したライブラリから提供されたクライアントを確認し、SDK がアプリケーションのリクエストまたはレスポンスのトレースを自動的に計測できるかどうかを確認します。SDK によって提供されるクライアントを他のダウンストリームシステムに使用できるかどうかを確認します。アプリケーションで呼び出される外部システムや、X-Ray では計測できない外部システムの場合は、カスタムサブセグメントを作成して、トレース情報でキャプチャして識別する必要があります。
アプリケーションをインストルメントするときは、リクエストの特定と検索に役立つ注釈を作成してください。例えば、アプリケーションでは、customer id
など、顧客に識別子を使用したり、アプリケーションでの役割に基づいて異なるユーザーをセグメント化する可能性があります。
各トレースに対して最大 50 個の注釈を作成できますが、セグメントドキュメントが 64 キロバイトを超えない限り、1 つ以上のフィールドを含むメタデータオブジェクトを作成できます。注釈を選択して情報を検索し、メタデータオブジェクトを使用して、検索後のリクエストのトラブルシューティングに役立つコンテキストを増やす必要があります。
X-Ray のサンプリングルールを設定する
サンプリングルールをカスタマイズすることで、コードを変更または再デプロイすることなく、記録するレコードの量を制御したり、サンプリング動作を変更したりできます。サンプリングルールにより、X-Ray SDK に一連の基準に対して記録するリクエスト数を指示します。デフォルトで、X-Ray SDK は 毎秒、 最初のリクエストを記録し、追加リクエストの 5% を記録します。1 秒あたり 1 つのリクエストがリザーバです。これにより、サービスがリクエストを処理している限り、毎秒少なくとも 1 つのトレースが記録されます。5% は、リザーバサイズを超えて追加リクエストがサンプリングされるレートです。
デフォルトの構成を確認して更新して、アカウントに適切な値を決定する必要があります。開発環境、テスト、パフォーマンステスト、本番稼働環境では、要件が異なる場合があります。受信するトラフィックの量または重要度のレベルに基づいて、独自のサンプリングルールを必要とするアプリケーションがある場合があります。ベースラインから始めて、ベースラインが要件を満たしているかどうかを定期的に再評価する必要があります。