翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
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 をステージにデプロイしていることを前提としています。
https://console.aws.amazon.com/apigateway
で API Gateway コンソールにサインインします。 -
API を選択し、メインナビゲーションペインで [ステージ] を選択します。
-
[ステージ] ペインで、ステージを選択します。
-
[ログおよびトレース] セクションで [編集] を選択します。
-
X-Ray によるアクティブトレースを有効にするには、[X-Ray トレース] を選択して、X-Ray トレースを有効にします。
[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 の使用」を参照してください。