FIXER cloud.config Tech Blog
CI/CDに負荷テストを組み込める「Azure Load Testing」を調べてみた!
2022年02月24日 10時00分更新
本記事はFIXERが提供する「cloud.config Tech Blog」に掲載された「CI/CD で負荷テスト!? パブリックプレビュー中の Azure Load Testing について調べてみた!! #Azureリレー」を再編集したものです。
前回のAzure リレーは「【誰でもできる】Power BIで時系列データ予測 #Azureリレー」でした。
AzureのMarketplaceが思いのほか便利そうで驚きました。
先日の一件以来、ウェブアプリの負荷テストについて興味深々なサトハルです。
今回は、2021年11月30日にパブリックプレビューが公開されたばかりの激アツコンテンツである「Azure Load Testing」について調べてみました。
1. Azure Load Testing とは
一言でいうと
JMeterをマネージドなインスタンスで実行できるサービス
です。
負荷テストを行なうクライアントインスタンスをAzureがよしなに用意してくれるので、ユーザーはテスト内容の作成にフォーカスすることができます。
また、GitHub ActionsかAzure Pipelinesに紐づけてCI/CDに組み込むことができるのも特徴のひとつです。
Azure Load Testing の課金体系は
月額基本使用料 + 仮想ユーザー時間課金
です。
仮想時間とは
(算定仮想ユーザー数 * 算定稼働時間(分単位))/ 60(分)
とのことです。
2. JMeter とは
2-a. 概要
Apacheが出しているウェブアプリで使えるの負荷検証ツールです。
その名からわかるようにJavaで作られたツールなので実行にはJavaが必要になります。
このツール自体の歴史は古く、初版のリリースは2001年なようです(Wikipedia)。
OSS なのでそれ自体にライセンス料などはかからないのが嬉しいですね。
2-b. テストの作成
JMeterでは .jmx 拡張子を持つテストの定義ファイルを用いてテストを実行します。
それはAzure Load Testingでも同様なので、どうにかして.jmxファイルを作成する必要があります。
最も簡単なのはJMeter GUIを用いて作成する方法です。
スレッド数やループ回数等を指定できるほか、HTTPリクエスト等も細かく設定することができます。
また、出力される .jmxファイルは普通にテキストファイルなので開いて直接編集することもできます。
Azure Load Testingのサンプルでもテキストファイルにコピペする形でテストを作成しています。
3. Azure Load Testing の詳細
3-a. 試してみたい時には?
テスト用リソースも新たに立ててじっくり試してみたい場合にはMicrosoftの提供しているパフォーマンスのボトルネックを特定するがおすすめです。
時間がない or 既存のサービスのテストをしたい場合にはクイックスタートもいいと思います。
3-b. 仮想ユーザー数の概念
仮想ユーザーは実行状況にもよりますが概ね
スレッド数 × Engine instances数
になるようです。
スレッド数は jmxファイル上で定義される並列度で、Azure Load Testingでは250以下にすることが推奨されています。
Engine instancesというのはAzure Load Testingのパラメータのひとつで、JMeterを実行するインスタンスの数になります。
Engine instancesのパブリックプレビュー時点での最大値は45になります。
つまり現在は1万1250人からの同時アクセスをシミュレーションするのが最大なようです。
また、総実行回数は
ループ回数 × Engine instances 数
になることにも注意してください。
まとめ
今回はAzureのインフラを用いてウェブアプリの負荷テストが可能なAzure Load Testingについて調べてみました。
大量にアクセスするとなると大量のマシンが必要になるのでそこをAzureに丸投げできるのは便利そうだなぁと思って調べ始めたのですが、それだけに留まらずに便利に使えそうな機能が山盛りになっていました。
今回ご紹介したのはAzure Load Testingの膨大な機能のほんの一部なので、これからさらに調査を進めていけたらと思います!
参考
・クイックスタート: Azure Load Testing を使用してロード テストを作成して実行する | Microsoft Docs
・チュートリアル: ロード テストを実行してパフォーマンスのボトルネックを特定する – Azure Load Testing | Microsoft Docs
・高スケールのロード テスト向け Azure Load Testing を構成する – Azure Load Testing | Microsoft Docs
Azure Load Testing – 価格 | Microsoft Azure
FIXER Inc. 佐藤 晴輝
フロントからバック、ネットワークまである程度触れるガジェットオタクです。
好きな言語は C# で IoT と画像処理が得意です。
[転載元]
CI/CD で負荷テスト!? パブリックプレビュー中の Azure Load Testing について調べてみた!! #Azureリレー