Azure portal でエージェント ベースの障害を使用するカオス実験を作成する

カオス実験を使用して、制御された環境で障害を引き起こすことで、アプリケーションにこれらの障害に対する回復性があることを確認できます。 この記事では、カオス実験と Azure Chaos Studio を使用して、Linux 仮想マシン (VM) に高い割合の CPU 使用率イベントを発生させます。 この実験は、アプリケーションがリソース不足になることを防ぐのに役立ちます。

お客様がエージェント ベースの任意の障害の実験をセットアップして実行する際には、ここに示す手順をそのまま使用できます。 エージェント ベースの障害を使用するには、カオス エージェントのセットアップとインストールが必要です。 サービスダイレクト障害は、インストールやインストルメンテーションなしで、Azure リソースに対して直接実行されます。

前提条件

仮想マシンで Chaos Studio を有効にする

Chaos Studio で仮想マシンに対して障害を挿入するには、その前に、対象となる仮想マシンを Chaos Studio に追加しておく必要があります。 Chaos Studio に仮想マシンを追加するには、そのリソースにターゲットと機能を作成します。 次に、カオス エージェントをインストールします。

仮想マシンには、ターゲットの種類が 2 つあります。 1 つのターゲットの種類は、サービスダイレクト障害 (エージェント不要) を有効にするものです。 もう 1 つのターゲットの種類は、エージェント ベースの障害 (エージェントのインストールが必要) を有効にするものです。 カオス エージェントは、仮想マシン拡張機能として仮想マシンにインストールされるアプリケーションです。 これを使用して、ゲスト オペレーティング システムに障害を挿入します。

カオス ターゲット、機能、エージェントを有効にする

重要

以降の手順を完了する前に、ユーザー割り当てマネージド ID を作成しておく必要があります。 次に、その ID をターゲット仮想マシンまたは仮想マシン スケール セットに割り当てます。

  1. Azure Portalを開きます。

  2. 検索バーで「Chaos Studio」を検索します。

  3. [ターゲット] を選択し、仮想マシンに移動します。

    [対象] ビューを示している Azure portal のスクリーンショット。

  4. 仮想マシンの横にあるチェックボックスをオンにし、[ターゲットの有効化] を選択します。 次に、ドロップダウン メニューから [エージェント ベースのターゲットを有効にする] を選択します。

    Azure portal でのターゲットの有効化を示すスクリーンショット。

  5. カオス エージェントの認証に使用するマネージド ID を選択し、必要に応じて Application Insights を有効にして、実験イベントとエージェント ログを表示します。

    マネージド ID の選択を示すスクリーンショット。

  6. [確認と有効化]>[有効化] を選択します。

    エージェントベースのターゲット有効化の確認を示すスクリーンショット。

  7. 数分後、選択したリソースが有効化されたことを示す通知が表示されます。 Azure portal によって、ユーザー割り当て ID が仮想マシンに追加されます。 エージェントのターゲットと機能が有効化され、カオス エージェントが仮想マシン拡張機能としてインストールされます。

    ターゲットが正常に有効化されたことを示す通知が表示されたスクリーンショット。

  8. 仮想マシン スケール セットを有効にする場合は、仮想マシン スケール セットのリソース ペインに移動し、インスタンスを最新のモデルにアップグレードします。 [インスタンス] を選択し、すべてのインスタンスを選択します。 使用しているモデルが最新でない場合は、[アップグレード] を選択します。

以上で、Chaos Studio に Linux 仮想マシンが追加されました。 [ターゲット] ビューでは、このリソースで有効になっている機能を管理することもできます。 リソースの横にある [アクションの管理] リンクを選択すると、そのリソースに対して有効になっている機能が表示されます。

実験の作成

実験を作成するための準備ができました。 カオス実験の作成時には、ターゲット リソースに対して実行するアクションを定義します。 アクションは編成され、順番に実行されます。 カオス実験では、ブランチに対して並列に実行するアクションも定義できます。

  1. Chaos Studio の [実験] タブを選択します。 このビューでは、ご自分のすべてのカオス実験を表示および管理できます。 [作成]>[新しい実験] を選択します。

    Azure portal の実験ビューを示すスクリーンショット。

  2. [サブスクリプション][リソース グループ] 、カオス実験をデプロイする [場所] の情報を入力します。 実験に名前を付けます。 [Next: Experiment designer] (次へ: 実験デザイナー >) を選択します。

    基本的な実験の詳細の追加を示すスクリーンショット。

  3. 現在表示されている画面は、Chaos Studio の実験デザイナーです。 実験に、ステップ、分岐、障害を追加して内容を構築できます。 ステップブランチにわかりやすい名前を付けます。 次に アクションの追加 > 障害の追加 を選択します。

    実験デザイナーを示すスクリーンショット。

  4. ドロップダウンリストから [CPU 負荷] を選択します。 [期間] に、負荷をかける期間の長さを分単位で入力します。 pressureLevel を、適用する CPU 使用率の負荷の % で入力します。 virtualMachineScaleSetInstances は空白のままにします。 [Next: Target resources] (次へ: ターゲット リソース >) を選択します。

    フォールトのプロパティを示すスクリーンショット。

  5. 仮想マシンを選択し、[次へ] を選択します。

    ターゲットの追加を示すスクリーンショット。

  6. 実験の設定内容に間違いがないか再確認します。 次に、[確認と作成]>[作成] の順に選択します。

    実験の確認と作成を示すスクリーンショット。

実験に仮想マシンへのアクセス許可を付与する

カオス実験を作成すると、ターゲット リソースに対して障害を実行するシステム割り当てマネージド ID が Chaos Studio によって作成されます。 実験を正常に実行するには、この ID にターゲット リソースへの適切なアクセス許可を付与する必要があります。

  1. VM に移動し、[アクセス制御 (IAM)] を選択します。

    仮想マシンの [概要] ページを示すスクリーンショット。

  2. [追加]>[ロール割り当ての追加] の順に選択します。

    アクセス制御の概要を示すスクリーンショット

  3. 閲覧者」を検索し、このロールを選択します。 [次へ] を選択します。

    仮想マシン共同作成者ロールの割り当てを示すスクリーンショット。

  4. [メンバーの選択] を選び、実験名を検索します。 ご自分の実験を選択し、[選択] を選びます。 同じテナント内に同じ名前の実験が複数ある場合は、実験名が切り詰められ、ランダムな文字列が追加されます。

    ロールへの実験の追加を示すスクリーンショット。

  5. [確認と割り当て]>[確認と割り当て] を選択します。

実験を実行する

実験の実行準備が整いました。 影響を確認するため、Azure Monitor メトリック グラフを別のブラウザー タブで開き、仮想マシンの CPU 負荷を表示しておくことをお勧めします。

  1. [実験] ビューで、使用する実験を選択します。 [開始]>[OK] を選択します。

    実験の開始を示すスクリーンショット。

  2. [状態][実行中] に変わったら、[履歴] で、最新の実行の [詳細] を選択し、実行中の実験の詳細を確認します。

次のステップ

以上でエージェント ベースの実験の実行が済みました。この後は、以下の内容に進むことができます。