こんにちは。 AZPower 森です。
今日はAzure Load Testingというサービスをご紹介したいと思います。
Microsoftの負荷テストツールといえば、Visual StudioによるクラウドベースロードテストやAzure DevOpsのクラウドベースロードテストなどがありましたが、いずれも2020年3月31日で廃止になりました。
これらのサービスの代わりなのかはわかりませんが、Azure Load TestingというサービスがPreview公開されています。
こちらはフルマネージドの負荷テストツールになっていて、Apache JMeter Scriptを使って複数インスタンスによる負荷テストを実行できるサービスになっています。
JMeter Scriptなので公開されているエンドポイント・リソースであればAzureサービスに限らず利用できます。
Azure DevOpsのCI/CDの中にも組み込めんで回帰的に負荷テストを実施することも可能です。
サービスは現在Previewで、Australia East, East US, East US2, North Europe, South Central USの5つのリージョンで利用できます。
こちらは
価格
現在価格は以下のようになっています。
料金 | |
---|---|
ロードテストリソース | 1か月あたり50仮想ユーザー時間が含まれていて1.149.350円 |
1仮想ユーザー時間の追加使用料 | 9,950時間までは追加時間1時間あたり17.241円 9,950時間以上は追加時間1時間あたり8.621円 |
利用方法
リソースの作成
ポータルから作成
Azure Portalからリソースの作成で「Load Testing」を選択します。
ロードテストリソースの作成
ロードテストの名前をワールドワイドで一意となるよう命名します。
作成できるリージョンは前述のとおり現時点で5リージョンとなります。
IAMから権限の付与
負荷テストを行うためにはサブスクリプションの「所有者」権限だけでは実行できません。
作成したロードテストのアクセス制御から「ロードテスト共同作成者」権限を付与する必要があります。
負荷テストの実施
負荷テスト用スクリプトの作成
負荷テスト用のスクリプトはJMeterで作成ができます。
ローカルで実行したJMeterで負荷テスト用のスクリプトを作成します。
実行する負荷テストを作成、スクリプトの保存を行い
ただし、JDBCドライバーなどが導入されていないのでデータベースなどの作成は行えません。
また、プラグインなども限定的で追加導入できないので、複雑な負荷テストなどはまだ難しそうな印象です。
テストの作成
Azure Load Testingのポータル画面に戻り、テストの作成を行います。
テストの作成はメニューの[Tests]にある[Tests]を選択し、[Create Test]をクリックします。
Basics
最初にテスト名とテストに関する簡単な説明を入力できます。
Run test after creation
をチェックするとテスト作成直後にテストを実行します。
Test plan
先ほど作成したJMeterスクリプトはここでアップロードします。
ファイルを選択後、Upload
ボタンのクリックを行うとスクリプトがアップロードされます。
ほかにも使用するデータやConfigrationファイルなど、テストで使用するファイルはこちらでアップロードします。
Parameters
テスト内で使用する環境変数やシークレットなどのパラメーターはこちらで指定します。
Load
テストで実行する負荷に関する情報設定画面です。
こちらでは、テストで使用するエンジンのインスタンス数を指定できます。
現在は1インスタンスあたり最大250スレッドの負荷を実行できます。
また、インスタンスは現時点で最大45インスタンスまで増やすことが可能です。
Test criteria
こちらでは実施するテストの合格基準を設定します。
負荷テストではいくつかのメトリックを監視することができて、そのメトリックがどのような値となれば合格とするかの設定を行います。
各項目は以下のような意味になります。
フィールド | 説明 |
---|---|
Client metric | チェック対象となるメトリック |
Aggregate function | メトリックに適用する集計関数 |
Condition | 比較演算子 |
Threshold | 基準となる値 |
なお、現在、Test criteriaに使用できるメトリックは以下になります。
Monitoring
監視対象のリソースを指定し、Load Testingに統合します。
実行
ロードテストが実行されるとダッシュボードからサーバーメトリックの表示が行われます。
テスト実行中にはさまざまなメトリックが5秒毎に更新されます。
Wrapup
このようにAzure Load Testingでは、負荷テストのデファクトスタンダートとも言えるJMeterのスクリプトを使用して、簡単な手順で負荷テストが行えるサービスになっています。
大規模な負荷テストを実施したい場合などには、非常に簡単な手順でリソース設定できるので是非活用してみてください。