API Gateway REST API を使用した AWS X-Ray のセットアップ - Amazon API Gateway

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

API Gateway REST API を使用した AWS X-Ray のセットアップ

このセクションでは、API Gateway REST API を使用して AWS X-Ray をセットアップする方法について詳しく説明します。

API Gateway での X-Ray のトレースモード

アプリケーションを経由するリクエストのパスは、トラック ID を使用して追跡されます。トレースでは、1 つのリクエスト (通常は HTTP GET または POST リクエスト) で生成されたセグメントをすべて収集します。

API Gateway の API のトレースには、次の 2 つのモードがあります。

  • パッシブ: API のステージに対して X-Ray によるトレースを有効にしていない場合は、これがデフォルトの設定です。この方法では、API Gateway の API は、アップストリームのサービスで X-Ray が有効になっている場合にのみトレースされます。

  • アクティブ: API Gateway の API のステージに対してこの設定を行っている場合、API Gateway は X-Ray で指定されているサンプリングアルゴリズムに基づいて API の呼び出しのリクエストを自動でサンプリングします。

    ステージに対してアクティブトレースを有効にすると、サービスにリンクされたロールがアカウントにない場合は API Gateway によってロールが作成されます。このロールは AWSServiceRoleForAPIGateway という名前で、APIGatewayServiceRolePolicy マネージドポリシーがロールにアタッチされます。サービスにリンクされたロールの詳細については、「サービスにリンクされたロールの使用」を参照してください。

    注記

    X-Ray はサンプリングアルゴリズムを適用することでトレースを効率的にしつつ、API が受け取るリクエストの代表的なサンプルを提供します。デフォルトのサンプリングアルゴリズムは 1 秒間につき 1 リクエストで、この制限を超えた場合はリクエストの 5 パーセントがサンプリングされます。

API のトレースモードは、API Gateway マネジメントコンソール、API Gateway CLI、または AWS SDK を使用して変更できます。

X-Ray によるトレースのアクセス許可

ステージに対して X-Ray によるトレースを有効にすると、サービスにリンクされたロールがアカウントにない場合は API Gateway によってロールが作成されます。このロールは AWSServiceRoleForAPIGateway という名前で、APIGatewayServiceRolePolicy マネージドポリシーがロールにアタッチされます。サービスにリンクされたロールの詳細については、「サービスにリンクされたロールの使用」を参照してください。

API Gateway コンソールでの X-Ray によるトレースの有効化

Amazon API Gateway コンソールを使用して、API のステージに対してアクティブトレースを有効にすることができます。

これらのステップでは、すでに API をステージにデプロイしていることを前提としています。

  1. https://console.aws.amazon.com/apigateway で API Gateway コンソールにサインインします。

  2. API を選択し、メインナビゲーションペインで [ステージ] を選択します。

  3. [ステージ] ペインで、ステージを選択します。

  4. [ログおよびトレース] セクションで [編集] を選択します。

  5. X-Ray によるアクティブトレースを有効にするには、[X-Ray トレース] を選択して、X-Ray トレースを有効にします。

  6. [Save changes] (変更の保存) をクリックします。

API のステージに対して X-Ray を有効にすると、X-Ray マネジメントコンソールを使用してトレースとサービスマップを表示できます。

API Gateway CLI を使用した AWS X-Ray トレースの有効化

AWS CLI を使用して、API ステージの作成時にステージに対して X-Ray のアクティブトレースを有効化するには、次の例のように create-stage コマンドを呼び出します。

aws apigateway create-stage \ --rest-api-id {rest-api-id} \ --stage-name {stage-name} \ --deployment-id {deployment-id} \ --region {region} \ --tracing-enabled=true

呼び出しが成功したときの出力例を次に示します。

{ "tracingEnabled": true, "stageName": {stage-name}, "cacheClusterEnabled": false, "cacheClusterStatus": "NOT_AVAILABLE", "deploymentId": {deployment-id}, "lastUpdatedDate": 1533849811, "createdDate": 1533849811, "methodSettings": {} }

AWS CLI を使用して、API ステージの作成時にステージに対して X-Ray のアクティブトレースを無効化するには、次の例のように create-stage コマンドを呼び出します。

aws apigateway create-stage \ --rest-api-id {rest-api-id} \ --stage-name {stage-name} \ --deployment-id {deployment-id} \ --region {region} \ --tracing-enabled=false

呼び出しが成功したときの出力例を次に示します。

{ "tracingEnabled": false, "stageName": {stage-name}, "cacheClusterEnabled": false, "cacheClusterStatus": "NOT_AVAILABLE", "deploymentId": {deployment-id}, "lastUpdatedDate": 1533849811, "createdDate": 1533849811, "methodSettings": {} }

AWS CLI を使用して、既にデプロイされている API に対して X-Ray のアクティブトレースを有効化するには、次のように update-stage コマンドを呼び出します。

aws apigateway update-stage \ --rest-api-id {rest-api-id} \ --stage-name {stage-name} \ --patch-operations op=replace,path=/tracingEnabled,value=true

AWS CLI を使用して、既にデプロイされている API に対して X-Ray のアクティブトレースを無効化するには、次の例のように update-stage コマンドを呼び出します。

aws apigateway update-stage \ --rest-api-id {rest-api-id} \ --stage-name {stage-name} \ --region {region} \ --patch-operations op=replace,path=/tracingEnabled,value=false

呼び出しが成功したときの出力例を次に示します。

{ "tracingEnabled": false, "stageName": {stage-name}, "cacheClusterEnabled": false, "cacheClusterStatus": "NOT_AVAILABLE", "deploymentId": {deployment-id}, "lastUpdatedDate": 1533850033, "createdDate": 1533849811, "methodSettings": {} }

API のステージに対して X-Ray を有効にしたら、X-Ray CLI を使用してトレース情報を取得します。詳細については、「AWS CLI での AWS X-Ray API の使用」を参照してください。