Azure Load Testingを触ってみた
今回はAzure Load Testingについての記事です。
こちらは名前の通り、負荷テストのための機能・リソースになります。
つい先日(というほどでもないですかね)、2023年2月1日にGAになったということもありまして、取り上げさせていただきます。
以前、負荷テストに関してはAzure Chaos Studioを紹介しました。
☟が私の記事です。
https://note.com/tandago/n/n08adc9e451dc
Chaos Studioはプレビューということもあり、負荷テストについてはLoad Testingを使ってもらうのが良いと思うのですが、いずれはChaos Studioに統合されたりするのでしょうかね。。?
まず、負荷テストにあたってはテスト対象を用意する必要がありますので、AppService+.NET Coreの組み合わせでVisualStudioで作成したサンプルページをそのままデプロイしてみます。
AppServiceのプランはそれなりの高いスペックの方が良いかもしれませんが、一旦D1でデプロイしました。
以下がそのページです。

上記サイトを軽く触ってみたところでAzureポータルのメトリックで負荷を確認してみます。
以下はメモリの状況ですが、当然ながら特に問題は無い状況です。

まずはリソースの作成でLoad Testingを検索して、「作成」を選択します。

リージョンは東日本、西日本はまだ無さそうなので「East Asia」で。

無事リソースが作成されました。

まずは上記の画面で「クイックテスト」を選んでみましょう。
以下の画面でテスト対象のURLやどれくらいの負荷を与えるかを設定します。
「仮想ユーザーの数」は現在のところ最大2500までとなっていました。
「増加時間」は「仮想ユーザー数」に達するまでにどのくらいの時間をかけるかというものになります。
つまり徐々に増やしていくか、一気に増やすかの設定ができるわけですね。

そして「テストの実行」を押して実行します。
実行した結果は以下のようになりまして、応答時間等がメトリックスで表示されます。

テストを複数回実行していくとその履歴もこのように一覧で表示されます。
わかりやすいですね。

AppService側のメトリックスを見ても当然ながらLoad Testingによる負荷が確認できます。

気になるお値段はそもそものリソースの金額として月額 ¥1,363.851(2023/3/21時点の金額)で、あとは従量課金として「仮想ユーザー時間」分、以下のように請求されるそうです。
・0 - 9,950 追加仮想ユーザー時間 - ¥20.458 /追加 VUH
・9,950+追加の仮想ユーザー時間 - ¥10.229 /追加の VUH
仮想ユーザー時間とはAzureサイトによると以下のように書かれていました。
仮想ユーザー時間 = (シミュレートされた仮想ユーザーの数 * シミュレーションの時間 (分)) / 1 時間あたり 60 分。アクティブな仮想ユーザーの数は 10 秒ごとにカウントされ、使用した分数の仮想ユーザー時間と同等の数が課金されます。
たとえば、1,000 人の仮想ユーザーを 30 分間シミュレートした場合、500 仮想ユーザー時間に対して課金されます。
実際に使ってみないと何とも言えませんが、大幅にコストがかかるということは無さそうですね。
今回は本当に「さわり」だけの紹介となりますが、JMeterのスクリプトを流用したり、CI/CD環境への組み込みを行えたりとなかなか使い勝手がよさそうですし、そのあたりについても記事として触れてみたいと思います。
クイックテストもURLを指定すればよいだけですし、JMeterのスクリプトを流用できるのでテスト先としてはAzureに限りません。
そういった意味ではJMeterを普段使いしている方や、負荷テストの意味とその重要性は理解しているものの、JMeterまでは使ったことが無い方、それぞれの方にとってとっつきやすいツールと言えるのではないでしょうか。
是非皆さんも使ってみてください。