Amazon API Gateway 連携

Amazon API Gatewayでは、モバイルアプリやwebアプリケーションがAWSサービスへアクセスできるように、RESTful APIを作成、設定、ホストします。Site24x7とAWSの連携により、API呼び出し、キャッシング、レイテンシ―、サーバーサイドおよびクライアントエラーにおける統計の監視を、APIステージレベルだけでなく、メソッドレベルでも行います。

ステージレベルでAPIの実行を監視

前提条件

API Gatewayは、CloudWatchにAPIおよびステージレベルでメトリクスを自動公開します。リソースと関連したメソッドのAPI呼び出し、レイテンシー、連携レイテンシー、400および500エラーを監視するには、Detailed CloudWatchのメトリクスを有効にする必要があります。

Detailed CloudWatchメトリクスを有効にする手順:

  • AWS管理コンソールにサインインし、[API Gatewayコンソール]に進みます。
  • [API]をクリックし、[ステージ]を選択します。
  • APIのステージリストで、ステージを選択します。
  • 編集ステージで、[ログ]を選択します。
  • CloudWatch設定の下にある[Detailed CloudWatchメトリクスの有効]を選択すると、有効化されます。
  • [変更を保存]を選択します。

設定手順

  • まだ設定がお済みでない場合は、Site24x7をIAMユーザーとして作成するか、アカウントとSite24x7のAWSアカウント間にクロスアカウントのIAMロールを作成し、AWSリソースへのアクセスを有効にします。 詳細はこちら
  • [AWSアカウント連携]ページで、API Gatewayステージのチェックボックスが選択されていることを確認します。 詳細はこちら

ポリシーと権限

Site24x7のエンティティに割り当てられているIAMポリシーに、以下の読み込みレベルアクションが存在することを確認します。 詳細はこちら

  • apigateway:取得

ポーリング間隔

デフォルトでは、API GatewayメトリクスのデータポイントはCloudWatchに1分おきに送られます。Site24x7では、1分ごとに収集されたデータを、5分ごとに平均集計します。

サポートしているメトリクス

Site24x7のAPIステージレベルでは、以下のメトリクスを収集します。

メトリクス 詳細 データタイプ 統計
4XXエラー 取得したクライアント側のエラー数です。 カウント 合計
5XXエラー 取得したサーバー側のエラー数です。 カウント 合計
キャッシュのヒット数 API キャッシュから配信されたリクエストの数です。 カウント 合計
キャッシュのミス数 キャッシュが有効である際に、バックエンドから提供されたリクエストの数です。 カウント 合計
カウント APIリクエストの合計数です。 カウント 合計
連携レイテンシー API Gatewayがバックエンドにリクエストを中断してから、バックエンドからのレスポンスを受信するまでにかかった時間です。 ミリ秒 平均および95パーセンタイル
レイテンシー API Gatewayがクライアントからリクエストを受信してから、クライアントへレスポンスを返すまでにかかった時間です。 ミリ秒 平均および95パーセンタイル

API設定

属性 説明
APIエンドポイント APIのURLです。
APIキー選択式 クライアントが有効なAPIキーを提供した場合のみリクエストを処理するとサービスが判断した際に、評価される式です。
実行APIエンドポイントを無効化する クライアントがデフォルトのexecute-apiエンドポイントを使用してAPIを呼び出せるかどうかを指定します。
作成日時 APIが作成された日時です。
ルート選択式 サービスが受信メッセージに対してルーティング先を選択する際に評価される、ルート選択式です。

ステージ設定

属性 説明
プロトコルタイプ APIのプロトコルタイプ(HTTP、WebSocket、またはREST)です。
ステージ名 ステージの名前です。
APIGatewayID APIのIDです。
APIGateway名 API Gatewayの名前です。
リージョン APIが作成されたリージョンです。
デプロイの自動化 デプロイが自動的にリリースされたかどうかを指定します。
作成日時 ステージが作成された日時です。
最終更新日時 ステージが最後に更新された日時です。
デプロイID デプロイのIDです。
説明 デプロイの説明です。
クライアント証明書ID ステージのクライアント証明書のIDです。※WebSocket APIのみでサポートされています。
ステージ変数 ステージリソースのステージ変数を定義するマップです。

クロスオリジンリソース共有(CORS)の詳細

属性 説明
資格情報の許可 CORSリクエストに資格情報を含めるかどうかを指定します。※HTTP APIでのみサポートされています。
許可するヘッダー 許可するHTTPヘッダーの一覧を表します。※HTTP APIでのみサポートされています。
許可するメソッド 許可するHTTPメソッドの一覧を表します。※HTTP APIでのみサポートされています。
許可するオリジン 許可するオリジンの一覧を表します。※HTTP APIでのみサポートされています。
公開するヘッダー ブラウザ側からアクセスすることを許可するヘッダーの一覧を表します。※HTTP APIでのみサポートされています。
最大キャッシュ時間 ブラウザがプリフライトリクエストの結果をキャッシュする最大時間を秒数で指定します。※HTTP APIでのみサポートされています。

アクセスログ設定

属性 説明
送信元ARN アクセスログを受信するCloudWatch LogsのロググループのARNです。
ログフォーマット 選択された$context変数によって指定される、アクセスログデータの1行の出力フォーマットです。このフォーマットには、少なくとも$context.requestIdを含める必要があります。

デフォルトルート設定

属性 説明
詳細なメトリクスの有効化 このステージで詳細なメトリクスを有効にするかどうかを指定します。
スロットリング・バースト制限 このステージにおけるスロットリングのバースト制限を指定します。
スロットリング・レート制限 このステージにおけるスロットリングのレート制限を指定します。
データトレースの有効化 このルートでデータトレースロギングを有効にするかどうかを指定します。
ロギングレベル このルートのログ記録レベルを指定します。選択肢はINFO、ERROR、またはOFFです。

データの表示手順

  • Site24x7コンソールにサインインします。[AWS]をクリックし、監視するAWSアカウントを選択します。
  • ドロップダウンメニューから[API Gatewayステージ]を選択します。
  • 監視するAPIステージリストから、メトリクスを表示したいステージを選択します。
  • API Gatewayの概要タブでは、リソースに適用できるさまざまな時系列グラフ(メトリクスを視覚的に表現)が表示されます。

監視対象リソース

APIGatewayのステージに関連付けられている、監視対象のAPIGatewayリソースおよびルートの一覧を表示します。個々のリストをクリックすると、そのリソースに関連するパフォーマンスやリソース使用率の統計を確認できます。また、アクション列にある鉛筆アイコンをクリックすることで、しきい値を設定し、これらのサービスがいずれか障害を起こした際に通知を受け取ることも可能です。

トポロジービュー

トポロジービュータブでは、リソースを中心としたリアルタイムの依存関係マップが表示されます。APIGatewayリソースが周囲のAWSインフラストラクチャとどのように接続されているかをリアルタイムで動的に追跡するため、アラートが発生した際の根本原因の特定を迅速に行うことができます。

メソッドレベルでAPIの実行を監視

APIの実行および実装における問題を解決するため、リソースパスに関連する定義済みメソッドのAPI実行メトリクスを監視、視覚化およびアラートします。

前提条件

  • Amazon API Gatewayとの連携を有効にする必要があります。
  • Site24x7コンソールで、API Gatewayステージの監視がアクティブになっている必要があります。
  • APIステージで、Detailed CloudWatchメトリクスを有効にする必要があります。

API Gatewayリソース監視の追加手順

監視するAPI Gatewayリソースの検出、追加手順:

  • Site24x7コンソールにサインインします。[AWS]をクリックし、[監視するAWSアカウント]を選択します。
  • ドロップダウンメニューから、[API Gatewayリソース]を選択します。

検出

APIステージから指定したリソースをオプトインする方法:

  • ドロップダウンメニューから、APIステージを選択します。(複数選択は不可です。)
  • 選択したAPIステージのリソースと一致する、適切な正規表現を入力します。 追記* APIステージから特定のリソースをオプトインするには、入力文字列の先頭または末尾に * を入力します。
    (例) APIステージが/income、/user、/expenseなどの複数のリソースを公開している場合、 */incomeのように * を追加することで、特定のパスに属するリソースのみを含めることができるようになります。
  • [リソースの検索]をクリックします。

追加

正規表現パターンと一致するリソースおよびメソッドの表示手順:

  • 監視するリソースの、リソースパスのチェックボックスをクリックします。
  • [選択したリソースを追加]をクリックすると、監視が始まります。

データの表示手順

  • Site24x7コンソールにサインインします。
  • [AWS]をクリックします。監視するAWSアカウントを選択します。
  • ドロップダウンメニューから[API Gatewayリソース]を選択します。
  • 監視リソースリストから、メトリクスを表示したいリソースを選択します。

メタデータ

API概要

API概要タブでは、サービスのステータスと設定に関する情報を表示します。

ステージプロパティ

属性 詳細
API Gateway ID APIの識別子(ID)です。
API Gateway名 API Gatewayの名前です。
リージョン API Gatewayが属するリージョンです。

属性 詳細
ステージ名 ステージの名前です。(API Gatewayへの呼び出しURIにおける、最初のパスセグメント)
作成日 ステージ作成時のタイムスタンプです。
最終アップデート時間 最終アップデート時のタイムスタンプです。
デプロイID ステージが指定するデプロイIDです。
詳細 ステージの詳細です。
キャッシュクラスター キャッシュクラスターがステージで有効になっているかどうか示します。
キャッシュクラスターのサイズ キャッシュクラスターが有効になっている場合、そのサイズが表示されます。
キャッシュクラスターのステータス キャッシュクラスターが有効になっている場合、そのステータスが表示されます。
ドキュメントのバージョン 関連するAPIドキュメントのバージョンです。
アクセスのログ記録 アクセスログの設定です。
クライアント証明書ID APIステージでの、クライアント証明書の識別子(ID)です。
ステージ変数 ステージ変数です。

メソッド設定

属性 詳細
メトリクスの監視 Amazon CloudWatchメトリクスが有効になっているかどうか示します。
ロギングレベル メソッドのロギングレベル(OFF、ERROR または INFO)です。
データ追跡 メソッドのロギング追跡が有効になっているかどうか示します。
スロットルバースト制限 スロットルのバースト制限です。
スロットルレート制限 スロットルのレート制限です。
宛先ARN アクセスログを受信するCloudWatchロググループのARNです。
APIキャッシュ リクエストに対するレスポンスが、キャッシュされるのか、返されるのかを示します。
キャッシュの有効期限 レスポンスキャッシュ時の有効期限(TTL)です。(単位:秒)
キャッシュデータの暗号化 レスポンスのキャッシュを暗号化するかどうかを示します。
認証の必要性 キャッシュの無効化リクエストに、認証が必要かどうか示します。
リクエストの認証処理 キャッシュ無効化権限のないリクエストの処理方法を表示します。

Canary設定

属性 詳細
CanaryデプロイID ステージが指定するcanaryデプロイの識別子(ID)です。
トラフィックの割合 canaryデプロイへ転送されたトラフィックの割合です。
Canaryステージ変数 canaryリリースのデプロイに上書きされたステージ変数です。
ステージキャッシュの使用 canaryデプロイのステージで、ステージキャッシュを使用するかどうか表示します。

リソース設定

属性 詳細
リソースID リソースの識別子(ID)です。
Parent ID canaryデプロイへ転用するトラフィックの割合です。
リソースパス リソースの完全なパスです。
メソッド HTTP verbのメソッドです。

ルートレベルでAPIの実行を監視

HTTPとWebソケット APIGatewayに関連づいているルートのAPI実行メトリックをディスカバリー、監視、可視化、アラートします。各ステージへのルート追跡に役立ちます。

必要条件

  • Amazon APIGateway連携が有効化されている
  • APIステージ監視のルートがアクティブである。
  • ステージのCloudWatch詳細メトリックが有効化されている

APIGatewayルート監視の追加とディスカバリー

次の手順でAPIGatewayルートをディスカバリーして監視に追加してください。

  1. Site24x7にログインし、[Cloud]→[AWS]の順にアクセスし、AWSアカウントを選択します。
  2. ドロップダウンから、[APIGatewayルート]を選択して、[ディスカバリー]をクリックします。また、左側ペインのAPIGatewayルート横の[+]ボタンからも行えます。
  3. APIGatewayルート監視画面で、次の手順を行います。
    • APIGatewayステージの選択:HTTPとWebソケットAPIGatewayに関連付いているルートを選択します。
    • 正規表現でルートを設定:正規表現を入力して、選択したAPIステージのルートをマッチさせます。APIステージから特定のリソースを設定するには、入力文字列のプレフィックスまたはサフィックスとして。*を追加します。詳細はこちら
    • [ディスカバリー]をクリックします。
  4. 詳細メトリックが有効となっていない:APIGatewayルートをディスカバリー、監視して分析を行います。これを行うには、[詳細メトリックの有効化]をクリックします。
APIGatewayルート監視の有効化で、AWSアカウントに追加課金が発生します。

正規表現でのルート設定例

  1. 収入、ユーザー、費用といった複数リソースがAPIステージで公開する場合、.*/incomeと入力して、特定のパスにあるリソースのみ含めることができます。
  2. ルートにはHTTPメソッドとリソースパスの2パートがあります。メソッドでフィルターしたい場合、GET、POST、OPTION、PUT、DELETEなどのメソッド名を指定してください。
    • GET /bookStore/allBooks - 全ブック情報を所得します。
    • GET /bookStore/book?bookName=AWS - 全AWSブック情報を取得します。
    • POST /bookStrore/addDetail/book?id=10?name=JAVA?price=200 - ブック情報をストアに追加します。
    • DELETE /bookStrore/removeDetail?id=10?name=JAVA - 特定のブック情報を削除します。
  3. 全GETメソッドリソースを表示したい場合、GETを入力して、特定のメソッドのリソースをすべて表示します。
    • GET /bookStore/allBooks - 全ブック情報を取得します。
    • GET /bookStore/book?bookName=AWS - 全AWSブック情報を取得します。

APIGatewayルートのディスカバリー

  1. 前の手順で[詳細メトリックの有効化]をクリックした場合のみ、このセクションが表示されます。
  2. ディスカバリーされたAPIGatewayルートパスが表示されます。監視したいルートのAPIGatewayルートパス横のボックスにチェックを入力します。
  3. [選択したルートの追加]をクリックします。

APIGatewayルート監視データの表示

  1. Site24x7で、[Cloud]→[AWS]の順にアクセスし、AWSアカウントを選択します。
  2. ドロップダウンから[APIGatewayルート]を選択します。
  3. 監視リストから、メトリックを表示したいAPIGatewayルート監視を選択します。

APIGatewayルート監視

HTTPレベルのパフォーマンスメトリック

属性 説明 単位 統計
4xxエラー クライアントサイドのエラーの数を計測します。 合計
5xxエラー サーバーサイドのエラー数を計測します。 Sum
APIリスエストの合計です。 合計
連携遅延 APIGatewayルートがリクエストをしてから応答が受信されるまでの時間です。 ミリ秒 平均および95パーセンタイル
遅延 API Gatewayがクライアントからリクエストを受信して​から、クライアントにレスポンスを返すまでの時間です。 ミリ秒 平均および95パーセンタイル
処理済みデータ APIGatewayルートにより処理されたデータの合計です。 メガバイト 合計

Webソケットレベルのパフォーマンスメトリック

属性 説明 単位 統計
接続数 $connectルート連携に送信されたメッセージ数です。 合計
メッセージ数 クライアントとの両方向(行き返り)でのWebソケットAPIメッセージ数です。 合計
連携エラー 連携から4XX/5XX応答が返されたリクエスト数です。 合計
クライアントエラー 連携が呼び出される前にAPIGatewayにより4xxレスポンスが返されたリクエスト数です。 合計
実行エラー 連携要求中に発生したエラーです。 合計
連携遅延 連携にリクエストを「送信し、応答が返ってくるまでの時間です。コールバックとモック統合のために抑制します。 ミリ秒 平均

設定

属性 説明
APIGatewayID 監視しているルートのAPIGatewayIDです。
APIGateway名 監視しているルートのAPIGateway名です。
リージョン APIGatewayがデプロイされているリージョンです。
ステージ名 監視しているルートのステージ名です。
ルートID 監視しているルートのIDです。
リソースエンドポイントURL 監視しているルートのAPIGatewayルートのURLです。
リソースパス 監視しているルートのAPIGatewayルートのキーです。
メソッド ルートのHTTPメソッドです。
プロトコルタイプ APIのタイプです。
APIキー要件 そのルートでAPIキーが必要かを確認します。WebソケットAPIでのみサポートしています。
認証 監視しているルートで認証が有効化されているかを確認します。
対象 ルートの対象です。

連携詳細

属性 説明
接続タイプ 連携エンドポイントとのネットワーク接続タイプです。
接続ID プライベート連携のVPCリンクIDです。HTTP APIでのみサポートしています。
連携ID 連携のためのIDです。
連携メソッド 連携のHTTPメソッドタイプです。
連携タイプ AWS、AWS_PROXY、HTTP、HTTP_PROXY、MOCKといった連携タイプです。
連携URI Lambda関数のURIです。完全修飾URL、Application Load Balancerリスナー、Network Load Balancerリスナー、AWS CloudMapサービスのARNです。
ペイロードフォーマットバージョン 連携先に送信されるペイロードの形式です。
タイムアウト タイムアウトをWebソケットでは50から29,000ミリ秒、HTTP APIでは50から30,000ミリ秒で設定します。
コンテンツハンドリングストラテジー 応答ペイロードコンテンツタイプ変換の処理方法です。
説明 連携先の説明です。
連携先サブタイプ AWS、AWS_PROXY、HTTP、HTTP_PROXY、MOCKといった連携先のサブタイプです。
パススルー リクエストのコンテンツタイプにの都筑入力リクエストのパススルーを指定し、連携先リソースのrequestTemplatesプロパティとしてマッピングテンプレートが指定されます。
リクエストパラメーター WebソケットAPIの場合は、メソッドリクエストからバックエンドに渡されるリクエストパラメータを指定するKey-Valueマップです。特定のintegrationSubtypeとのHTTP API連携の場合、リクエストパラメーターはAWS_PROXY連携先に渡されるパラメーターを指定するKey-Valueマップです。
リクエストテンプレート クライアントによって送信されたContent-Typeヘッダーの値に基づいて、要求ペイロードに適用される速度テンプレートのマップを表します
レスポンステンプレート クライアントに応答を返す前に、バックエンド統合からのHTTP応答を変換するテンプレートです。
TLS設定 プライベート連携先のTLS設定です。

認証詳細

属性 説明
認証者ID 認証者のIDです。
認証者タイプ 入力リクエストパラメーターまたはJSON WebトークンのJWTを使用したLambda関数のREQUESTです。
認証者URI 認証者のURIです。
ID送信元 認証がリクエストされるID送信元です。
名前 認証者名です。
JWT設定 JWT認証者の設定です。
シンプル応答の有効化 Lambdaオーソライザーがシンプルな形式でレスポンスを返すかどうかを指定します。有効にすると、LambdaオーソライザーはIAMポリシーの代わりにブール値を返すことができます。
ペイロードフォーマットバージョン HTTP API Lambda認証者に送信されるペイロードフォーマットです。
認証者リザルトTTL 秒単位のキャッシュされた認証者のリザルト存続時間時間です。

ライセンス

各APIGatewayルート監視はベーシック監視とみなされます。