すべてのプロダクト
Search
ドキュメントセンター

Performance Testing:アクセスログのストレステスト

最終更新日:Jun 22, 2026

Performance Testing (PTS) のアクセスログに基づくストレステスト機能を使用すると、実際のゲートウェイトラフィックのリプレイを迅速に実行できます。この機能は、サーバーに対して非侵入的で、ゲートウェイログのみに依存します。PTS コンソールでいくつかの簡単な手順で設定できます。このトピックでは、この機能の使用方法について説明します。

概要

image

アクセスログに基づくストレステストでは、簡単な設定で実際のゲートウェイトラフィックをリプレイできます。この機能は、テストリクエストのパラメーター化、テストシナリオの自動作成、および簡単なログイン API 設定によって期限切れのログイン状態の問題を解決できます。設定プロセスは、主に 4 つのモジュールで構成されます。

  • ログプロデューサーの設定:アクセスログは、ALB、CLB、MSE gateway、または ECS インスタンス上の自己管理 Web サービスから取得される場合があります。まず、アクセスログを Log Service (SLS) に転送する必要があります。詳細については、「ALB アクセスログの設定」、「CLB アクセスログの設定」、「MSE gateway のログ転送の有効化」、および「NGINX 設定モードを使用したテキストログの収集」をご参照ください。

  • Log Service の設定:プロデューサーから転送されたログを受信するように Log Service を設定します。

  • アクセスログに基づくストレステストの設定:Log Service に保存されているログを分析して、テスト対象の API を特定し、テストシナリオを作成します。

  • PTS テストシナリオの編集:テストシナリオが作成されると、PTS シナリオエディターにリダイレクトされます。このページで、シナリオをさらに設定するか、直接デバッグしてテストを開始できます。

ログ仕様

重要
  1. URL フィールドには、インデックスと値の両方が必要です。インデックス名は、「request_uri」、「path」、「request_url」、「url」、「uri」、「requestURI」、または「requestURL」のいずれかである必要があります。URL パスとパラメーターが別々に記録されている場合、method フィールドには値が必要で、そのインデックス名は「method」、「http_method」、「request_method」のいずれかである必要があります。

  2. POST リクエストをリプレイするには、次の要件を満たす必要があります。

    • HTTP POST ボディフィールドにはインデックスと値が必要で、インデックス名は「body」、「http_body」、「http_request_body」、「request_body」のいずれかである必要があります。application/x-www-form-urlencodedtext/plainapplication/json 形式のボディのみがサポートされています。バイナリデータボディはサポートされていません。

    • Content-Type フィールドにはインデックスと値が必要で、インデックス名は「content_type」または「contentType」である必要があります。それ以外の場合、PTS は自動的にContent-Type を推測します。

    • MSE gateway を使用する場合、POST リクエストのボディをゲートウェイログに記録できます。詳細については、「アクセスログへの完全なリクエストとレスポンス情報の追加」をご参照ください。PTS は、この方法で記録された POST リクエストを直接リプレイできます。

  3. シンプルリプレイモードを使用する場合、以下の追加ルールが適用されます。これらのルールを満たさないログは無視されます。

    • ドメイン名フィールドにはインデックスと値が必要で、インデックス名は「host」、「http_host」、「authority」のいずれかである必要があります。

    • HTTP プロトコルフィールドにはインデックスと値が必要です。インデックス名は「http_protocol」、「protocol」、「scheme」、「http_scheme」のいずれかである必要があり、値は http または https である必要があります。それ以外の場合、デフォルトで http が使用されます。

前提条件

ステップ 1:アクセスログからのシナリオ作成

  1. PTS コンソールにログインします。左側メニューで、[Performance Test] > Create Scenario を選択し、[Access Log] をクリックします。

  2. [検索と分析]

    アクセスログが保存されている Log Region[Log Project]ログストア を選択します。クエリパラメーターと時間範囲を設定し、[Search & Analyze] をクリックしてリプレイするログをクエリします。ログのインデックスは ログ仕様 を満たす必要があります。準拠していないログは無視されます。

    @timestamp: 2024-08-29T14:38:39+08:00
    body_bytes_sent: 200
    bytes_sent: 519
    content_type: text/html;charset=UTF-8
    host: www.example.com
    http_referer: http://www.example.com/index.html
    http_user_agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36
    remote_addr: xxx
    request_body: username=user1&password=123456&verifycode=1234
    request_length: 963
    request_method: POST
    request_time: 0.002000
    request_uri: /login.php
    scheme: http
    server_addr: 172.26.150.228
    status: 200
    upstream_host: unix:/dev/shm/php-cgi.sock
    upstream_status: 200
    upstream_time: 0.003
    uri: /login.php

ステップ 2:テストモードの選択

Access Log Test Scenario ページで、[Simple Playback Mode] スイッチをオンにし、Select APIs for Testing をクリックしてシンプルリプレイモードに入ります。標準モードに入るには、[Simple Playback Mode] スイッチをオフにし、Select APIs for Testing をクリックします。

重要

シンプルリプレイモードは、リクエスト構造を解析せずに、ログに記録されたトラフィックを直接リプレイします。異なるドメインや API の数に制限はありませんが、シナリオ全体のリクエスト/秒 (RPS) のみを制御できます。このモードはログイン状態を処理しません。

標準モードでは、ログイン状態を設定し、各 API のリクエスト数と最大 RPS の分布を分析し、各 API の負荷を正確に制御できます。ただし、異なるドメインや API の数には制限があります。

ニーズに応じて、シンプルリプレイモードまたは標準モードのいずれかを選択してトラフィックリプレイを実行できます。両者の比較を次の表に示します。

テストモード

説明

シンプルリプレイモード

  • このモードは、GET および POST リクエストのリプレイのみをサポートします。PTS は、ログに記録されたとおりにリクエストをリプレイします。ボディのない POST リクエストの場合、空のボディを使用してリプレイされます。POST リクエストをリプレイするかどうかを選択できます。

  • トラフィックリプレイシナリオは、HTTP リクエストメソッド (GET/POST)、プロトコルタイプ (HTTP/HTTPS)、および POST ボディの Content-Type に基づいてリクエストを分類します。PTS は、さまざまなタイプのリクエストをリプレイするために、異なる抽象 API を使用します。たとえば、HTTP GET と HTTPS GET リクエストは、2 つの異なる抽象 API に属します。各 API は並行して実行され、ログから抽出されたパラメーターを使用します。

  • シンプルリプレイモードはログイン状態を処理しません。ログイン状態を設定する必要がある場合は、標準モードを使用してください。

標準モード

  • このモードは、GET および POST リクエストのリプレイのみをサポートします。静的リソースをリクエストする API は自動的に除外されます。リクエストボディのない POST リクエストはリプレイされません。トラフィックリプレイ中、各 API は並行して実行され、ログから抽出されたパラメーターを使用します。

  • デフォルトでは、ログイン状態は Cookie を使用して管理されます。使用される Cookie の数は、ログイン API のパラメーターファイルの行数と同じで、最大 100 です。デフォルトでは、リクエストヘッダーは設定されていません。高度な要件については、PTS テストシナリオが生成された後、シナリオエディターページで編集できます。

シンプルリプレイモード

  1. 再生パラメーターの設定

    シンプルリプレイモードの分析結果には、選択した期間内の有効なリクエスト数が表示されます。次のパラメーターを設定できます。

    • POST リクエストのリプレイ:このスイッチをオンにすると、PTS が POST リクエストをリプレイできるようになります。ただし、リクエストボディがアクセスログに含まれていない場合、リプレイされた POST リクエストにはボディがなく、エラーが発生する可能性があります。このオプションは注意して使用してください。

    • リプレイの繰り返し:有効にすると、再生プロセスはログの最後に達した後、ログの先頭に戻ってループします。無効にすると、ログの最後に達したときに負荷生成が停止します。ただし、指定された期間が終了するまでテストは自動的に停止しません。不要な仮想ユーザー分 (VUM) の消費を避けるために、すべてのリクエストが送信された後、手動でテストを停止してください。

    • 再生時間 (分):トラフィックリプレイの期間。デフォルトは 10 分です。

    • リクエスト/秒:トラフィックリプレイのレートを設定します。PTS は、このレートでアクセスログのトラフィックをリプレイします。このレートは、各抽象 API に均等に分散されます。シンプルリプレイモードの設定フォームには、[Selected Time Period] (再生の時間範囲を表示)、[Total Valid Requests] (選択した期間内の有効なリクエストと POST リクエストの合計数を表示)、および [Requests per Second] (再生中に毎秒送信されるリクエスト数を設定) のフィールドもあります。

  2. [Create Scenario]

    Create Scenario をクリックします。PTS は再生設定の概要を表示します。確認 をクリックすると、PTS シナリオエディターページにリダイレクトされます。このページで生成されたシナリオをさらに編集することも、ステップ 3:(オプション) PTS シナリオの設定をスキップして、直接 ステップ 4:テストの開始に進むこともできます。

標準モード

説明

ログにリクエストドメイン名が含まれ、フィールド名が hosthttp_host、または authority の場合、PTS は自動的にホストを入力します。これは変更することもできます。現在、単一のホストのみがサポートされていて、すべての API はこのホストを共有します。複数のドメインのトラフィックをリプレイするには、API ごとに個別のシナリオを作成し、必要に応じて変更してください。

  1. [Select APIs for Testing]

    [Select APIs for Testing] ダイアログボックスで、ターゲットホストを入力し、プロトコル (例:http://) を選択します。PTS は、選択した期間のアクセスログから、頻度と RPS でランク付けされた上位 10 件の API を表示します。左側のリストには、各 API のパスと総トラフィックに占める割合が表示されます。右側のリストには、各 API の最大 RPS が表示されます。リストからテスト対象の API を選択します (例:POST /login)。選択した API は Selected エリアに表示されます。

  2. テストパラメーターの設定

    対象の API がログインを必要としない場合は、No Logon Required スイッチをオンにします。API がログイン状態情報を必要とする場合は、次のようにログイン API を設定します。

    a. [Select from APIs]:ログイン API がクエリされた API の中に含まれている場合、このドロップダウンリストから選択できます。PTS は自動的にこれをログイン API として使用し、ログからのパラメーターを適用し、手動設定なしでログイン状態の Cookie をエクスポートします。たとえば、[Select from APIs] ドロップダウンリストから POST /login を選択し、[Logon API RPS]1 に設定します。

    b. [Set Logon API]:ログイン API がリストにない場合は、手動で設定できます。ログイン API のアドレス (例:http://example.com/login) を入力します。ログイン API のボディパラメーター (例:username と password) を設定します。${} を使用してパラメーターを参照できます。パラメーターファイルを指定するには、Select Parameter Files をクリックします。詳細については、「データソース」をご参照ください。

  3. 設定を確認した後、Create Scenario をクリックすると、PTS シナリオエディターページにリダイレクトされます。このページで生成されたシナリオをさらに編集することも、ステップ 3:(オプション) PTS シナリオの設定をスキップして、直接 ステップ 4:テストの開始に進むこともできます。

(オプション) ステップ 3:PTS シナリオの設定

  1. 使用する Cookie の数を設定するには、データエクスポート をクリックします。[Export Data] 設定パネルで、エクスポートするデータフィールドとして [Cookie] を選択し、[Export Scale]100 に設定し、必要に応じて [Specify as array parameter] ドロップダウンリストから配列パラメーターを選択します。トークンなど、他のログイン状態情報を使用する必要がある場合は、ログイン API をクリックし、出力パラメーターを設定して、データエクスポートを設定します。詳細については、「データエクスポートの手順」をご参照ください。

  2. 任意の API をクリックしてヘッダーを追加します。ログイン API の場合、リクエストメソッドは [POST] で、リクエスト URL は http://example.com/login です。[Header] タブで、[Content-Type]application/x-www-form-urlencoded に設定します。

  3. 負荷設定については、「負荷モデル」および「送信元 IP 数の指定」をご参照ください。

ステップ 4:テストの開始

  1. シナリオをデバッグして設定を検証し、テストの失敗を防ぐことができます。そのためには、Debug をクリックしてシナリオデバッグページに移動します。詳細については、「シナリオのデバッグ」をご参照ください。

  2. Save and Start をクリックします。注意 ダイアログボックスで、今すぐ実行 を選択し、The test is permitted and complies with the applicable laws and regulations. チェックボックスをオンにしてから、[Start] をクリックします。

ストレステスト結果の分析

テストが完了すると、PTS は自動的にストレステストデータを収集し、ストレステストレポートを生成します。レポートには次のセクションが含まれます:

  • シナリオメトリック

  • ビジネス詳細

  • モニタリング詳細

  • API サンプリングログ

詳細については、PTS ストレステストレポートの表示をご参照ください。