NEXTSCAPE blog

株式会社ネクストスケープの社員による会社公式ブログです。ネスケラボでは、社員が日頃どのようなことに興味をもっているのか、仕事を通してどのような面白いことに取り組んでいるのかなど、会社や技術に関する情報をマイペースに紹介しています。

MENU

Azure Load Testingで負荷テストをやってみよう

はじめに

株式会社ネクストスケープ、ソリューションビジネス部所属の小野塚です。
先月の本ブログでは「Azure Chaos Studio」を紹介しました。

blog.nextscape.net

今回は同じくAzureのテストツールである「Azure Load Testing」を紹介したいと思います。
このLoad Testing、Azureを扱う案件に色々と携わってきたこともあり、色々と目にすることも多かったので2~3年前ぐらいには存在していたような気もするのですが、改めて調べたところ昨年1月にGAとなったばかりでして比較的新しいサービスとなります。

Azure Load Testing概要

この「Load Testing」、内容としてはその名の通りLoad Test、つまり負荷テストを行うためのツールとなります。

今回は単純な負荷テストのみの紹介になりますが、既存の Apache JMeter スクリプトをアップロードしたり、Azure DevOpsのCI/CDに組み込んで回帰テストを実行したりと非常に使い勝手の良いツールです。

2024/2/23時点での価格は以下になります。

ロード テスト リソース 1 か月あたり ¥1,476.750
1 か月あたりの仮想ユーザー時間 (VUH) 50 を含む
仮想ユーザー時間 (VUH) の追加使用量

Azure Load Testing準備

では早速負荷テストを行うための準備を進めてみたいと思います。
当然ながら負荷テストの対象となるリソースが必要となりますので、もし無い場合はあらかじめ準備しておきましょう。

前回はVMでWebサーバーを構築しましたが、今回はWebAppsで新規に構築を行い、それに対して負荷テストを行うようにします。
サーバー構築後、URLを叩いて(デフォルトの)Webサイトが見れることを確認します。

この時点で前回のChaos Studioと大きく異なる点がありまして、Chaos Studioの場合、その対象となるリソースはAzure内のリソースである必要があったのですが、Load Testingは公開されているエンドポイント・リソースであればAzureサービスに限らず利用できます。

なので今回のようにテスト対象はVMではなくWebAppでもよいですし、AzureではなくAWSでも構いません。

Azure Load Testing作成及びテスト実行

そして次にLoad Testingそのものを作成してみましょう。
Azureポータル上部の検索欄に「Azure Load Testing」と入力し、表示されたそれをクリックします。

すると以下の画面になりますので「Azure Load Testingのリソースの作成」をクリックします。

するといつものAzureのリソース作成のための画面になりますので、ここで必要事項を入力します。

単純な負荷テストであれば特に入力項目において気を付ける必要は無いと思います。
リソースグループや名前、リージョンを入力し、次に進みます。

暗号化の種類の選択になりますが、ここはデフォルトのままでよいです。

そして「確認および作成」ボタンを押下し、リソースを作成します。

デプロイが完了したら、「リソースに移動」ボタンをクリック。

以下のようにLoad Testingの画面に遷移するので「概要」ー>「作業の開始」ー>「HTTP要求を追加する」、で「作成」ボタンを押下します。

すると以下のようにテストを作成するための画面が表示されますので、必要事項を入力します。

項目を見てもらえればおわかりになると思いますが、「テストURL」にはテスト対象となる、負荷をかけたいWebサイト、サービスのURLを入力します。
あとは仮想ユーザーの数や負荷をかける期間等、必要な情報を入力します。

必要事項の入力が終わったら「確認および作成」ボタンを押して、上のスクリーンショットで「作成後にテストを実行する」にチェックが付いていれば作成後、以下のように即テストが実行されます。

テスト実行後の結果確認

テスト実行後の結果が以下になります。

まずは「クライアント側として」Load Testingがどういった負荷をかけたのかがわかるようになっています。

画面の真ん中あたりには以下の様にテスト期間等が表示され。。

クライアント側のメトリックとして以下のような情報が表示されています。

ただ、これは「クライアント側」になりますので今回はあまり重要ではありません。
問題はテスト対象となるサーバー側になるわけですが、サーバー側の状況を知るための方法としてまず考えられるのはサーバー側のメトリックになるかなと思います。

実際にサーバー側のメトリックでCPU時間を見てみると以下のように負荷テストが実行されたことがわかります。

ただ、いちいち確認のためにリソースというか画面を切り替えるのは面倒なので、先ほどのLoad Testingの画面の下の部分、以下の文章の「アプリ コンポーネントの構成」をクリックします。

すると以下の画面になりますので、今回テスト対象としたリソースを選択して、「適用」ボタンを押すと、

以下のように「サーバー側のメトリック」も表示され、一画面で確認ができるようにします。

ただ、サーバー側のメトリックもデフォルトで表示されている「Http5xx」「Requests」「HttpResponseTime」以外も見たい場合があると思います。

その場合は以下の「メトリックの構成」をクリックします。

すると以下にような画面が表示されますのでそこから好きなメトリック、表示させたいメトリックを選択できます。

最後に

駆け足で紹介しましたが、Load Testingによってこのように簡単に負荷テストが実行できます。

単純に負荷テストを実施するということであれば先月紹介したChaos Studioよりも色々な権限設定を行う必要が無い分、Load Testingの方が使いやすいですね。

テスト対象となるリソースについてもAzureに限らずエンドポイントが存在していればよいのでAWS等でも実施できるというのも大きいと思います。
是非皆さんも使ってみてください。

弊社はMicrosoftのパートナーとしてこのようなAzureのさまざまなリソース・機能を利用したWebサイト、ツール開発を得意としており、更にはスマホアプリやHoloLensと多岐に渡って開発を行っております。
もしお困りの方がいらっしゃいましたら、是非お気軽にお問い合わせください。

www.nextscape.net