Azure Chaos Studio から Azure Load Testing を実行してみた

2024.02.06

いわさです。

Microsoft Azure には Azure Chaos Studio というカオスエンジニアリングサービスがあるのですが、昨年 11 月に GA となっていました。

また、その少し前には私の好きな Azure Load Testing が Chaos Studio の実験テンプレートでアクションとして使用出来るようになっていました。

本日は Chaos Studio のテンプレートで Azure Load Testing を実行する機会があったので使用方法を紹介したいと思います。

実験デザイナーのアクションで指定

Azure Chaos Studio では実験デザイナーを構築して障害シナリオを定義することができます。
その際に組み込みのアクション(フォールト)を選択するのですが、負荷テストの開始と終了のアクションが追加されています。

このアクションではパラメータとしてテスト ID を指定します。

テスト ID は Azure Load Testing の対象テストに割り当てられている ID で、次から確認することができます。

ターゲットリソースには Azure Load Testing リソースを指定する必要があります。
そのため、事前にテスト対象として Azure Load Testing を追加しておく必要があります。

また、実験デザイナーには負荷テストの開始の他に、終了(Stop load test (Azure Load Testing))もセットで追加する必要があります。
追加されていない場合は実験の作成に失敗します。

実験の開始

実験の定義自体はここまでで作成できました、この時点で実験開始が出来るので開始してみましょう。

権限不足

実験が失敗しました。エラーの詳細を確認してみます。

「AccessDenied」ということで権限不足のエラーが発生していますね。
Azure Chaos Studio はマネージド ID で関連んリソースを操作するのですが、Azure Load Testing のテストを開始する権限がおそらく無いのでしょう。

Azure Chaos Studio の対象の実験の ID メニューから、今回は Azure ロールの割り当てを行いました。

ロードテスト共同作成者を付与しました。

テストに失敗

権限が付与できたのでまた実験を開始してみます。

また実験に失敗しました。今度は先程と異なり、アクションが実行はされているようです。
エラーメッセージを確認してみると何かしらパラメータが正しくないようなのですが、詳しい理由までは残念ながらわかりませんでした。
よく考えたらこの負荷テストがそもそも正しく動作する保証も無かったので新しくテストを作成することにしました。

正常に実行できた

URL 指定での簡易テストを作成し動作が確認できたものを実験デザイナーで再指定して開始してみました。
すると今度は正常に実験が終了しました。

確認してみると Azure Load Testing 側でも新しいテストの実行履歴が確認できました。
説明欄には Chaos Studio によって実行された旨が確認できますね。

さいごに

本日は Azure Chaos Studio から Azure Load Testing を実行してみました。

障害のひとつとして高負荷状況を作り出したいシーンがあると思いますが、Azure Load Testing がマネージドサービスですから、このような形で組み合わせられるのはとても良いんじゃないでしょうか。