JavaScriptを有効にしてください

Chaos Studio を使って VM のテストをし隊

 ·   3 分で読めます  ·   Kento

Azure Chaos Studio はカオス エンジニアリングを実行するためのサービスです
Azure VM に関しては VM の停止や CPU 使用率の増加などの障害テスト (実験) が可能です

Chaos Studio には2種類の障害が利用可能です

  • サービス直接: これらの障害は、インストールやインストルメンテーションなしで、Azure リソースに対して直接実行されます。 たとえば、Azure Cache for Redis クラスターの再起動や、Azure Kubernetes Service ポッドへのネットワーク待機時間の追加などがあります。
  • エージェント ベース: これらの障害は、VM または仮想マシン スケール セットで実行され、ゲスト内で障害が発生します。 たとえば、仮想メモリへの負荷や、プロセスの強制終了などがあります。

Azure Chaos Studio とは | Microsoft Learn

今回は VM へ負荷をかけるエージェント ベースの障害を試してみます
利用できる障害テストの種類は Azure Chaos Studio の障害およびアクション ライブラリ | Microsoft Learn に書かれています

ざっくり手順

  1. マネージド ID の作成
  2. VM に Chaos Studio を有効化
  3. 実験の作成
  4. 実験の実行

1. マネージド ID の作成

Chaos Studio エージェントでは、VM でユーザー割り当てマネージド ID を使用して、Chaos Studio サービスに対して認証を行います
そのためのマネージド ID を作成しておきます

2. VM に Chaos Studio を有効化

Azure Portal で Chaos Studio の画面に移動します
[対象] メニューで有効化する VM を選択し、[ターゲットを有効にする] をクリックし、[エージェント ベースのターゲット (VM、VMSS) を有効にする]を選択します

image01
Chaos Studio の有効化:

利用するマネージド ID を選択します
Application Insights による分析を有効化することもできますが、今回は割愛します

image02
マネージド ID の選択:

デプロイが完了するとエージェント ベースが有効になります

image03
エージェント ベースの有効化:

3. 実験の作成

次に実行する障害テスト (実験) を作成します
[実験] メニューから [新しい実験] をクリックします

image04
新しい実験の作成:

image05
実験の作成:

アクセス許可の確認画面が表示されるので [カスタム役割のアクセス許可] にチェックを入れておきます

image06
アクセス許可の確認:

Chaos Studio では実行する障害テストをいくつかの手順に分けて実行します

image06
Chaos Studio の実験のコンポーネント:

[アクションの追加] から実行する障害テストを選択します
障害テストの内容によって設定するパラーメータは異なります

image07
アクションの追加:

対象にするリソースを選択します

image08
対象の選択:

静的に選択することもできますし、KQL クエリを使って動的に選択することもできます
この場合 Azure Resource Graph が利用されます
perf という名前を含む VM を選択するクエリは以下のようになります

resources
| where type =~ 'Microsoft.Compute/virtualMachines'
| where name contains "perf"
image09
対象の選択:

今回は最終的に以下のような実験を作成しました

image10
実験の作成:

4. 実験の実行

早速実験を開始したいと思います

image11
実験の開始:

順調に進んでるようなので VM のメトリックを見てみたいと思います
Azure Monitor Agent を入れていなかったのでゲスト OS から見た正確な値はみれませんでしたが、Azure Portal からのホストのメトリックは確認できました
確かに CPU が高騰しています

image12
実験の進捗:

image13
メトリックの確認:

まとめ

Azure Chaos Studio を試しました
気軽に VM に負荷をかけることができるので、監視のテストやパフォーマンス診断のシミュレーションで使えそうです

参考

共有

Kento
著者
Kento
2020年に新卒で IT 企業に入社. インフラエンジニア(主にクラウド)として活動中