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パーセンタイル

データの表示手順

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

メソッドレベルで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ステージが/収入 /ユーザー/支出などの複数のリソースを公開している場合、 */収入 のように * を追加することで、特定のパスに属するリソースのみを含めることができるようになります。
  • [リソースの検索]をクリックします。

追加

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

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

データの表示手順

  • 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ソケット APIゲートウェイに関連づいているルートのAPI実行メトリックをディスカバリー、監視、可視化、アラートします。各ステージへのルート追跡に役立ちます。

必要条件

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

APIゲートウェイルート監視の追加とディスカバリー

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

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

APIゲートウェイルートのディスカバリー

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

APIゲートウェイルート監視データの表示

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

APIゲートウェイルート監視

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

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

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

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

設定

属性 説明
APIゲートウェイID 監視しているルートのAPIゲートウェイIDです。
APIゲートウェイ名 監視しているルートのAPIゲートウェイ名です。
リージョン APIゲートウェイがデプロイされているリージョンです。
ステージ名 監視しているルートのステージ名です。
ルートID 監視しているルートのIDです。
リソースエンドポイントURL 監視しているルートのAPIゲートウェイルートのURLです。
リソースパス 監視しているルートのAPIゲートウェイルートのキーです。
メソッド ルートの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 秒単位のキャッシュされた認証者のリザルト存続時間時間です。

ライセンス

各APIゲートウェイルート監視はベーシック監視とみなされます。