Azure Load Testing で想定外の料金発生を防ぐために使用制限機能を設定する
いわさです。
先日、Azure Load Testing のスケジュール実行機能を紹介しました。
自動化において便利な反面、短い周期で繰り返されるスケジュールを設定した場合に誤って意図しない使用量が発生する恐れもあると思いました。
Azure Load Testing は Virtual User Hour (VUH) に応じた従量課金となっており[1]、例えば 1,000 人の仮想ユーザー設定で 30 分間のテストを設定すると、VUH は 500 となります。
先日のスケジュール機能はスケジュールトリガーの終了タイミングも設定できるのですが、設定を忘れると毎時間繰り返し実行されてしまうことになります。
しかし、Azure Load Testing には使用制限機能があり、月ごとに使用できる VUH 上限を定めることができます。
今回はこちらを設定して実行抑制時の挙動を観察してみました。手動実行の他、スケジュール実行でも有効になるのかも検証しています。
設定方法
今回の設定はAzure Load Testing リソースに対して設定します。
ちょっとわかりにくいですが Azure Load Testing にはクォータと使用制限のメニューがありまして、使用制限のメニューから設定を行います。
ちなみにクォータメニューからは一度のテストで設定できるリソース上限(インスタンス数や実行時間の上限)を確認できます。
この値はここからは編集できなくて、サブスクリプションに設定されているクォータです。引き上げを行いたい場合はサポートから申請する必要があります。[2]
ということで、使用制限を設定してみます。
デフォルトではオフになっているので「使用制限を有効にする」トグルボタンをオンにします。
そうすると、今月使っている VUH 使用量と、月単位の VUH 制限のテキストボックスが表示されます。前者は現状消費されている数値が表示され、後者に上限値を設定します。つまり Azure Load Testing リソースごとに上限を設定する形になります。
デフォルトでは「無制限」という文字列が入力されていましたが、こちらは有効な値ではなく 0 以上の数値を入力する必要があります。
使用制限が設定されているときの挙動を確認
では VUH 制限を設定し、テスト実行してみます。
まず、設定後はテスト実行画面に次のように使用制限に関する情報が追加されていることを確認しました。
いくつかテストを実行して VUH を消費してみます。1 分間に 41 万リクエストを送信しました。
使用制限画面を確認してみると、「今月の VUH 使用量」が 1 になっていました。
こちらの値は現状がすぐに反映されてるみたいですね。
使用制限が「10」になっているので、現在の設定「1」に変更してみます。
そうすると月間制限を超えた旨を示すバナーが表示されるようになりました。
続いて実行画面も見てみます。こちらでもバナーが表示されていますね。
そして実行ボタンも押せなくなっています。
で、スケジュール機能のほうですが、こちらは設定時間をすぎても実行がされませんでした。
実行された上で失敗するとかではなく実行自体がされていません。ちょっと気が付きにくいです。
逆にもしスケジュール実行がなぜか動かないというかたは、使用制限設定についても確認してみると良いと思いました。
さいごに
本日は Azure Load Testing で想定外の料金発生を防ぐために使用制限機能を設定してみました。
イメージどおりで使いやすい機能だと思います。
一方で使用制限に達すると、ベストエフォート方式で進行中のテストが停止されたり、スケジュール実行が行われなかったりするので、テスト実行に関するトラブルシューティング手順のひとつとして使用制限が設定されていないかを確認しておくと良さそうです。